(57)【要約】  マルチＯＳ起動装置において、第２のＯＳをローディングする際に、他のプログラムから第２のＯＳの内容参照を防ぐ。第１のＯＳ１５１は、ファーストブートローダ１５４を用いて第１のメモリ空間１５０に、セカンドブートローダ１７１と第２のＯＳイメージ２１１とをロードする（フェーズ２）。ロードされたセカンドブートローダ１７１は、第１のメモリ空間１５０と第２のメモリ空間１６０とからなる第３のメモリ空間１７０を構成し、第３のメモリ空間１７０で動作することによりセカンドブートローダ１７１自身と第２のＯＳイメージ２１１とを第１のＯＳ１５１の管理対象から外すとともに（フェーズ３）、第２のメモリ空間１６０を構成して第２のメモリ空間１６０に第２のＯＳ１６１をロードし、第２のメモリ空間１６０で第２のＯＳ１６１を起動する。
2009113394.tif 000002
【特許請求の範囲】
【請求項１】
第１のオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、以下ＯＳという）と第２のＯＳとの少なくとも２つのＯＳを起動するマルチＯＳ起動装置において、
（１）メモリ領域を有し、前記メモリ領域に対してメモリ空間が定義される１次記憶部と、
（２）セカンドブートローダと、前記第２のＯＳとを記憶する２次記憶部と、
（３）ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ）に対する制御情報を示すコンテキストであって前記第１のＯＳ用のコンテキストである第１のコンテキストで動作する前記第１のＯＳのもとで動作するファーストブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで動作させることにより、前記第１のＯＳが管理する第１のメモリ空間として前記第１のコンテキストにより前記１次記憶装置に対して定義された前記１次記憶部のメモリ領域に前記２次記憶部から前記セカンドブートローダと前記第２のＯＳとを前記ファーストブートローダにロードさせるＯＳ実行部と、
（４）前記第１のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで実行することにより前記第２のＯＳが管理する第２のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第２のＯＳがロードされたメモリ領域とを含む第３のメモリ空間を前記１次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第１のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第３のメモリ空間に含まれる前記第２のメモリ空間として定義された前記１次記憶部のメモリ領域に前記ファーストブートローダによって前記１次記憶部のメモリ領域にロードされた前記第２のＯＳを前記セカンドブートローダにロードさせると共に前記第２のＯＳ用のコンテキストを生成させ、生成された前記第２のＯＳ用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第２のＯＳ用のコンテキストのもとで前記セカンドブートローダに前記第２のＯＳの起動を実行させるローダ実行部と
を備えたことを特徴とするマルチＯＳ起動装置。
【請求項２】
前記２次記憶部に記憶された前記第２のＯＳは、
暗号化されており、
前記２次記憶部に記憶されたセカンドブートローダは、
暗号化された前記第２のＯＳを復号する機能を有し、
前記ローダ実行部は、
前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより、前記ファーストブートローダによって前記１次記憶部のメモリ領域にロードされた暗号化された前記第２のＯＳを前記セカンドブートローダに復号させ、前記第３のメモリ空間に含まれる前記第２のメモリ空間として定義された前記１次記憶部のメモリ領域に復号された前記第２のＯＳを前記セカンドブートローダにロードさせることを特徴とする請求項１記載のマルチＯＳ起動装置。
【請求項３】
前記２次記憶部に記憶されたセカンドブートローダは、
前記セカンドブートローダの改ざんをチェックする機能を有し、
前記ローダ実行部は、
前記第１のコンテキストで動作中の前記第１のＯＳのもとで前記セカンドブートローダを実行することにより、前記セカンドブートローダ自信が改ざんされているかどうかを前記セカンドブートローダに判定させることを特徴とする請求項１記載のマルチＯＳ起動装置。
【請求項４】
前記２次記憶部に記憶されたセカンドブートローダは、
前記第２のＯＳの改ざんをチェックする機能を有し、
前記ローダ実行部は、
前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより、前記ファーストブートローダによって前記１次記憶部のメモリ領域にロードされた前記第２のＯＳが改ざんされているかどうかを前記セカンドブートローダに判定させることを特徴とする請求項１記載のマルチＯＳ起動装置。
【請求項５】
前記２次記憶部に記憶されたセカンドブートローダは、
前記第２のＯＳが複製かどうかをチェックする機能を有し、
前記ローダ実行部は、
前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより、前記ファーストブートローダによって前記１次記憶部のメモリ領域にロードされた前記第２のＯＳが改ざんされているかどうかを前記セカンドブートローダに判定させることを特徴とする請求項１記載のマルチＯＳ起動装置。
【請求項６】
第１のオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、以下ＯＳという）と第２のＯＳとの少なくとも２つのＯＳを起動するコンピュータを、
（１）メモリ領域を有し、前記メモリ領域に対してメモリ空間が定義される１次記憶部、
（２）セカンドブートローダと、前記第２のＯＳとを記憶する２次記憶部、
（３）ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ）に対する制御情報を示すコンテキストであって前記第１のＯＳ用のコンテキストである第１のコンテキストで動作する前記第１のＯＳのもとで動作するファーストブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで動作させることにより、前記第１のＯＳが管理する第１のメモリ空間として前記第１のコンテキストにより前記１次記憶装置に対して定義された前記１次記憶部のメモリ領域に前記２次記憶部から前記セカンドブートローダと前記第２のＯＳとを前記ファーストブートローダにロードさせるＯＳ実行部、
（４）前記第１のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで実行することにより前記第２のＯＳが管理する第２のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第２のＯＳがロードされたメモリ領域とを含む第３のメモリ空間を前記１次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第１のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第３のメモリ空間に含まれる前記第２のメモリ空間として定義された前記１次記憶部のメモリ領域に前記ファーストブートローダによって前記１次記憶部のメモリ領域にロードされた前記第２のＯＳを前記セカンドブートローダにロードさせると共に前記第２のＯＳ用のコンテキストを生成させ、生成された前記第２のＯＳ用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第２のＯＳ用のコンテキストのもとで前記セカンドブートローダに前記第２のＯＳの起動を実行させるローダ実行部、
として機能させるマルチＯＳ起動プログラム。
【請求項７】
請求項６記載のマルチＯＳ起動プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
メモリ領域を有すると共に前記メモリ領域に対してメモリ空間が定義される１次記憶部を備えると共に、第１のオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、以下ＯＳという）と第２のＯＳとの少なくとも２つのＯＳを起動するマルチＯＳ起動装置が行うマルチＯＳ起動方法において、
（１）２次記憶部が、セカンドブートローダと、前記第２のＯＳとを記憶し、
（２）ＯＳ実行部が、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ）に対する制御情報を示すコンテキストであって前記第１のＯＳ用のコンテキストである第１のコンテキストで動作する前記第１のＯＳのもとで動作するファーストブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで動作させることにより、前記第１のＯＳが管理する第１のメモリ空間として前記第１のコンテキストにより前記１次記憶装置に対して定義された前記１次記憶部のメモリ領域に前記２次記憶部から前記セカンドブートローダと前記第２のＯＳとを前記ファーストブートローダにロードさせ、
（３）ローダ実行部が、前記第１のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで実行することにより前記第２のＯＳが管理する第２のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第２のＯＳがロードされたメモリ領域とを含む第３のメモリ空間を前記１次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第１のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第３のメモリ空間に含まれる前記第２のメモリ空間として定義された前記１次記憶部のメモリ領域に前記ファーストブートローダによって前記１次記憶部のメモリ領域にロードされた前記第２のＯＳを前記セカンドブートローダにロードさせると共に前記第２のＯＳ用のコンテキストを生成させ、生成された前記第２のＯＳ用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第２のＯＳ用のコンテキストのもとで前記セカンドブートローダに前記第２のＯＳの起動を実行させることを特徴とするマルチＯＳ起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、以下ＯＳともいう）を起動するマルチＯＳ起動装置及びマルチＯＳ起動プログラムに関する。
【背景技術】
【０００２】
近年、計算機の高性能化に伴い、１つの計算機上で複数のオペレーティングシステムを動作させることが注目されている。例えば、制御プログラムを動作させるリアルタイムＯＳと、多機能で豊富なソフトウェア資源を持つＷｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘ（登録商標）のような汎用ＯＳを同時に動作せることにより、各ＯＳの特長を活かした高機能なシステムを１つの計算機で実現することが可能である。そもそも、これらのＯＳは、１つの計算機上で１つのＯＳで動作することを考慮して設計されている。このため、１つの計算機上で複数のＯＳを共存させるためには、各ＯＳで管理する計算機の資源（メモリ、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスなど）を破壊しないよう動作させる必要がある。例えば、第１のＯＳを起動した後に、第２のＯＳを起動する際に、先に起動した第１のＯＳのメモリ領域を破壊せずに第２のＯＳを起動するための専用のブートローダが必要となる。これらを実現する方法として、特許文献１などの技術が開発されている。
【特許文献１】特開平１１−１４９３８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、前記の手法の場合、第２のＯＳをローディングするために、本来第２のＯＳのみが管理する第２のメモリ空間を一時的に第１のＯＳから読み書きできるよう第１のメモリ空間を拡張していたため、第１のＯＳ上で動作する他のプログラムあるいは第１のＯＳから、第２のＯＳの内容を参照したり、プログラムやデータを改竄したりすることが可能であるという課題があった。【０００４】
すなわち、第１のＯＳは、第２のメモリ空間を一時的に読み書きできる。このため、第２のＯＳのみが管理するべき第２のメモリ空間に、第１のＯＳが何らかの処理を施すことによって、第１のＯＳは、第２のＯＳの処理するデータを参照することが可能であり、あるいは第２のＯＳの処理するデータを改ざん可能であるといった課題があった。【０００５】
これは、第２のＯＳが制御プログラムや暗号プログラムなどの重要なプログラムを実行させる場合、致命的となる。この発明は上記のような課題を解決するためになされたもので、第２のＯＳをローディングする際に、第１のＯＳ上で動作する他のプログラムから第２のＯＳの内容を参照・改竄することを防ぎ、安全性を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
この発明のマルチＯＳ起動装置は、
第１のオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、以下ＯＳという）と第２のＯＳとの少なくとも２つのＯＳを起動するマルチＯＳ起動装置において、
（１）メモリ領域を有し、前記メモリ領域に対してメモリ空間が定義される１次記憶部と、
（２）セカンドブートローダと、前記第２のＯＳとを記憶する２次記憶部と、
（３）ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ）に対する制御情報を示すコンテキストであって前記第１のＯＳ用のコンテキストである第１のコンテキストで動作する前記第１のＯＳのもとで動作するファーストブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで動作させることにより、前記第１のＯＳが管理する第１のメモリ空間として前記第１のコンテキストにより前記１次記憶装置に対して定義された前記１次記憶部のメモリ領域に前記２次記憶部から前記セカンドブートローダと前記第２のＯＳとを前記ファーストブートローダにロードさせるＯＳ実行部と、
（４）前記第１のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで実行することにより前記第２のＯＳが管理する第２のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第２のＯＳがロードされたメモリ領域とを含む第３のメモリ空間を前記１次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第１のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第３のメモリ空間に含まれる前記第２のメモリ空間として定義された前記１次記憶部のメモリ領域に前記ファーストブートローダによって前記１次記憶部のメモリ領域にロードされた前記第２のＯＳを前記セカンドブートローダにロードさせると共に前記第２のＯＳ用のコンテキストを生成させ、生成された前記第２のＯＳ用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第２のＯＳ用のコンテキストのもとで前記セカンドブートローダに前記第２のＯＳの起動を実行させるローダ実行部と
を備えたことを特徴とする。【０００７】
前記２次記憶部に記憶された前記第２のＯＳは、
暗号化されており、
前記２次記憶部に記憶されたセカンドブートローダは、
暗号化された前記第２のＯＳを復号する機能を有し、
前記ローダ実行部は、
前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより、前記ファーストブートローダによって前記１次記憶部のメモリ領域にロードされた暗号化された前記第２のＯＳを前記セカンドブートローダに復号させ、前記第３のメモリ空間に含まれる前記第２のメモリ空間として定義された前記１次記憶部のメモリ領域に復号された前記第２のＯＳを前記セカンドブートローダにロードさせることを特徴とする。【０００８】
前記２次記憶部に記憶されたセカンドブートローダは、
前記セカンドブートローダの改ざんをチェックする機能を有し、
前記ローダ実行部は、
前記第１のコンテキストで動作中の前記第１のＯＳのもとで前記セカンドブートローダを実行することにより、前記セカンドブートローダ自信が改ざんされているかどうかを前記セカンドブートローダに判定させることを特徴とする。【０００９】
前記２次記憶部に記憶されたセカンドブートローダは、
前記第２のＯＳの改ざんをチェックする機能を有し、
前記ローダ実行部は、
前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより、前記ファーストブートローダによって前記１次記憶部のメモリ領域にロードされた前記第２のＯＳが改ざんされているかどうかを前記セカンドブートローダに判定させることを特徴とする。【００１０】
前記２次記憶部に記憶されたセカンドブートローダは、
前記第２のＯＳが複製かどうかをチェックする機能を有し、
前記ローダ実行部は、
前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより、前記ファーストブートローダによって前記１次記憶部のメモリ領域にロードされた前記第２のＯＳが改ざんされているかどうかを前記セカンドブートローダに判定させることを特徴とする。【００１１】
この発明のマルチＯＳ起動プログラムは、
第１のオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、以下ＯＳという）と第２のＯＳとの少なくとも２つのＯＳを起動するコンピュータを、
（１）メモリ領域を有し、前記メモリ領域に対してメモリ空間が定義される１次記憶部、
（２）セカンドブートローダと、前記第２のＯＳとを記憶する２次記憶部、
（３）ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ）に対する制御情報を示すコンテキストであって前記第１のＯＳ用のコンテキストである第１のコンテキストで動作する前記第１のＯＳのもとで動作するファーストブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで動作させることにより、前記第１のＯＳが管理する第１のメモリ空間として前記第１のコンテキストにより前記１次記憶装置に対して定義された前記１次記憶部のメモリ領域に前記２次記憶部から前記セカンドブートローダと前記第２のＯＳとを前記ファーストブートローダにロードさせるＯＳ実行部、
（４）前記第１のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで実行することにより前記第２のＯＳが管理する第２のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第２のＯＳがロードされたメモリ領域とを含む第３のメモリ空間を前記１次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第１のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第３のメモリ空間に含まれる前記第２のメモリ空間として定義された前記１次記憶部のメモリ領域に前記ファーストブートローダによって前記１次記憶部のメモリ領域にロードされた前記第２のＯＳを前記セカンドブートローダにロードさせると共に前記第２のＯＳ用のコンテキストを生成させ、生成された前記第２のＯＳ用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第２のＯＳ用のコンテキストのもとで前記セカンドブートローダに前記第２のＯＳの起動を実行させるローダ実行部、
として機能させることを特徴とする。【００１２】
この発明のマルチＯＳ起動方法は、
メモリ領域を有すると共に前記メモリ領域に対してメモリ空間が定義される１次記憶部を備えると共に、第１のオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、以下ＯＳという）と第２のＯＳとの少なくとも２つのＯＳを起動するマルチＯＳ起動装置が行うマルチＯＳ起動方法において、
（１）２次記憶部が、セカンドブートローダと、前記第２のＯＳとを記憶し、
（２）ＯＳ実行部が、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ）に対する制御情報を示すコンテキストであって前記第１のＯＳ用のコンテキストである第１のコンテキストで動作する前記第１のＯＳのもとで動作するファーストブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで動作させることにより、前記第１のＯＳが管理する第１のメモリ空間として前記第１のコンテキストにより前記１次記憶装置に対して定義された前記１次記憶部のメモリ領域に前記２次記憶部から前記セカンドブートローダと前記第２のＯＳとを前記ファーストブートローダにロードさせ、
（３）ローダ実行部が、前記第１のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで実行することにより前記第２のＯＳが管理する第２のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第２のＯＳがロードされたメモリ領域とを含む第３のメモリ空間を前記１次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第１のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第３のメモリ空間に含まれる前記第２のメモリ空間として定義された前記１次記憶部のメモリ領域に前記ファーストブートローダによって前記１次記憶部のメモリ領域にロードされた前記第２のＯＳを前記セカンドブートローダにロードさせると共に前記第２のＯＳ用のコンテキストを生成させ、生成された前記第２のＯＳ用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第２のＯＳ用のコンテキストのもとで前記セカンドブートローダに前記第２のＯＳの起動を実行させることを特徴とする。
【発明の効果】
【００１３】
この発明により、第２のＯＳをロードする際に、第１のＯＳとは独立した第３のメモリ空間で動作するセカンドブートローダによって処理を行うため、第１のＯＳ上で動作するプログラムから第２のメモリ空間へのアクセスすることを防止することが可能となり、第２のＯＳのセキュリティを向上することができる。
【発明を実施するための最良の形態】
【００１４】
実施の形態１．
図１は計算機１００として実現される実施の形態１におけるマルチＯＳ起動装置の構成図である。実施の形態１における計算機１００（マルチＯＳ起動装置）は、第２のＯＳのローディングを２段階に分けることで、第２のＯＳを第１のＯＳとは異なる空間にローディングし、第２のＯＳの内容を第１のＯＳから参照できないようにする。【００１５】
図１において、計算機１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０（ＯＳ実行部、ローダ実行部）、データやプログラムを記憶する１次記憶装置１２０（１次記憶部）、ＦｌａｓｈＲＯＭやハードディスク等の２次記憶装置１３０（２次記憶部）、Ｉ／Ｏデバイス１４０より構成される。【００１６】
（ＣＰＵ）
（１）ＣＰＵ１１０は、レジスタ群１１１、レジスタ群１１１の１つであるページテーブルの先頭物理アドレスを指定するＰＴＢＲ（ページテーブルベースレジスタ）１１２、ＣＰＵ１１０が１次記憶装置１２０をアクセスする際、ＰＴＢＲ１１２が指すページテーブルの設定にしたがって論理アドレスと物理アドレスの変換を実現するＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）１１３を備える。
（２）「ページテーブル」とは、論理アドレスと物理アドレスの対応表が記述されているものであり、ある命令がページテーブルに物理アドレスとの対応が記述されていない論理アドレスをアクセスした場合、ＭＭＵ１１３は例外を発生させＣＰＵ１１０に通知する機能を持つ。この例外はＯＳによって処理され、例えば、対応する物理アドレスを見つけ出し、ページテーブルの対応表を書き換え、例外を発生させた命令を再度実行するなどの処理を行う。【００１７】
（１次記憶装置１２０）
１次記憶装置１２０は、ＯＳまたはプログラムに割当てられた物理アドレス領域を持つ３つのメモリ空間である、第１のメモリ空間１５０、第２のメモリ空間１６０、第３のメモリ空間１７０が定義されている。これらのメモリ空間には、ＯＳまたは、プログラムが管理するページテーブルが存在する。ＯＳまたはプログラムは、自身の管理するメモリ空間の物理アドレスに対してのみ、論理アドレスとの対応付けを行う。すなわち、ＯＳあるいはプログラムは、自身の管理するメモリ空間以外のメモリ空間にはアクセスできない。例えば、以下に説明する第１のＯＳは第１のメモリ空間１５０のみを管理対象とするので第１のメモリ空間１５０のみアクセス可能であり、後述する第２のメモリ空間１６０や第３のメモリ空間１７０にはアクセスできない。【００１８】
次に、メモリ空間及び各メモリ空間上で動作するＯＳ、プログラムについて説明する。なおＯＳもプログラムであるが、ここでいうプログラムはＯＳの実行対象とされるプログラムである。【００１９】
（第１のメモリ空間１５０）
（１）第１のメモリ空間１５０は、第１のＯＳ１５１が動作するメモリ空間である。上記のように、第１のＯＳ１５１は、第１のメモリ空間１５０のみを管理する。第１のページテーブル１５２は、第１のＯＳ１５１によって管理される。第１のページテーブル１５２は、第１のメモリ空間１５０の構成が記述されている。
（２）ファイルシステムドライバ１５３は、第１のＯＳ１５１が提供する機能であり、２次記憶装置１３０に格納されるファイルへのアクセス手段を提供する。
（３）ファーストブートローダ１５４は、第１のＯＳ１５１上で動作する「特権モードのプログラム」であり、ファーストブートローダ実行ファイル１３２は２次記憶装置１３０に格納されている。「特権モードのプログラム」とは、例えば、カーネルモードのデバイスドライバなど、計算機のすべての資源にアクセス可能なプログラムのことをいう。ファーストブートローダ１５４は、ファイルシステムドライバ１５３を用いて、２次記憶装置１３０にある第２のＯＳイメージ１３１、セカンドブートローダ実行ファイル１３３を第１のメモリ空間上にロードするファイルロード部１５５を持つ。【００２０】
（第２のメモリ空間１６０）
第２のメモリ空間１６０は、第２のＯＳ１６１が動作するメモリ空間である。後述のように第２のＯＳ１６１の起動後は、第２のメモリ空間１６０は、第２のＯＳ１６１により管理される。第２のページテーブル１６２は第２のＯＳ１６１によって管理される。第２のページテーブル１６２は、第２のＯＳが起動する第２のメモリ空間１６０の構成が記述されている。【００２１】
（第３のメモリ空間１７０）
第３のメモリ空間１７０は、セカンドブートローダ１７１が動作するメモリ空間である。第３のページテーブル１７２は、セカンドブートローダ１７１によって管理される。すなわち、セカンドブートローダ１７１は第３のメモリ空間１７０を管理する。第３のページテーブル１７２は、第３のメモリ空間１７０の構成が記述されている。図２の説明で後述するが、第３のメモリ空間１７０は、第２のメモリ空間１６０を含む。セカンドブートローダ１７１は、ファーストブートローダ１５４によって起動されるプログラムであり、第２のＯＳ１６１を起動するための処理を行う。【００２２】
（セカンドブートローダ１７１の構成）
セカンドブートローダ１７１は、第３のページテーブル１７２、コンテキスト作成部１７３、コンテキスト変更部１７４、ＯＳロード部１７５、ＯＳ起動部１７６を備える。
（１）コンテキスト作成部１７３は、セカンドブートローダ用のコンテキストを作成する。
（２）コンテキスト変更部１７４は、コンテキスト作成部１７３によって作成されたコンテキストをＣＰＵ１１０のレジスタ群１１１に設定する。ここでいうコンテキストとは、ＣＰＵ１１０が持つレジスタ群１１１やそのレジスタ群１１１の設定に必要なメモリ領域（例えば、ページテーブル、スタック領域など）を指す。
（３）ＯＳロード部１７５は、ファーストブートローダ１５４によって第１のメモリ空間上にロードされた第２のＯＳイメージを第２のメモリ空間上にロードする。
（４）ＯＳ起動部１７６は、第２のＯＳを起動させる。【００２３】
次に動作について説明する。図２は第１のメモリ空間１５０の構成の変遷を示す図である。図２のフェーズ１からフェーズ４は、第２のＯＳ１６１起動までの１次記憶装置１２０のメモリ空間の構成を図示したものである。「未使用」と書かれているメモリ空間は、現在動作しているＯＳ、または、プログラムから参照することができないメモリ空間である。
（１）フェーズ１は、第１のＯＳ１５１起動直後のメモリ空間である。
（２）フェーズ２は、セカンドブートローダ１７１起動直前のメモリ空間である。
（３）フェーズ３は、セカンドブートローダ１７１が自身のコンテキストに切り替えた後のメモリ空間である。したがって、セカンドブートローダ１７１は第１のメモリ空間１５０を参照できない。
（４）フェーズ４は、第２のＯＳ１６１起動後のメモリ空間である。第１のＯＳ１５１及び第１のＯＳ１５１により実行されるプログラム（例えばファーストブートローダ１５４）からは、第２のメモリ空間１６０を参照できない。【００２４】
図３は、第２のＯＳ１６１の起動手順を示すフローチャートである。すなわち、図２のフェーズ１からフェーズ４までの過程を説明するフローチャートである。図２、図３を参照して第２のＯＳ起動までの動作を説明する。【００２５】
（フェーズ１）
第１のＯＳ１５１は、起動時の初期化処理にて、第２のＯＳ１６１が使用する第２のメモリ空間１６０を予約済みとし、第１のメモリ空間１５０のみを管理する。第１のＯＳ１５１は、第２のメモリ空間１６０の構成に使用する第２のメモリ空間構成情報を予め保有している。【００２６】
予約される第２のメモリ空間１６０は、フェーズ４において第２のＯＳ１６１が起動する領域である。したがって、第２のメモリ空間１６０は、第２のＯＳの起動及び動作に必要な容量が確保される。【００２７】
メモリ領域の確保については、通常、ＯＳは、計算機に搭載されている１次記憶装置の容量を、計算機に内蔵されているＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）などから取得する。この際、ＯＳは１次記憶装置のすべての領域を使用するように、ＯＳのメモリ管理ルーチンを初期化する。図２のフェーズ１において第１のＯＳ１５１が１次記憶装置を独占しないためには、例えば、次の（１）〜（３）のような方法を取ることで実現可能である。
（１）１つは、ＢＩＯＳから取得する１次記憶装置の容量を実際の値ではなく、第２のメモリ空間を引いた値を使用するようにＯＳのメモリ管理ルーチンを書き換える。
（２）もう１つは、ＯＳのブートパラメータに１次記憶装置の容量を指定するオプションがある場合、実際に搭載されている１次記憶装置の容量から第２のメモリ空間を引いた値を指定する。
（３）もう１つは、ＢＩＯＳのエミュレーションレイヤを作成し第２のメモリ空間を引いた値を返すようにする。後者の２通りの場合は、第１のＯＳを改変することなく本実施の形態が適用可能となる。これらの手段により、第１のＯＳ１５１の、１次記憶装置１２０には第１のメモリ空間１５０しかないものとして動作させることが可能となる。【００２８】
（フェーズ２）
次に、図３のフローチャートを参照して、図２におけるフェーズ２で示す１次記憶装置１２０の構成が構築される手順を説明する。前述のように、図２のフェーズ２は、セカンドブートローダ１７１の起動直前を示している。図２のフェーズ２は、第１のＯＳ１５１によって第１のメモリ空間１５０が管理されている状態である。【００２９】
（Ｓ１００）
第１のＯＳは、２次記憶装置１３０に格納されているファーストブートローダ実行ファイル１３２を第１のＯＳ１５１上で動作する特権モードのプログラムとして起動する（Ｓ１００）。ファーストブートローダ実行ファイル１３２が第１のメモリ空間１５０上にロードされたものをファーストブートローダ１５４とする。次に、ファーストブートローダ１５４のファイルロード部１５５は、第１のＯＳ１５１が提供する機能であるファイルシステムドライバ１５３を用いて、２次記憶装置１３０より第２のＯＳイメージ１３１とセカンドブートローダ実行ファイル１３３とを第１のメモリ空間１５０の一部の空間（部分空間）上にロードする（Ｓ１０１）。第１のメモリ空間１５０上にロードされたものをセカンドブートローダ１７１、第２のＯＳイメージ２１１とする。これらの手段により、図２の「フェーズ２」で示す１次記憶装置１２０の構成が構築される。なお、ファーストブートローダ１５４のファイルロード部１５５によってロードされた第２のＯＳイメージ２１１は、イメージファイルのバイナリ情報をそのまま第１のメモリ空間１５０上にロードしたものであり、実際に第２のメモリ空間１６０上で第２のＯＳ１６１を起動するのはセカンドブートローダ１７１によって行われる。【００３０】
（フェーズ３）
次に、図２における「フェーズ３」で示す１次記憶装置１２０の構成が構築される手順を説明する。図２のフェーズ３は、前述のように、セカンドブートローダ１７１による自己のコンテキストへの切り替え後を示している。ファーストブートローダ１５４は、第１のメモリ空間１５０にロードされたセカンドブートローダ１７１を起動する（Ｓ１０２）。【００３１】
（セカンドブートローダ１７１の起動後）
セカンドブートローダ１７１の起動後は、動作の主体はセカンドブートローダ１７１に移る。【００３２】
以下の動作は、セカンドブートローダ１７１による。セカンドブートローダ１７１のコンテキスト変更部１７４は、第１のＯＳ１５１からＣＰＵ１１０の制御権限を奪うため、割込みを禁止する（Ｓ１０３）。この段階では、セカンドブートローダ１７１は、第１のＯＳのコンテキスト上で動作しているので、システムクロックやＩ／Ｏデバイスの割込みにより、処理を第１のＯＳ１５１に横取りされる可能性がある。これを防止するためにセカンドブートローダ１７１のコンテキスト変更部１７４が、割り込みを禁止する。次に、第１のＯＳ１５１とは独立したセカンドブートローダ１７１用のコンテキストでセカンドブートローダ１７１が動作するように、セカンドブートローダ１７１のコンテキスト作成部１７３は、セカンドブートローダ１７１用のコンテキストを作成する（Ｓ１０４）。作成するコンテキストの１つとして、セカンドブートローダ１７１のコンテキスト作成部１７３は、図２のフェーズ３に示すように、Ｓ１０１でロードしたセカンドブートローダ１７１のメモリ領域及び第２のＯＳイメージ２１１のメモリ領域と第２のメモリ空間１６０とを含む第３のメモリ空間１７０を構成するように、第３のページテーブル１７２を作成する。第３のページテーブル１７２には、図１に示す第３のメモリ空間と第２のメモリ空間との関係（第３のメモリ空間の一部の領域が第２のメモリ空間となっている）も記載されている。その他に作成すべきコンテキストとして、スタック領域、セグメント領域の設定が挙げられる。セカンドブートローダ１７１のコンテキスト変更部１７４は、現在のコンテキスト情報（第１のＯＳのコンテキスト情報）を保存すると共に、Ｓ１０４で作成されたセカンドブートローダ１７１用のコンテキストをレジスタ群１１１に設定することでコンテキストを切り替える（Ｓ１０５）。セカンドブートローダ１７１のコンテキスト変更部１７４によるセカンドブートローダ１７１用コンテキストへの切り替えにより、図２のフェーズ３の状態になる。【００３３】
以上、これらの手順により、セカンドブートローダ１７１は、第１のＯＳ１５１からＣＰＵ１１０の制御権限を奪い、独立したメモリ空間である第３のメモリ空間１７０で動作する。第１のＯＳのコンテキストに戻すときは、セカンドブートローダ１７１のコンテキスト変更部１７４が、Ｓ１０５で保存した第１のＯＳ用のコンテキストをレジスタ群１１１に設定することにより、第３のメモリ空間１７０から第１のメモリ空間１５０に切り替え、ＣＰＵ１１０の制御権限を第１のＯＳ１５１に戻すことが可能となる。【００３４】
（フェーズ４）
次に、図２における「フェーズ４」で示す１次記憶装置１２０の構成が構築される手順を説明する。図２のフェーズ４は、１次記憶装置１２０における第２のＯＳ起動直後を示している。以下では、図２のフェーズ３からフェーズ４に至る過程を説明する。セカンドブートローダ１７１のＯＳロード部１７５は、Ｓ１０１でファーストブートローダ１５４のファイルロード部１５５によりロードされた第２のＯＳイメージ２１１を、第３のメモリ空間１７０から第２のメモリ空間１６０にロードする（Ｓ１０６）。第２のメモリ空間１６０は、図２のフェーズ３において、破線で示した領域である。すなわち、図２のフェーズ２に示す「第２のＯＳイメージ２１１」は、Ｓ１０１において第１のメモリ空間１５０にロードされたものである。また、フェーズ３の「第２のＯＳイメージ２１１」は、存在領域が第１のメモリ空間１５０から第３のメモリ空間１７０へとコンテキストによって切り替えられたのみであり、ロードされたわけではない。セカンドブートローダ１７１のＯＳロード部１７５は、図２のフェーズ３の状態において、第３のメモリ空間１７０における第２のメモリ空間１６０の領域に、第２のＯＳイメージ２１１をロードする。なお、セカンドブートローダ１７１は、第２のメモリ空間の構成に使用する第２のメモリ空間構成情報を予め第３のページテーブル１７２に保有している。セカンドブートローダ１７１は、図２のフェーズ３の状態における第３のメモリ空間１７０と、第３のメモリ空間１７０に含まれる第２のメモリ空間との対応関係も、第２のメモリ空間構成情報として第３のページテーブル１７２に保有している。セカンドブートローダ１７１のＯＳロード部１７５は、この第２のメモリ空間構成情報に従って、図２のフェーズ３に示すように、第３のメモリ空間１７０に存在する第２のＯＳイメージ２１１を、第２のメモリ空間１６０にロードする。【００３５】
セカンドブートローダ１７１のＯＳ起動部１７６は、第２のＯＳ１６１用のコンテキストを作成し、そのコンテキストに切り替え、第２のＯＳ１６１を起動する（Ｓ１０７）。【００３６】
図２のフェーズ４の状態が、第２のＯＳ１６１の起動直後を示している。ここでセカンドブートローダ１７１のＯＳ起動部１７６によって作成される第２のＯＳ１６１用のコンテキストは、Ｓ１０４で作成されたセカンドブートローダ１７１用のコンテキストと同様に、第２のメモリ空間１６０を構成するように記述された第２のページテーブル１６２や、スタック領域、セグメント領域が設定されている。セカンドブートローダ１７１のＯＳ起動部１７６は、ＣＰＵ１１０のレジスタ群１１１に、第２のＯＳ用コンテキストの内容を設定する。そして、セカンドブートローダ１７１のＯＳ起動部１７６が第２のＯＳを起動することにより、第２のメモリ空間上で第２のＯＳは動作することとなる。【００３７】
以上のように本実施の形態１によれば、第２のＯＳ１６１をロードする際に、第１のＯＳ１５１とは独立した第３のメモリ空間１７０で動作するセカンドブートローダ１７１によって処理を行うため、第１のＯＳ１５１上で動作するプログラムから第２のメモリ空間１６０へのアクセスすることを防止することが可能となり、第２のＯＳ１６１の改竄に対する安全性を向上することができる。また、ファーストブートローダ１５４で、第１のＯＳ１５１の持つ機能であるファイルシステムドライバ１５３用いてロードしたものを、セカンドブートローダ１７１で利用することにより、２次記憶装置１３０の操作やファイルシステムの操作する複雑なドライバを実装する必要がないため、ブートローダの実装が容易になる。【００３８】
実施の形態２．
図４〜図６を用いて実施の形態２を説明する。以上の実施の形態１では、第２のＯＳ１６１のロード時に第１のＯＳ１５１、あるいは、第１のＯＳ１５１上で動作するプログラムが、第２のメモリ空間１６０へのアクセスを防止するものであるが、次に第２のＯＳイメージ２１１の解析、改竄または複製を防止する実施の形態を示す。【００３９】
図４は、計算機１００として実現される実施の形態２におけるマルチＯＳ起動装置の構成図であり、図１と同一符号のものは省略する。【００４０】
図４は、図１に対して次の点が異なっている。
（１）２次記憶装置には第２のＯＳの暗号化イメージ４００が格納されている。第２のＯＳの暗号化イメージ４００は、第２のＯＳイメージ１３１を、あらかじめソフトウェア作成者が暗号化したものである。
（２）セカンドブートローダ１７１が、あらたに改竄チェック部４１０及び複製チェック部４１２を備え、また、ＯＳロード部１７５が復号機能を有するＯＳ復号ロード部４１１となっている。改竄チェック部４１０は、セカンドブートローダ１７１の改竄をチェックし（自己改竄チェック機能）、また第２のＯＳ１６１の改竄をチェックする（第２ＯＳ改竄チェック機能）。ＯＳ復号ロード部４１１は、第２のＯＳの暗号化イメージ４００を復号化する。複製チェック部４１２は、ソフトウェア利用者による不正な第２のＯＳの複製をチェックする（複製チェック機能）。【００４１】
次に動作について説明する。図５は実施の形態２における第２のＯＳの起動手順を示す図である。また、図６は図２に対応する図である。以下、図５、図６を参照して説明する。図５において、図３と同一符号のものは、実施の形態１で説明した処理と同一であるため省略する。【００４２】
（フェーズ２）
ファーストブートローダ１５４のファイルロード部１５５は、第１のＯＳ１５１が提供する機能であるファイルシステムドライバ１５３を用いて、２次記憶装置１３０より第２のＯＳの暗号化イメージ４００とセカンドブートローダ実行ファイル１３３を第１のメモリ空間１５０上にロードする（Ｓ２００）。第２のＯＳの暗号化イメージ４００は、イメージファイルのバイナリ情報をそのまま第１のメモリ空間１５０にロードしたものであり、暗号化されたままの状態である。【００４３】
（セカンドブートローダ１７１の改竄チェック）
次にファーストブートローダ１５４は、セカンドブートローダ１７１を起動（Ｓ１０２）する。そして、セカンドブートローダ１７１のコンテキスト変更部１７４が割込みを禁止（Ｓ１０３）した後、セカンドブートローダ１７１の改竄チェック部４１０が、自身のプログラム（セカンドブートローダ１７１）が改竄されていないかをチェックする（Ｓ２０１）。
セカンドブートローダ１７１自身の改竄をチェックする方法の一例として、自身のプログラムのコード情報をハッシュ化したものをソフトウェア作成時に埋め込んでおき、起動後にハッシュを計算し、前記埋め込んでおいた情報と一致しなければ、改竄されていることがチェック可能（自己改竄判定基準の一例）である。改竄されていることが検出されれば、改竄チェック部４１０は改竄されている旨をファーストブートローダ１５４にエラー通知し処理を終了する（Ｓ２１０）。【００４４】
（フェーズ３）
セカンドブートローダ１７１は、セカンドブートローダ用のコンテキストに切り替えた後（Ｓ１０５、図６のフェーズ３）、セカンドブートローダ１７１のＯＳ復号ロード部４１１が、第２のＯＳの暗号化イメージ５１０を復号し、第２のメモリ空間１６０にロードする（Ｓ２０２）。【００４５】
（フェーズ４）
（１．第２のメモリ空間にロードされた第２のＯＳ１６１の改竄チェック）
次に、セカンドブートローダ１７１の改竄チェック部４１０は、Ｓ２０１で行ったセカンドブートローダ１７１の改竄チェックと同様に、第２のＯＳ１６１が改竄されていないかをチェックする（Ｓ２０３）。改竄されているかどうかの判定基準（第２ＯＳ改竄判定基準）は、セカンドブートローダ１７１の改竄チェックの場合と同様の手法を採ることができる。改竄されていることが検出されれば、セカンドブートローダ１７１の改竄チェック部４１０は、Ｓ１０５で保存していた第１のＯＳ１５１のＯＳのコンテキストに切り替え、改竄されている旨をファーストブートローダ１５４にエラー通知し、処理を終了する（Ｓ２１０）。【００４６】
（２．第２のメモリ空間にロードされた第２のＯＳ１６１の複製チェック）
次に、セカンドブートローダ１７１の複製チェック部４１２が、第２のＯＳが不正に複製されているかをチェックする（Ｓ２０４）。複製をチェックする方法（複製判定基準）の一例として、Ｉ／Ｏデバイス１４０の固有の情報であるシリアル番号（例えば、ネットワークカードのＭＡＣアドレスなど）や、１次記憶装置１２０、２次記憶装置１３０の容量や、ＣＰＵ１１０の型番などの情報を第２のＯＳに予め埋め込んでおき、埋め込まれた情報に基づきチェックする。これによって、ソフトウェア作成者が意図した計算機以外での実行を検出することが可能である。以上の複製チェックにより、複製されていることが検出されれば、セカンドブートローダ１７１の複製チェック部４１２は、Ｓ１０５で保存した第１のＯＳ１５１のＯＳのコンテキストに切り替え、複製されている旨をファーストブートローダ１５４にエラー通知し処理を終了する（Ｓ２１０）。【００４７】
本実施の形態２において、第２のＯＳイメージを暗号化したものとしたが、圧縮された第２のＯＳイメージであってもよい。その場合、ＯＳ復号ロード部５０１がその圧縮された第２のＯＳイメージを展開する機能をもち、その他の手段に変更を加えることなく実現可能である。【００４８】
以上のように本実施の形態２によれば、第２のＯＳイメージを暗号化した状態で２次記憶装置１３０や第１のメモリ空間１５０に置けるため、第１のＯＳ１５１上で動作する他のプログラムから第２のＯＳ１６１の内容の解析を防止することが可能となる。また、プログラムのコード情報のハッシュ化したものやＩ／Ｏデバイスのシリアル番号を埋め込んでおき、セカンドブートローダ１７１にてチェックすることにより、プログラムの改竄や複製を検知することが可能となる。【００４９】
なお、以上の実施の形態１，２ではコンピュータで実行されるマルチＯＳ起動装置を説明したが、以上のマルチＯＳ起動装置は、「マルチＯＳ起動方法」という方法としての把握も可能である。また、以上に説明したマルチＯＳ起動装置を実行するマルチＯＳ起動プログラムとして把握することも可能であり、さらに、このマルチＯＳ起動プログラムを記録したコンピュータ読み取り可能な記録媒体として把握することも可能である。またマルチＯＳ起動装置は、「マルチＯＳ起動方式」として把握することも可能である。【００５０】
以上の実施の形態では、第１のＯＳ１５１、ファーストブートローダ１５４、セカンドブートローダ１７１等のプログラムの動作を説明したが、これらのプログラムはＣＰＵ１１０により読み出され、ＣＰＵ１１０（ＯＳ実行部、ローダ実行部）により実行される。【００５１】
以上の実施の形態１では、次のマルチＯＳ起動装置を説明した。
第１のＯＳの起動時に、第２のＯＳが使用する第２のメモリ空間を除いた第１のメモリ空間を用いて、第２のメモリ空間が第１のＯＳに管理されないように第２のＯＳを起動するマルチＯＳ起動装置において、以下のファーストブートローダとセカンドブートローダとを備えるマルチＯＳ起動装置。
（ａ）第１のＯＳのファイル読込み手順を用いて第１のメモリ空間内に、第２のＯＳをロードするためのプログラムであるセカンドブートローダと第２のＯＳイメージをロードするファーストブートローダ。
（ｂ）ファーストブートローダによって起動されるプログラムであるとともに第１のメモリ空間内にあるセカンドブートローダであって、第２のＯＳイメージがロードされた第１のメモリ空間と、第２のメモリ空間を含む第３のメモリ空間内で動作し、前記ロードされた第２のＯＳイメージを第２のメモリ空間内にロードし、第２のＯＳを起動するセカンドブートローダ。【００５２】
以上の実施の形態２では、
さらに、以下の手段を備えたマルチＯＳ起動装置を説明した。
暗号化された第２のＯＳイメージを復号化、または、圧縮された第２のＯＳを展開し、第２のメモリ空間内にロードする手段を備えるセカンドブートローダのＯＳ復号ロード部。【００５３】
以上の実施の形態２では、
以下の手段（改竄チェック部）を備えたマルチＯＳ起動装置を説明した。
第２のＯＳイメージが不正に改竄された場合、第２のＯＳのロードを中止するセカンドブートローダの改竄チェック部。【００５４】
以上の実施の形態２では、
以下の手段（複製チェック部）を備えたマルチＯＳ起動装置を説明した。
計算機が具備するハードウェアでソフトウェアから確認することができるハードウェア情報（シリアル番号、ＭＡＣアドレスなど）を、あらかじめ第２のＯＳイメージに埋め込んでおき、第２のＯＳをロードする際に前記埋め込んだ情報とハードウェアから得た情報を比較し、一致したときにだけ第２のＯＳの起動を許可する手段を備えるセカンドブートローダの複製チェック部。
【図面の簡単な説明】
【００５５】
【図１】実施の形態１におけるマルチＯＳ起動装置の構成図。
【図２】実施の形態１におけるメモリ空間の構成の変遷を示す図。
【図３】実施の形態１におけるマルチＯＳ起動装置のフローチャート。
【図４】実施の形態２におけるマルチＯＳ起動装置の構成図。
【図５】実施の形態２におけるマルチＯＳ起動装置のフローチャート。
【図６】実施の形態２におけるメモリ空間の構成の変遷を示す図。
【符号の説明】
【００５６】
１００  計算機、１１０  ＣＰＵ、１１１  レジスタ群、１１２  ＰＴＢＲ、１１３  ＭＭＵ、１２０  １次記憶装置、１３０  ２次記憶装置、１３１  第２のＯＳイメージ、１３２  ファーストブートローダ実行ファイル、１３３  セカンドブートローダ実行ファイル、１４０  Ｉ／Ｏデバイス、１５０  第１のメモリ空間、１５１  第１のＯＳ、１５２  第１のページテーブル、１５３  ファイルシステムドライバ、１５４  ファーストブートローダ、１５５  ファイルロード部、１６０  第２のメモリ空間、１６１  第２のＯＳ、１６２  第２のページテーブル、１７０  第３のメモリ空間、１７１  セカンドブートローダ、１７２  第３のページテーブル、１７３  コンテキスト作成部、１７４  コンテキスト変更部、１７５  ＯＳロード部、１７６  ＯＳ起動部。
【図１】
2009113394.tif 000003
【図２】
2009113394.tif 000004
【図３】
2009113394.tif 000005
【図４】
2009113394.tif 000006
【図５】
2009113394.tif 000007
【図６】
2009113394.tif 000008
【国際調査報告】
2009113394.tif 000009
2009113394.tif 000010
2009113394.tif 000011
2009113394.tif 000012