JPWO2009113394A1 - マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法 - Google Patents

マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法 Download PDF

Info

Publication number
JPWO2009113394A1
JPWO2009113394A1 JP2010502762A JP2010502762A JPWO2009113394A1 JP WO2009113394 A1 JPWO2009113394 A1 JP WO2009113394A1 JP 2010502762 A JP2010502762 A JP 2010502762A JP 2010502762 A JP2010502762 A JP 2010502762A JP WO2009113394 A1 JPWO2009113394 A1 JP WO2009113394A1
Authority
JP
Japan
Prior art keywords
boot loader
context
memory space
storage unit
boot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010502762A
Other languages
English (en)
Other versions
JP4916576B2 (ja
Inventor
努 元濱
努 元濱
吉章 片山
吉章 片山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010502762A priority Critical patent/JP4916576B2/ja
Publication of JPWO2009113394A1 publication Critical patent/JPWO2009113394A1/ja
Application granted granted Critical
Publication of JP4916576B2 publication Critical patent/JP4916576B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

マルチOS起動装置において、第2のOSをローディングする際に、他のプログラムから第2のOSの内容参照を防ぐ。第1のOS151は、ファーストブートローダ154を用いて第1のメモリ空間150に、セカンドブートローダ171と第2のOSイメージ211とをロードする(フェーズ2)。ロードされたセカンドブートローダ171は、第1のメモリ空間150と第2のメモリ空間160とからなる第3のメモリ空間170を構成し、第3のメモリ空間170で動作することによりセカンドブートローダ171自身と第2のOSイメージ211とを第1のOS151の管理対象から外すとともに(フェーズ3)、第2のメモリ空間160を構成して第2のメモリ空間160に第2のOS161をロードし、第2のメモリ空間160で第2のOS161を起動する。

Description

この発明は、複数のオペレーティングシステム(Operating System、以下OSともいう)を起動するマルチOS起動装置及びマルチOS起動プログラムに関する。
近年、計算機の高性能化に伴い、1つの計算機上で複数のオペレーティングシステムを動作させることが注目されている。例えば、制御プログラムを動作させるリアルタイムOSと、多機能で豊富なソフトウェア資源を持つWindows(登録商標)やLinux(登録商標)のような汎用OSを同時に動作せることにより、各OSの特長を活かした高機能なシステムを1つの計算機で実現することが可能である。そもそも、これらのOSは、1つの計算機上で1つのOSで動作することを考慮して設計されている。このため、1つの計算機上で複数のOSを共存させるためには、各OSで管理する計算機の資源(メモリ、I/O(Input/Output)デバイスなど)を破壊しないよう動作させる必要がある。例えば、第1のOSを起動した後に、第2のOSを起動する際に、先に起動した第1のOSのメモリ領域を破壊せずに第2のOSを起動するための専用のブートローダが必要となる。これらを実現する方法として、特許文献1などの技術が開発されている。
特開平11−149385号公報
しかし、前記の手法の場合、第2のOSをローディングするために、本来第2のOSのみが管理する第2のメモリ空間を一時的に第1のOSから読み書きできるよう第1のメモリ空間を拡張していたため、第1のOS上で動作する他のプログラムあるいは第1のOSから、第2のOSの内容を参照したり、プログラムやデータを改竄したりすることが可能であるという課題があった。
すなわち、第1のOSは、第2のメモリ空間を一時的に読み書きできる。このため、第2のOSのみが管理するべき第2のメモリ空間に、第1のOSが何らかの処理を施すことによって、第1のOSは、第2のOSの処理するデータを参照することが可能であり、あるいは第2のOSの処理するデータを改ざん可能であるといった課題があった。
これは、第2のOSが制御プログラムや暗号プログラムなどの重要なプログラムを実行させる場合、致命的となる。この発明は上記のような課題を解決するためになされたもので、第2のOSをローディングする際に、第1のOS上で動作する他のプログラムから第2のOSの内容を参照・改竄することを防ぎ、安全性を向上させることを目的とする。
この発明のマルチOS起動装置は、
第1のオペレーティングシステム(Operating System、以下OSという)と第2のOSとの少なくとも2つのOSを起動するマルチOS起動装置において、
(1)メモリ領域を有し、前記メモリ領域に対してメモリ空間が定義される1次記憶部と、
(2)セカンドブートローダと、前記第2のOSとを記憶する2次記憶部と、
(3)CPU(Central Processing Unit )に対する制御情報を示すコンテキストであって前記第1のOS用のコンテキストである第1のコンテキストで動作する前記第1のOSのもとで動作するファーストブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで動作させることにより、前記第1のOSが管理する第1のメモリ空間として前記第1のコンテキストにより前記1次記憶装置に対して定義された前記1次記憶部のメモリ領域に前記2次記憶部から前記セカンドブートローダと前記第2のOSとを前記ファーストブートローダにロードさせるOS実行部と、
(4)前記第1のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで実行することにより前記第2のOSが管理する第2のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第2のOSがロードされたメモリ領域とを含む第3のメモリ空間を前記1次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第1のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第3のメモリ空間に含まれる前記第2のメモリ空間として定義された前記1次記憶部のメモリ領域に前記ファーストブートローダによって前記1次記憶部のメモリ領域にロードされた前記第2のOSを前記セカンドブートローダにロードさせると共に前記第2のOS用のコンテキストを生成させ、生成された前記第2のOS用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第2のOS用のコンテキストのもとで前記セカンドブートローダに前記第2のOSの起動を実行させるローダ実行部と
を備えたことを特徴とする。
前記2次記憶部に記憶された前記第2のOSは、
暗号化されており、
前記2次記憶部に記憶されたセカンドブートローダは、
暗号化された前記第2のOSを復号する機能を有し、
前記ローダ実行部は、
前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより、前記ファーストブートローダによって前記1次記憶部のメモリ領域にロードされた暗号化された前記第2のOSを前記セカンドブートローダに復号させ、前記第3のメモリ空間に含まれる前記第2のメモリ空間として定義された前記1次記憶部のメモリ領域に復号された前記第2のOSを前記セカンドブートローダにロードさせることを特徴とする。
前記2次記憶部に記憶されたセカンドブートローダは、
前記セカンドブートローダの改ざんをチェックする機能を有し、
前記ローダ実行部は、
前記第1のコンテキストで動作中の前記第1のOSのもとで前記セカンドブートローダを実行することにより、前記セカンドブートローダ自信が改ざんされているかどうかを前記セカンドブートローダに判定させることを特徴とする。
前記2次記憶部に記憶されたセカンドブートローダは、
前記第2のOSの改ざんをチェックする機能を有し、
前記ローダ実行部は、
前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより、前記ファーストブートローダによって前記1次記憶部のメモリ領域にロードされた前記第2のOSが改ざんされているかどうかを前記セカンドブートローダに判定させることを特徴とする。
前記2次記憶部に記憶されたセカンドブートローダは、
前記第2のOSが複製かどうかをチェックする機能を有し、
前記ローダ実行部は、
前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより、前記ファーストブートローダによって前記1次記憶部のメモリ領域にロードされた前記第2のOSが改ざんされているかどうかを前記セカンドブートローダに判定させることを特徴とする。
この発明のマルチOS起動プログラムは、
第1のオペレーティングシステム(Operating System、以下OSという)と第2のOSとの少なくとも2つのOSを起動するコンピュータを、
(1)メモリ領域を有し、前記メモリ領域に対してメモリ空間が定義される1次記憶部、
(2)セカンドブートローダと、前記第2のOSとを記憶する2次記憶部、
(3)CPU(Central Processing Unit )に対する制御情報を示すコンテキストであって前記第1のOS用のコンテキストである第1のコンテキストで動作する前記第1のOSのもとで動作するファーストブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで動作させることにより、前記第1のOSが管理する第1のメモリ空間として前記第1のコンテキストにより前記1次記憶装置に対して定義された前記1次記憶部のメモリ領域に前記2次記憶部から前記セカンドブートローダと前記第2のOSとを前記ファーストブートローダにロードさせるOS実行部、
(4)前記第1のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで実行することにより前記第2のOSが管理する第2のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第2のOSがロードされたメモリ領域とを含む第3のメモリ空間を前記1次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第1のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第3のメモリ空間に含まれる前記第2のメモリ空間として定義された前記1次記憶部のメモリ領域に前記ファーストブートローダによって前記1次記憶部のメモリ領域にロードされた前記第2のOSを前記セカンドブートローダにロードさせると共に前記第2のOS用のコンテキストを生成させ、生成された前記第2のOS用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第2のOS用のコンテキストのもとで前記セカンドブートローダに前記第2のOSの起動を実行させるローダ実行部、
として機能させることを特徴とする。
この発明のマルチOS起動方法は、
メモリ領域を有すると共に前記メモリ領域に対してメモリ空間が定義される1次記憶部を備えると共に、第1のオペレーティングシステム(Operating System、以下OSという)と第2のOSとの少なくとも2つのOSを起動するマルチOS起動装置が行うマルチOS起動方法において、
(1)2次記憶部が、セカンドブートローダと、前記第2のOSとを記憶し、
(2)OS実行部が、CPU(Central Processing Unit )に対する制御情報を示すコンテキストであって前記第1のOS用のコンテキストである第1のコンテキストで動作する前記第1のOSのもとで動作するファーストブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで動作させることにより、前記第1のOSが管理する第1のメモリ空間として前記第1のコンテキストにより前記1次記憶装置に対して定義された前記1次記憶部のメモリ領域に前記2次記憶部から前記セカンドブートローダと前記第2のOSとを前記ファーストブートローダにロードさせ、
(3)ローダ実行部が、前記第1のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで実行することにより前記第2のOSが管理する第2のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第2のOSがロードされたメモリ領域とを含む第3のメモリ空間を前記1次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第1のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第3のメモリ空間に含まれる前記第2のメモリ空間として定義された前記1次記憶部のメモリ領域に前記ファーストブートローダによって前記1次記憶部のメモリ領域にロードされた前記第2のOSを前記セカンドブートローダにロードさせると共に前記第2のOS用のコンテキストを生成させ、生成された前記第2のOS用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第2のOS用のコンテキストのもとで前記セカンドブートローダに前記第2のOSの起動を実行させることを特徴とする。
この発明により、第2のOSをロードする際に、第1のOSとは独立した第3のメモリ空間で動作するセカンドブートローダによって処理を行うため、第1のOS上で動作するプログラムから第2のメモリ空間へのアクセスすることを防止することが可能となり、第2のOSのセキュリティを向上することができる。
実施の形態1.
図1は計算機100として実現される実施の形態1におけるマルチOS起動装置の構成図である。実施の形態1における計算機100(マルチOS起動装置)は、第2のOSのローディングを2段階に分けることで、第2のOSを第1のOSとは異なる空間にローディングし、第2のOSの内容を第1のOSから参照できないようにする。
図1において、計算機100は、CPU(Central Processing Unit)110(OS実行部、ローダ実行部)、データやプログラムを記憶する1次記憶装置120(1次記憶部)、FlashROMやハードディスク等の2次記憶装置130(2次記憶部)、I/Oデバイス140より構成される。
(CPU)
(1)CPU110は、レジスタ群111、レジスタ群111の1つであるページテーブルの先頭物理アドレスを指定するPTBR(ページテーブルベースレジスタ)112、CPU110が1次記憶装置120をアクセスする際、PTBR112が指すページテーブルの設定にしたがって論理アドレスと物理アドレスの変換を実現するMMU(Memory Management Unit)113を備える。
(2)「ページテーブル」とは、論理アドレスと物理アドレスの対応表が記述されているものであり、ある命令がページテーブルに物理アドレスとの対応が記述されていない論理アドレスをアクセスした場合、MMU113は例外を発生させCPU110に通知する機能を持つ。この例外はOSによって処理され、例えば、対応する物理アドレスを見つけ出し、ページテーブルの対応表を書き換え、例外を発生させた命令を再度実行するなどの処理を行う。
(1次記憶装置120)
1次記憶装置120は、OSまたはプログラムに割当てられた物理アドレス領域を持つ3つのメモリ空間である、第1のメモリ空間150、第2のメモリ空間160、第3のメモリ空間170が定義されている。これらのメモリ空間には、OSまたは、プログラムが管理するページテーブルが存在する。OSまたはプログラムは、自身の管理するメモリ空間の物理アドレスに対してのみ、論理アドレスとの対応付けを行う。すなわち、OSあるいはプログラムは、自身の管理するメモリ空間以外のメモリ空間にはアクセスできない。例えば、以下に説明する第1のOSは第1のメモリ空間150のみを管理対象とするので第1のメモリ空間150のみアクセス可能であり、後述する第2のメモリ空間160や第3のメモリ空間170にはアクセスできない。
次に、メモリ空間及び各メモリ空間上で動作するOS、プログラムについて説明する。なおOSもプログラムであるが、ここでいうプログラムはOSの実行対象とされるプログラムである。
(第1のメモリ空間150)
(1)第1のメモリ空間150は、第1のOS151が動作するメモリ空間である。上記のように、第1のOS151は、第1のメモリ空間150のみを管理する。第1のページテーブル152は、第1のOS151によって管理される。第1のページテーブル152は、第1のメモリ空間150の構成が記述されている。
(2)ファイルシステムドライバ153は、第1のOS151が提供する機能であり、2次記憶装置130に格納されるファイルへのアクセス手段を提供する。
(3)ファーストブートローダ154は、第1のOS151上で動作する「特権モードのプログラム」であり、ファーストブートローダ実行ファイル132は2次記憶装置130に格納されている。「特権モードのプログラム」とは、例えば、カーネルモードのデバイスドライバなど、計算機のすべての資源にアクセス可能なプログラムのことをいう。ファーストブートローダ154は、ファイルシステムドライバ153を用いて、2次記憶装置130にある第2のOSイメージ131、セカンドブートローダ実行ファイル133を第1のメモリ空間上にロードするファイルロード部155を持つ。
(第2のメモリ空間160)
第2のメモリ空間160は、第2のOS161が動作するメモリ空間である。後述のように第2のOS161の起動後は、第2のメモリ空間160は、第2のOS161により管理される。第2のページテーブル162は第2のOS161によって管理される。第2のページテーブル162は、第2のOSが起動する第2のメモリ空間160の構成が記述されている。
(第3のメモリ空間170)
第3のメモリ空間170は、セカンドブートローダ171が動作するメモリ空間である。第3のページテーブル172は、セカンドブートローダ171によって管理される。すなわち、セカンドブートローダ171は第3のメモリ空間170を管理する。第3のページテーブル172は、第3のメモリ空間170の構成が記述されている。図2の説明で後述するが、第3のメモリ空間170は、第2のメモリ空間160を含む。セカンドブートローダ171は、ファーストブートローダ154によって起動されるプログラムであり、第2のOS161を起動するための処理を行う。
(セカンドブートローダ171の構成)
セカンドブートローダ171は、第3のページテーブル172、コンテキスト作成部173、コンテキスト変更部174、OSロード部175、OS起動部176を備える。
(1)コンテキスト作成部173は、セカンドブートローダ用のコンテキストを作成する。
(2)コンテキスト変更部174は、コンテキスト作成部173によって作成されたコンテキストをCPU110のレジスタ群111に設定する。ここでいうコンテキストとは、CPU110が持つレジスタ群111やそのレジスタ群111の設定に必要なメモリ領域(例えば、ページテーブル、スタック領域など)を指す。
(3)OSロード部175は、ファーストブートローダ154によって第1のメモリ空間上にロードされた第2のOSイメージを第2のメモリ空間上にロードする。
(4)OS起動部176は、第2のOSを起動させる。
次に動作について説明する。図2は第1のメモリ空間150の構成の変遷を示す図である。図2のフェーズ1からフェーズ4は、第2のOS161起動までの1次記憶装置120のメモリ空間の構成を図示したものである。「未使用」と書かれているメモリ空間は、現在動作しているOS、または、プログラムから参照することができないメモリ空間である。
(1)フェーズ1は、第1のOS151起動直後のメモリ空間である。
(2)フェーズ2は、セカンドブートローダ171起動直前のメモリ空間である。
(3)フェーズ3は、セカンドブートローダ171が自身のコンテキストに切り替えた後のメモリ空間である。したがって、セカンドブートローダ171は第1のメモリ空間150を参照できない。
(4)フェーズ4は、第2のOS161起動後のメモリ空間である。第1のOS151及び第1のOS151により実行されるプログラム(例えばファーストブートローダ154)からは、第2のメモリ空間160を参照できない。
図3は、第2のOS161の起動手順を示すフローチャートである。すなわち、図2のフェーズ1からフェーズ4までの過程を説明するフローチャートである。図2、図3を参照して第2のOS起動までの動作を説明する。
(フェーズ1)
第1のOS151は、起動時の初期化処理にて、第2のOS161が使用する第2のメモリ空間160を予約済みとし、第1のメモリ空間150のみを管理する。第1のOS151は、第2のメモリ空間160の構成に使用する第2のメモリ空間構成情報を予め保有している。
予約される第2のメモリ空間160は、フェーズ4において第2のOS161が起動する領域である。したがって、第2のメモリ空間160は、第2のOSの起動及び動作に必要な容量が確保される。
メモリ領域の確保については、通常、OSは、計算機に搭載されている1次記憶装置の容量を、計算機に内蔵されているBIOS(Basic Input/Output System)などから取得する。この際、OSは1次記憶装置のすべての領域を使用するように、OSのメモリ管理ルーチンを初期化する。図2のフェーズ1において第1のOS151が1次記憶装置を独占しないためには、例えば、次の(1)〜(3)のような方法を取ることで実現可能である。
(1)1つは、BIOSから取得する1次記憶装置の容量を実際の値ではなく、第2のメモリ空間を引いた値を使用するようにOSのメモリ管理ルーチンを書き換える。
(2)もう1つは、OSのブートパラメータに1次記憶装置の容量を指定するオプションがある場合、実際に搭載されている1次記憶装置の容量から第2のメモリ空間を引いた値を指定する。
(3)もう1つは、BIOSのエミュレーションレイヤを作成し第2のメモリ空間を引いた値を返すようにする。後者の2通りの場合は、第1のOSを改変することなく本実施の形態が適用可能となる。これらの手段により、第1のOS151の、1次記憶装置120には第1のメモリ空間150しかないものとして動作させることが可能となる。
(フェーズ2)
次に、図3のフローチャートを参照して、図2におけるフェーズ2で示す1次記憶装置120の構成が構築される手順を説明する。前述のように、図2のフェーズ2は、セカンドブートローダ171の起動直前を示している。図2のフェーズ2は、第1のOS151によって第1のメモリ空間150が管理されている状態である。
(S100)
第1のOSは、2次記憶装置130に格納されているファーストブートローダ実行ファイル132を第1のOS151上で動作する特権モードのプログラムとして起動する(S100)。ファーストブートローダ実行ファイル132が第1のメモリ空間150上にロードされたものをファーストブートローダ154とする。次に、ファーストブートローダ154のファイルロード部155は、第1のOS151が提供する機能であるファイルシステムドライバ153を用いて、2次記憶装置130より第2のOSイメージ131とセカンドブートローダ実行ファイル133とを第1のメモリ空間150の一部の空間(部分空間)上にロードする(S101)。第1のメモリ空間150上にロードされたものをセカンドブートローダ171、第2のOSイメージ211とする。これらの手段により、図2の「フェーズ2」で示す1次記憶装置120の構成が構築される。なお、ファーストブートローダ154のファイルロード部155によってロードされた第2のOSイメージ211は、イメージファイルのバイナリ情報をそのまま第1のメモリ空間150上にロードしたものであり、実際に第2のメモリ空間160上で第2のOS161を起動するのはセカンドブートローダ171によって行われる。
(フェーズ3)
次に、図2における「フェーズ3」で示す1次記憶装置120の構成が構築される手順を説明する。図2のフェーズ3は、前述のように、セカンドブートローダ171による自己のコンテキストへの切り替え後を示している。ファーストブートローダ154は、第1のメモリ空間150にロードされたセカンドブートローダ171を起動する(S102)。
(セカンドブートローダ171の起動後)
セカンドブートローダ171の起動後は、動作の主体はセカンドブートローダ171に移る。
以下の動作は、セカンドブートローダ171による。セカンドブートローダ171のコンテキスト変更部174は、第1のOS151からCPU110の制御権限を奪うため、割込みを禁止する(S103)。この段階では、セカンドブートローダ171は、第1のOSのコンテキスト上で動作しているので、システムクロックやI/Oデバイスの割込みにより、処理を第1のOS151に横取りされる可能性がある。これを防止するためにセカンドブートローダ171のコンテキスト変更部174が、割り込みを禁止する。次に、第1のOS151とは独立したセカンドブートローダ171用のコンテキストでセカンドブートローダ171が動作するように、セカンドブートローダ171のコンテキスト作成部173は、セカンドブートローダ171用のコンテキストを作成する(S104)。作成するコンテキストの1つとして、セカンドブートローダ171のコンテキスト作成部173は、図2のフェーズ3に示すように、S101でロードしたセカンドブートローダ171のメモリ領域及び第2のOSイメージ211のメモリ領域と第2のメモリ空間160とを含む第3のメモリ空間170を構成するように、第3のページテーブル172を作成する。第3のページテーブル172には、図1に示す第3のメモリ空間と第2のメモリ空間との関係(第3のメモリ空間の一部の領域が第2のメモリ空間となっている)も記載されている。その他に作成すべきコンテキストとして、スタック領域、セグメント領域の設定が挙げられる。セカンドブートローダ171のコンテキスト変更部174は、現在のコンテキスト情報(第1のOSのコンテキスト情報)を保存すると共に、S104で作成されたセカンドブートローダ171用のコンテキストをレジスタ群111に設定することでコンテキストを切り替える(S105)。セカンドブートローダ171のコンテキスト変更部174によるセカンドブートローダ171用コンテキストへの切り替えにより、図2のフェーズ3の状態になる。
以上、これらの手順により、セカンドブートローダ171は、第1のOS151からCPU110の制御権限を奪い、独立したメモリ空間である第3のメモリ空間170で動作する。第1のOSのコンテキストに戻すときは、セカンドブートローダ171のコンテキスト変更部174が、S105で保存した第1のOS用のコンテキストをレジスタ群111に設定することにより、第3のメモリ空間170から第1のメモリ空間150に切り替え、CPU110の制御権限を第1のOS151に戻すことが可能となる。
(フェーズ4)
次に、図2における「フェーズ4」で示す1次記憶装置120の構成が構築される手順を説明する。図2のフェーズ4は、1次記憶装置120における第2のOS起動直後を示している。以下では、図2のフェーズ3からフェーズ4に至る過程を説明する。セカンドブートローダ171のOSロード部175は、S101でファーストブートローダ154のファイルロード部155によりロードされた第2のOSイメージ211を、第3のメモリ空間170から第2のメモリ空間160にロードする(S106)。第2のメモリ空間160は、図2のフェーズ3において、破線で示した領域である。すなわち、図2のフェーズ2に示す「第2のOSイメージ211」は、S101において第1のメモリ空間150にロードされたものである。また、フェーズ3の「第2のOSイメージ211」は、存在領域が第1のメモリ空間150から第3のメモリ空間170へとコンテキストによって切り替えられたのみであり、ロードされたわけではない。セカンドブートローダ171のOSロード部175は、図2のフェーズ3の状態において、第3のメモリ空間170における第2のメモリ空間160の領域に、第2のOSイメージ211をロードする。なお、セカンドブートローダ171は、第2のメモリ空間の構成に使用する第2のメモリ空間構成情報を予め第3のページテーブル172に保有している。セカンドブートローダ171は、図2のフェーズ3の状態における第3のメモリ空間170と、第3のメモリ空間170に含まれる第2のメモリ空間との対応関係も、第2のメモリ空間構成情報として第3のページテーブル172に保有している。セカンドブートローダ171のOSロード部175は、この第2のメモリ空間構成情報に従って、図2のフェーズ3に示すように、第3のメモリ空間170に存在する第2のOSイメージ211を、第2のメモリ空間160にロードする。
セカンドブートローダ171のOS起動部176は、第2のOS161用のコンテキストを作成し、そのコンテキストに切り替え、第2のOS161を起動する(S107)。
図2のフェーズ4の状態が、第2のOS161の起動直後を示している。ここでセカンドブートローダ171のOS起動部176によって作成される第2のOS161用のコンテキストは、S104で作成されたセカンドブートローダ171用のコンテキストと同様に、第2のメモリ空間160を構成するように記述された第2のページテーブル162や、スタック領域、セグメント領域が設定されている。セカンドブートローダ171のOS起動部176は、CPU110のレジスタ群111に、第2のOS用コンテキストの内容を設定する。そして、セカンドブートローダ171のOS起動部176が第2のOSを起動することにより、第2のメモリ空間上で第2のOSは動作することとなる。
以上のように本実施の形態1によれば、第2のOS161をロードする際に、第1のOS151とは独立した第3のメモリ空間170で動作するセカンドブートローダ171によって処理を行うため、第1のOS151上で動作するプログラムから第2のメモリ空間160へのアクセスすることを防止することが可能となり、第2のOS161の改竄に対する安全性を向上することができる。また、ファーストブートローダ154で、第1のOS151の持つ機能であるファイルシステムドライバ153用いてロードしたものを、セカンドブートローダ171で利用することにより、2次記憶装置130の操作やファイルシステムの操作する複雑なドライバを実装する必要がないため、ブートローダの実装が容易になる。
実施の形態2.
図4〜図6を用いて実施の形態2を説明する。以上の実施の形態1では、第2のOS161のロード時に第1のOS151、あるいは、第1のOS151上で動作するプログラムが、第2のメモリ空間160へのアクセスを防止するものであるが、次に第2のOSイメージ211の解析、改竄または複製を防止する実施の形態を示す。
図4は、計算機100として実現される実施の形態2におけるマルチOS起動装置の構成図であり、図1と同一符号のものは省略する。
図4は、図1に対して次の点が異なっている。
(1)2次記憶装置には第2のOSの暗号化イメージ400が格納されている。第2のOSの暗号化イメージ400は、第2のOSイメージ131を、あらかじめソフトウェア作成者が暗号化したものである。
(2)セカンドブートローダ171が、あらたに改竄チェック部410及び複製チェック部412を備え、また、OSロード部175が復号機能を有するOS復号ロード部411となっている。改竄チェック部410は、セカンドブートローダ171の改竄をチェックし(自己改竄チェック機能)、また第2のOS161の改竄をチェックする(第2OS改竄チェック機能)。OS復号ロード部411は、第2のOSの暗号化イメージ400を復号化する。複製チェック部412は、ソフトウェア利用者による不正な第2のOSの複製をチェックする(複製チェック機能)。
次に動作について説明する。図5は実施の形態2における第2のOSの起動手順を示す図である。また、図6は図2に対応する図である。以下、図5、図6を参照して説明する。図5において、図3と同一符号のものは、実施の形態1で説明した処理と同一であるため省略する。
(フェーズ2)
ファーストブートローダ154のファイルロード部155は、第1のOS151が提供する機能であるファイルシステムドライバ153を用いて、2次記憶装置130より第2のOSの暗号化イメージ400とセカンドブートローダ実行ファイル133を第1のメモリ空間150上にロードする(S200)。第2のOSの暗号化イメージ400は、イメージファイルのバイナリ情報をそのまま第1のメモリ空間150にロードしたものであり、暗号化されたままの状態である。
(セカンドブートローダ171の改竄チェック)
次にファーストブートローダ154は、セカンドブートローダ171を起動(S102)する。そして、セカンドブートローダ171のコンテキスト変更部174が割込みを禁止(S103)した後、セカンドブートローダ171の改竄チェック部410が、自身のプログラム(セカンドブートローダ171)が改竄されていないかをチェックする(S201)。
セカンドブートローダ171自身の改竄をチェックする方法の一例として、自身のプログラムのコード情報をハッシュ化したものをソフトウェア作成時に埋め込んでおき、起動後にハッシュを計算し、前記埋め込んでおいた情報と一致しなければ、改竄されていることがチェック可能(自己改竄判定基準の一例)である。改竄されていることが検出されれば、改竄チェック部410は改竄されている旨をファーストブートローダ154にエラー通知し処理を終了する(S210)。
(フェーズ3)
セカンドブートローダ171は、セカンドブートローダ用のコンテキストに切り替えた後(S105、図6のフェーズ3)、セカンドブートローダ171のOS復号ロード部411が、第2のOSの暗号化イメージ510を復号し、第2のメモリ空間160にロードする(S202)。
(フェーズ4)
(1.第2のメモリ空間にロードされた第2のOS161の改竄チェック)
次に、セカンドブートローダ171の改竄チェック部410は、S201で行ったセカンドブートローダ171の改竄チェックと同様に、第2のOS161が改竄されていないかをチェックする(S203)。改竄されているかどうかの判定基準(第2OS改竄判定基準)は、セカンドブートローダ171の改竄チェックの場合と同様の手法を採ることができる。改竄されていることが検出されれば、セカンドブートローダ171の改竄チェック部410は、S105で保存していた第1のOS151のOSのコンテキストに切り替え、改竄されている旨をファーストブートローダ154にエラー通知し、処理を終了する(S210)。
(2.第2のメモリ空間にロードされた第2のOS161の複製チェック)
次に、セカンドブートローダ171の複製チェック部412が、第2のOSが不正に複製されているかをチェックする(S204)。複製をチェックする方法(複製判定基準)の一例として、I/Oデバイス140の固有の情報であるシリアル番号(例えば、ネットワークカードのMACアドレスなど)や、1次記憶装置120、2次記憶装置130の容量や、CPU110の型番などの情報を第2のOSに予め埋め込んでおき、埋め込まれた情報に基づきチェックする。これによって、ソフトウェア作成者が意図した計算機以外での実行を検出することが可能である。以上の複製チェックにより、複製されていることが検出されれば、セカンドブートローダ171の複製チェック部412は、S105で保存した第1のOS151のOSのコンテキストに切り替え、複製されている旨をファーストブートローダ154にエラー通知し処理を終了する(S210)。
本実施の形態2において、第2のOSイメージを暗号化したものとしたが、圧縮された第2のOSイメージであってもよい。その場合、OS復号ロード部501がその圧縮された第2のOSイメージを展開する機能をもち、その他の手段に変更を加えることなく実現可能である。
以上のように本実施の形態2によれば、第2のOSイメージを暗号化した状態で2次記憶装置130や第1のメモリ空間150に置けるため、第1のOS151上で動作する他のプログラムから第2のOS161の内容の解析を防止することが可能となる。また、プログラムのコード情報のハッシュ化したものやI/Oデバイスのシリアル番号を埋め込んでおき、セカンドブートローダ171にてチェックすることにより、プログラムの改竄や複製を検知することが可能となる。
なお、以上の実施の形態1,2ではコンピュータで実行されるマルチOS起動装置を説明したが、以上のマルチOS起動装置は、「マルチOS起動方法」という方法としての把握も可能である。また、以上に説明したマルチOS起動装置を実行するマルチOS起動プログラムとして把握することも可能であり、さらに、このマルチOS起動プログラムを記録したコンピュータ読み取り可能な記録媒体として把握することも可能である。またマルチOS起動装置は、「マルチOS起動方式」として把握することも可能である。
以上の実施の形態では、第1のOS151、ファーストブートローダ154、セカンドブートローダ171等のプログラムの動作を説明したが、これらのプログラムはCPU110により読み出され、CPU110(OS実行部、ローダ実行部)により実行される。
以上の実施の形態1では、次のマルチOS起動装置を説明した。
第1のOSの起動時に、第2のOSが使用する第2のメモリ空間を除いた第1のメモリ空間を用いて、第2のメモリ空間が第1のOSに管理されないように第2のOSを起動するマルチOS起動装置において、以下のファーストブートローダとセカンドブートローダとを備えるマルチOS起動装置。
(a)第1のOSのファイル読込み手順を用いて第1のメモリ空間内に、第2のOSをロードするためのプログラムであるセカンドブートローダと第2のOSイメージをロードするファーストブートローダ。
(b)ファーストブートローダによって起動されるプログラムであるとともに第1のメモリ空間内にあるセカンドブートローダであって、第2のOSイメージがロードされた第1のメモリ空間と、第2のメモリ空間を含む第3のメモリ空間内で動作し、前記ロードされた第2のOSイメージを第2のメモリ空間内にロードし、第2のOSを起動するセカンドブートローダ。
以上の実施の形態2では、
さらに、以下の手段を備えたマルチOS起動装置を説明した。
暗号化された第2のOSイメージを復号化、または、圧縮された第2のOSを展開し、第2のメモリ空間内にロードする手段を備えるセカンドブートローダのOS復号ロード部。
以上の実施の形態2では、
以下の手段(改竄チェック部)を備えたマルチOS起動装置を説明した。
第2のOSイメージが不正に改竄された場合、第2のOSのロードを中止するセカンドブートローダの改竄チェック部。
以上の実施の形態2では、
以下の手段(複製チェック部)を備えたマルチOS起動装置を説明した。
計算機が具備するハードウェアでソフトウェアから確認することができるハードウェア情報(シリアル番号、MACアドレスなど)を、あらかじめ第2のOSイメージに埋め込んでおき、第2のOSをロードする際に前記埋め込んだ情報とハードウェアから得た情報を比較し、一致したときにだけ第2のOSの起動を許可する手段を備えるセカンドブートローダの複製チェック部。
実施の形態1におけるマルチOS起動装置の構成図。 実施の形態1におけるメモリ空間の構成の変遷を示す図。 実施の形態1におけるマルチOS起動装置のフローチャート。 実施の形態2におけるマルチOS起動装置の構成図。 実施の形態2におけるマルチOS起動装置のフローチャート。 実施の形態2におけるメモリ空間の構成の変遷を示す図。
符号の説明
100 計算機、110 CPU、111 レジスタ群、112 PTBR、113 MMU、120 1次記憶装置、130 2次記憶装置、131 第2のOSイメージ、132 ファーストブートローダ実行ファイル、133 セカンドブートローダ実行ファイル、140 I/Oデバイス、150 第1のメモリ空間、151 第1のOS、152 第1のページテーブル、153 ファイルシステムドライバ、154 ファーストブートローダ、155 ファイルロード部、160 第2のメモリ空間、161 第2のOS、162 第2のページテーブル、170 第3のメモリ空間、171 セカンドブートローダ、172 第3のページテーブル、173 コンテキスト作成部、174 コンテキスト変更部、175 OSロード部、176 OS起動部。

Claims (8)

  1. 第1のオペレーティングシステム(Operating System、以下OSという)と第2のOSとの少なくとも2つのOSを起動するマルチOS起動装置において、
    (1)メモリ領域を有し、前記メモリ領域に対してメモリ空間が定義される1次記憶部と、
    (2)セカンドブートローダと、前記第2のOSとを記憶する2次記憶部と、
    (3)CPU(Central Processing Unit )に対する制御情報を示すコンテキストであって前記第1のOS用のコンテキストである第1のコンテキストで動作する前記第1のOSのもとで動作するファーストブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで動作させることにより、前記第1のOSが管理する第1のメモリ空間として前記第1のコンテキストにより前記1次記憶装置に対して定義された前記1次記憶部のメモリ領域に前記2次記憶部から前記セカンドブートローダと前記第2のOSとを前記ファーストブートローダにロードさせるOS実行部と、
    (4)前記第1のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで実行することにより前記第2のOSが管理する第2のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第2のOSがロードされたメモリ領域とを含む第3のメモリ空間を前記1次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第1のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第3のメモリ空間に含まれる前記第2のメモリ空間として定義された前記1次記憶部のメモリ領域に前記ファーストブートローダによって前記1次記憶部のメモリ領域にロードされた前記第2のOSを前記セカンドブートローダにロードさせると共に前記第2のOS用のコンテキストを生成させ、生成された前記第2のOS用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第2のOS用のコンテキストのもとで前記セカンドブートローダに前記第2のOSの起動を実行させるローダ実行部と
    を備えたことを特徴とするマルチOS起動装置。
  2. 前記2次記憶部に記憶された前記第2のOSは、
    暗号化されており、
    前記2次記憶部に記憶されたセカンドブートローダは、
    暗号化された前記第2のOSを復号する機能を有し、
    前記ローダ実行部は、
    前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより、前記ファーストブートローダによって前記1次記憶部のメモリ領域にロードされた暗号化された前記第2のOSを前記セカンドブートローダに復号させ、前記第3のメモリ空間に含まれる前記第2のメモリ空間として定義された前記1次記憶部のメモリ領域に復号された前記第2のOSを前記セカンドブートローダにロードさせることを特徴とする請求項1記載のマルチOS起動装置。
  3. 前記2次記憶部に記憶されたセカンドブートローダは、
    前記セカンドブートローダの改ざんをチェックする機能を有し、
    前記ローダ実行部は、
    前記第1のコンテキストで動作中の前記第1のOSのもとで前記セカンドブートローダを実行することにより、前記セカンドブートローダ自信が改ざんされているかどうかを前記セカンドブートローダに判定させることを特徴とする請求項1記載のマルチOS起動装置。
  4. 前記2次記憶部に記憶されたセカンドブートローダは、
    前記第2のOSの改ざんをチェックする機能を有し、
    前記ローダ実行部は、
    前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより、前記ファーストブートローダによって前記1次記憶部のメモリ領域にロードされた前記第2のOSが改ざんされているかどうかを前記セカンドブートローダに判定させることを特徴とする請求項1記載のマルチOS起動装置。
  5. 前記2次記憶部に記憶されたセカンドブートローダは、
    前記第2のOSが複製かどうかをチェックする機能を有し、
    前記ローダ実行部は、
    前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより、前記ファーストブートローダによって前記1次記憶部のメモリ領域にロードされた前記第2のOSが改ざんされているかどうかを前記セカンドブートローダに判定させることを特徴とする請求項1記載のマルチOS起動装置。
  6. 第1のオペレーティングシステム(Operating System、以下OSという)と第2のOSとの少なくとも2つのOSを起動するコンピュータを、
    (1)メモリ領域を有し、前記メモリ領域に対してメモリ空間が定義される1次記憶部、
    (2)セカンドブートローダと、前記第2のOSとを記憶する2次記憶部、
    (3)CPU(Central Processing Unit )に対する制御情報を示すコンテキストであって前記第1のOS用のコンテキストである第1のコンテキストで動作する前記第1のOSのもとで動作するファーストブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで動作させることにより、前記第1のOSが管理する第1のメモリ空間として前記第1のコンテキストにより前記1次記憶装置に対して定義された前記1次記憶部のメモリ領域に前記2次記憶部から前記セカンドブートローダと前記第2のOSとを前記ファーストブートローダにロードさせるOS実行部、
    (4)前記第1のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで実行することにより前記第2のOSが管理する第2のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第2のOSがロードされたメモリ領域とを含む第3のメモリ空間を前記1次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第1のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第3のメモリ空間に含まれる前記第2のメモリ空間として定義された前記1次記憶部のメモリ領域に前記ファーストブートローダによって前記1次記憶部のメモリ領域にロードされた前記第2のOSを前記セカンドブートローダにロードさせると共に前記第2のOS用のコンテキストを生成させ、生成された前記第2のOS用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第2のOS用のコンテキストのもとで前記セカンドブートローダに前記第2のOSの起動を実行させるローダ実行部、
    として機能させるマルチOS起動プログラム。
  7. 請求項6記載のマルチOS起動プログラムを記録したコンピュータ読み取り可能な記録媒体。
  8. メモリ領域を有すると共に前記メモリ領域に対してメモリ空間が定義される1次記憶部を備えると共に、第1のオペレーティングシステム(Operating System、以下OSという)と第2のOSとの少なくとも2つのOSを起動するマルチOS起動装置が行うマルチOS起動方法において、
    (1)2次記憶部が、セカンドブートローダと、前記第2のOSとを記憶し、
    (2)OS実行部が、CPU(Central Processing Unit )に対する制御情報を示すコンテキストであって前記第1のOS用のコンテキストである第1のコンテキストで動作する前記第1のOSのもとで動作するファーストブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで動作させることにより、前記第1のOSが管理する第1のメモリ空間として前記第1のコンテキストにより前記1次記憶装置に対して定義された前記1次記憶部のメモリ領域に前記2次記憶部から前記セカンドブートローダと前記第2のOSとを前記ファーストブートローダにロードさせ、
    (3)ローダ実行部が、前記第1のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで実行することにより前記第2のOSが管理する第2のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第2のOSがロードされたメモリ領域とを含む第3のメモリ空間を前記1次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第1のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第3のメモリ空間に含まれる前記第2のメモリ空間として定義された前記1次記憶部のメモリ領域に前記ファーストブートローダによって前記1次記憶部のメモリ領域にロードされた前記第2のOSを前記セカンドブートローダにロードさせると共に前記第2のOS用のコンテキストを生成させ、生成された前記第2のOS用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第2のOS用のコンテキストのもとで前記セカンドブートローダに前記第2のOSの起動を実行させることを特徴とするマルチOS起動方法。
JP2010502762A 2008-03-14 2009-02-25 マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法 Expired - Fee Related JP4916576B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010502762A JP4916576B2 (ja) 2008-03-14 2009-02-25 マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008065910 2008-03-14
JP2008065910 2008-03-14
JP2010502762A JP4916576B2 (ja) 2008-03-14 2009-02-25 マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法
PCT/JP2009/053394 WO2009113394A1 (ja) 2008-03-14 2009-02-25 マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法

Publications (2)

Publication Number Publication Date
JPWO2009113394A1 true JPWO2009113394A1 (ja) 2011-07-21
JP4916576B2 JP4916576B2 (ja) 2012-04-11

Family

ID=41065063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010502762A Expired - Fee Related JP4916576B2 (ja) 2008-03-14 2009-02-25 マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法

Country Status (5)

Country Link
US (1) US8484452B2 (ja)
JP (1) JP4916576B2 (ja)
KR (1) KR101288700B1 (ja)
DE (1) DE112009000612A5 (ja)
WO (1) WO2009113394A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003196096A (ja) * 2001-12-07 2003-07-11 Internatl Business Mach Corp <Ibm> コンピュータシステム、その起動制御方法及びプログラム
US8433889B2 (en) * 2010-04-28 2013-04-30 Acer Cloud Technology, Inc. Operating system context switching
US9804857B2 (en) * 2010-12-17 2017-10-31 Intel Corporation Method and apparatus for multi-mode mobile computing devices and peripherals
WO2012104950A1 (ja) * 2011-01-31 2012-08-09 パナソニック株式会社 起動制御装置、情報機器および起動制御方法
CN102135910B (zh) * 2011-03-03 2014-05-14 威盛电子股份有限公司 切换操作系统的方法及使用此方法的电子装置
US20140115308A1 (en) * 2011-05-30 2014-04-24 Beijing Lenovo Software Ltd. Control method, control device and computer system
JP2013101550A (ja) * 2011-11-09 2013-05-23 Junko Suginaka 情報処理空間管理方法、外部デバイス及び情報処理装置
US8615766B2 (en) 2012-05-01 2013-12-24 Concurix Corporation Hybrid operating system
JP5806187B2 (ja) * 2012-09-14 2015-11-10 レノボ・シンガポール・プライベート・リミテッド 秘密情報の交換方法およびコンピュータ
GB2508895A (en) * 2012-12-14 2014-06-18 Ibm Bootloader for booting a computer into a second operating system that is hidden from a first host operating system
JP5756144B2 (ja) * 2013-04-22 2015-07-29 レノボ・シンガポール・プライベート・リミテッド オペレーティング・システムの管理方法、コンピュータ・プログラムおよびコンピュータ
JP5819350B2 (ja) 2013-06-13 2015-11-24 株式会社日立製作所 計算機システム及び起動方法
KR102116096B1 (ko) 2013-12-20 2020-05-27 한화테크윈 주식회사 다중시스템 및 이의 부팅 방법
US9135029B2 (en) * 2014-01-02 2015-09-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Securely reconfiguring a multi-node system to prevent firmware rollback
US9977740B2 (en) 2014-03-07 2018-05-22 Hitachi, Ltd. Nonvolatile storage of host and guest cache data in response to power interruption
CN114692167A (zh) * 2014-04-15 2022-07-01 麦利尔亚洲新加坡私人有限公司 可信根
US9910677B2 (en) * 2014-07-07 2018-03-06 Lenovo (Singapore) Pte. Ltd. Operating environment switching between a primary and a secondary operating system
EP3040896A1 (en) * 2014-12-30 2016-07-06 Gemalto Sa Secure element
DE102015001801A1 (de) * 2015-02-16 2016-08-18 IAD Gesellschaft für Informatik, Automatisierung und Datenverarbeitung mbH Autonom bootendes System mit einer Verschlüsselung des gesamten Datenspeichers und Verfahren hierfür
JP6458146B2 (ja) 2015-07-08 2019-01-23 株式会社日立製作所 計算機及びメモリ領域管理方法
CN105045621B (zh) * 2015-07-14 2018-04-13 河南科技大学 基于链式引导和动态修改分区表的任意多系统的安装方法
KR102400899B1 (ko) 2015-07-15 2022-05-23 엘지전자 주식회사 차량 제어 장치 및 그 방법
DE102016009232A1 (de) * 2016-07-28 2018-02-01 Giesecke+Devrient Mobile Security Gmbh Integriertes Teilnehmeridentitätsmodul mit Core-OS und Anwendungs-OS
US11106781B2 (en) * 2019-02-01 2021-08-31 Dell Products L.P. Secondary OS device unlocking system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11149385A (ja) * 1997-09-12 1999-06-02 Hitachi Ltd マルチos構成方法
JP2001100983A (ja) * 1999-09-28 2001-04-13 Internatl Business Mach Corp <Ibm> コンピュータの制御方法、コンピュータ及び記録媒体
JP2001236237A (ja) * 2000-02-23 2001-08-31 Hitachi Ltd マルチos構成方法
JP2008046887A (ja) * 2006-08-17 2008-02-28 Ntt Docomo Inc Os切替装置及びos切替方法
WO2008141100A2 (en) * 2007-05-11 2008-11-20 Echostar Technologies L.L.C. Apparatus for controlling processor execution in a secure environment

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5771064A (en) * 1995-11-29 1998-06-23 Scientific-Atlanta, Inc. Home communications terminal having an applications module
JP4026667B2 (ja) 1997-09-12 2007-12-26 株式会社日立製作所 マルチos構成方法
US6996828B1 (en) 1997-09-12 2006-02-07 Hitachi, Ltd. Multi-OS configuration method
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US6718482B2 (en) 1997-09-12 2004-04-06 Hitachi, Ltd. Fault monitoring system
JP3659062B2 (ja) 1999-05-21 2005-06-15 株式会社日立製作所 計算機システム
JP2000347883A (ja) 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd 仮想計算機装置
US6963981B1 (en) * 2001-01-29 2005-11-08 Akamai Technologies, Inc. Method and apparatus for remote installation of an operating system over a network connection
JP2003241984A (ja) 2002-02-15 2003-08-29 Fujitsu Ltd 複数osローディング方法および複数osローディングプログラム
JP3863117B2 (ja) 2003-02-27 2006-12-27 株式会社エヌ・ティ・ティ・データ マルチオペレーティングシステム制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにマルチオペレーティングシステム制御装置
JP2004303028A (ja) 2003-03-31 2004-10-28 Ntt Data Corp オペレーティングシステムおよびオペレーティングシステム起動装置
CN1658185A (zh) * 2004-02-18 2005-08-24 国际商业机器公司 相互独立地共存多个操作系统的计算机系统与其切换方法
JP2007004661A (ja) 2005-06-27 2007-01-11 Hitachi Ltd 仮想計算機の制御方法及びプログラム
TWI279724B (en) * 2005-09-07 2007-04-21 Mitac Technology Corp Method for fast activating execution of computer multimedia playing from standby mode
TWI279678B (en) * 2005-09-07 2007-04-21 Mitac Technology Corp Method for fast switching between different operating systems in computer device with multiple operating systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11149385A (ja) * 1997-09-12 1999-06-02 Hitachi Ltd マルチos構成方法
JP2001100983A (ja) * 1999-09-28 2001-04-13 Internatl Business Mach Corp <Ibm> コンピュータの制御方法、コンピュータ及び記録媒体
JP2001236237A (ja) * 2000-02-23 2001-08-31 Hitachi Ltd マルチos構成方法
JP2008046887A (ja) * 2006-08-17 2008-02-28 Ntt Docomo Inc Os切替装置及びos切替方法
WO2008141100A2 (en) * 2007-05-11 2008-11-20 Echostar Technologies L.L.C. Apparatus for controlling processor execution in a secure environment

Also Published As

Publication number Publication date
WO2009113394A1 (ja) 2009-09-17
DE112009000612A5 (de) 2012-08-02
DE112009000612T5 (de) 2011-03-10
JP4916576B2 (ja) 2012-04-11
US20110022832A1 (en) 2011-01-27
US8484452B2 (en) 2013-07-09
KR20100122924A (ko) 2010-11-23
KR101288700B1 (ko) 2013-08-23

Similar Documents

Publication Publication Date Title
JP4916576B2 (ja) マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法
JP3539907B2 (ja) ブート可能プログラムを備えたコンピュータ
US10032029B2 (en) Verifying integrity of backup file in a multiple operating system environment
JP5821034B2 (ja) 情報処理装置、仮想マシン生成方法及びアプリ配信システム
KR101232558B1 (ko) 컴퓨터 구현 방법 및 시스템
US6996706B1 (en) Booting an operating system or running other pre-boot code from a file stored under a different operating system
US10990690B2 (en) Disk encryption
US9703635B2 (en) Method, computer program, and computer for restoring set of variables
JP5740573B2 (ja) 情報処理装置および情報処理方法
US20080091874A1 (en) System and method for loading programs from hdd independent of operating system
US20140351935A1 (en) Method, apparatus and virtual machine for detecting malicious program
CN103718165A (zh) Bios闪存攻击保护和通知
JP2022545012A (ja) メモリー・アパーチャのフラッシュ・オーダーを使用したデーター保存
WO2013030967A1 (ja) バックアップ方法、およびバックアッププログラム
CN101236499A (zh) 一种借助USB设备启动在Windows操作系统中嵌入内核驱动程序的方法
JP5716824B2 (ja) マルチコアプロセッサシステム
CN112219202A (zh) 用于客户操作系统的存储器分配
WO2007022687A1 (fr) Système et procédé de contrôle de sécurité de système d’exploitation
CN101236498B (zh) 一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法
CN105653352B (zh) 操作系统虚拟仿真取证的方法
JP6462540B2 (ja) ドライバ装置、情報処理システム、プログラムおよび方法
JP5920509B2 (ja) コントローラの制御プログラム、およびコントローラの制御方法
WO2021161418A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2018036695A (ja) 情報処理監視装置、情報処理監視方法、監視プログラム、記録媒体及び情報処理装置
EP3408779B1 (en) Disk encryption

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111227

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120124

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150203

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4916576

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees