[0001]【産業上の利用分野】本発明は、マイクロ・カーネルを使用してデータ処理システムを初期化する方法とシステムに関する。[0002]【従来の技術】オペレーティング・システムは、データ処理システムのオープンシステム標準において、優劣を競う分野になっている。国内・海外を問わず業界におけるこの分野の競争の結果、1つの統合的なオペレーティング・システムが複数のオペレーティング・システムをサポートすることが望ましいとされるようになった。operatingシステム環境のユニークな特徴を定義する部分とを分離して、「純粋なカーネル」を作る方法がある。kernel)と呼ばれることが多い。design,1つのデータ処理システムの上で複数のオペレーティング・システムを動かすことが可能になる。同一のデータ処理システム上で、複数のオペレーティング・システムをネイティブモードで同時に動かすことが可能になる。mode.【0004】しかし、純粋なカーネルを作成するのに複雑な問題は、既にあるオペレーティング・システムに依存せず、かつ、純粋なカーネルが異種のオペレーティング・システム環境をサポートするようにすることである。Microカーネル)をブートストラップするためにユーザ・レベルでデバイス・ドライバを使用でき、かつ、その上に少なくとも1つのオペレーティング・システムを作動させなければならない。it.【0005】現在、この問題の解決は、OSカーネルとそのオペレーティング・システムで実行されるプログラムとを結びつけるか、あるいは、システムが、ブートのすぐ後でロードされるオペレーティング・システム環境を持ち、ブートストラップをしている間に使用できるファイル・システムを持っていると仮定することで対処している。デバイス・ドライバとブートストラップ中あるいはその後でロードされるタスクとが分離されている環境では、この解決策は動かない。[0006]【発明が解決しようとする課題】したがって、ハードウェアで定義したROMブートの終了から、最初のオペレーティング・システム環境の標準的な初期化の実行までの連続的な手順の全てに対処できるブートストラップのアーキテクチャが求められる。[0007]【課題を解決するための手段】本発明は、マイクロ・カーネルを使用してデータ処理システムを初期化する方法とシステムを提供することを目的とする。micro-kernel.【0008】本発明は、オペレーティング・システム環境と、OSカーネルと、カーネルから分離されている複数のデバイス・ドライバ・プログラムを持っているデータ処理システムに関するものである。このシステムでは、カーネルはデバイス・ドライバ機能を持たず、デバイス・ドライバはユーザ・レベルのタスク即ちプログラムである。programmed.【0009】記憶装置にブート・ボリュームが用意され、ブート・ボリュームはファイル・アンカーと、複数のファイルヘッダと、複数のブロック・リスト・エレメントを持っている。ファイル・アンカーはブート・ボリュームに関連するファイルを探すための始まりのポイントを示し、ファイル・ヘッダーはアンカーに関連し、それぞれがブート・ボリュームに関連しているファイルの識別を持ち、ブロック・リスト・エレメントはそれぞれ記憶装置の中の1つの連続したデータのブロックを識別し、ファイルを構成するデータ構造が、少なくとも1つのブロック・リスト・エレメントを使用して識別されアクセスされる。ブートストラップ・タスクにより、データ記憶装置からメモリに、ブート・ボリュームを使用してファイルがロードされ、ファイルがアクセスできるようになり、オペレーティング・システム環境が初期化される。[0010]【実施例】図1に、本発明が実施できるデータ処理システムを示す。コンピュータ50が、システム・ユニット52、ディスプレイ装置54、キーボード56、およびマウス58を備えている。SYSTEM/6000等あるいは同等の、本発明の実施に適したシステムである。invention.【0011】図2に、本発明が実施できるコンピュータ50の主要な構成要素を示す。componentsを持つことが望ましい。bus)に接続され、また、数値計算用のコプロセサ64を持ってもよい。(DMA)コントローラ66がシステムバス60に接続され、これにより、大量の入出力データ転送中に、各種のデバイスがマイクロプロセサ62からのサイクル割り当てが可能になる。60に接続されている。ROM68はパワー・オンの際のセルフテストを含んでいる。RAM72がシステムバス60につながり、システム構成情報を持つことも可能である。information.【0013】また、システムバス60にはメモリ・コントローラ74、バス・コントローラ76、インタラプト・コントローラ78が接続されていて、各種の周辺装置、アダプタおよびデバイス間のデータの流れをシステムバス60を介して制御する。86,ディスケット・コントローラ88を持っている。キーボード/マウス・コントローラ80は、キーボード90とマウス92のためのハードウェア・インターフェースである。ビデオ・コントローラ82は、ディスプレイ装置94のハードウェア・インターフェースである。並列コントローラ84は、印刷装置96のような装置のハードウェア・インターフェースである。86は、モデム98のような装置のハードウェア・インターフェースである。88は、フロッピーディスク・ユニット100のハードウェア・インターフェースである。空きスロット106を使って、システム52に他の周辺装置やアダプタをつけ加えることもできる。52.【0014】図2に示したハードウェアは、具体的な用途によって変わり得る。述べたハードウェアに加えまたはその代わりに、光ディスク媒体、音声アダプタ、PALやEPRMのようなプログラム用のチップ等の周辺デバイスを用いることもできる。EPRM.【0015】図3に、本発明を用いてデータ処理システムをブートする方法のフローチャートを示す。boot·ボリューム、ブートストラップ・タスク、OSカーネル、マスター・サーバ等の要素は図4から図11で詳しく述べる。プロセスはブロック500で始まりブロック502に進む。ブロック502はパワーオン・セルフテストを行うROMの機能である。ブロック504はブート・ローダをロードするROMの機能を示す。506はOSカーネルをロードするブート・ローダを示す。kernel.ブロック508はブートストラップ・タスクをロードするブート・ローダを示す。OSカーネルにコントロールを渡す。OSカーネルがブートストラップ・タスクを呼び出す。ブロック513でネーム・サービスがロードされる。ブロック514で、ブートストラップ・タスクがデフォルト・ペイジャーをロードする。次のブロック516で、ブートストラップ・タスクがマスター・サーバをロードする。プロセスは次に、マスター・サーバが実行を始めるブロック518に進む。masterサーバがファイル・サーバをロードする。次に、ブロック522で、ファイル・サーバがファイルシステムの整合性を確かめる。次にプロセスは、ハードウェア資源マネジャをロードするブロック524に進む。ハードウェア資源マネジャのデバイス・ドライバをロードするブロック526に進む。manager.【0017】次にプロセスは、ブロック530で、ブート用デバイスのコントロールを、ブートストラップ・タスクから、ブロック526でロードされたデバイス・ドライバに渡す。その後、プロセスは、OS環境をロードして初期化するブロック532に進む。プロセスはこの後ブロック534で終了する。this.【0018】ブート・プロセスでは、データ処理システムのオペレーティング・システムを起動するために、いくつかの異なるブート要素が使用される。page,スペース、マスター・サーバ、ファイルシステム・サーバ、ハードウェア資源マネジャ、および、ブート・デバイスドライバのOS環境がある。ブート・ボリュームは、ブート・プロセスでどのファイルやプログラムをロードすべきかを示す記述を持っている。ブート・ボリュームはディスク上の一連の逐次的セクターからなっている。本発明では、ブート・ボリュームはロードすべきファイルの記述だけを持ち、ファイルそのものは持たない。ブート・ボリュームにファイルを持たないことにより、ファイル内容を持った場合にくらべて、ブート・ボリュームを小さくできる。ブート・ボリュームの内容を、標準的なユーティリティー・プログラムをどれか1つのOS環境で実行して容易に変更できる。volume,いまの内容よりも大きなスペースが要る場合に、ブート・ボリュームに十分なスペースを割り当てることができる。volume.【0019】今日、多くのファイル・システムはログを持っていて、システム故障の際のデータの損失を防ぐようにしている。故障したファイルシステムのデータはアクセスできないようにし、ユーティリティー・プログラムがログを適用しファイルシステムを初期化し、データ構造を直してからファイルシステムが使えるようにしている。ブート・ボリュームは、ファイルシステムと修正ユーティリティー・プログラムを実行するのに十分なもう1組のデータ構造を持ち、これにより、ファイルシステム動作回復を可能にしている。recovery.【0020】あるシステムでは、ブート・ボリュームが、ブート・ボリュームに記述されている全てのファイルを持っている場合もあろう。どのように具体化するかは、ブートするときにハードウェアがどのように作動するかに依存している。RS/6000では、ハードウェアの構成が完了するまで入出力動作は行われない。performed.【0021】ブート・ボリュームで記述されているファイルをブート・ボリュームが持っていないシステムでは、本発明を使用すれば、通常の動作でこれらのファイルを読むユーティリティー・プログラムやOS環境プログラムが、故障して正しくない可能性のあるファイルでなく正しいファイルを読むことができる。file.【0022】図4に、本発明によるブート・ボリュームの構造のダイアグラムを示す。298には通常レコードと呼ばれるデータ構造、即ち、ブート・ボリューム・ファイル・アンカー300、ファイルヘッダ302、および、ブロック・リスト・エレメント306がある。実際のファイルはファイルシステムに記憶され、ブート・ボリュームの設計とレイアウトはファイルシステムに依存しない形で作られる。bootボリューム内容は全て同時に作成され、個々のデータ構造はリンクされたリストとしてよりも、アレイとして記憶される。ブート・ボリュームにある全てのオフセットは、ブート・ボリュームの始めからの相対的なバイトオフセットである。endian)として記憶される。fileアンカー300のダイアグラムを示す。ブート・ボリューム・ファイル・アンカー300は、ブート・ボリューム298の内容を総合したアンカーとしてのレコードである。アンカーは、ブート・ボリューム298で記述されたファイルを探すためのスタートポイントの役をする。アンカー300にはレコードのタイプを記述するフィールド310があり、フィールド310はこのレコードをブート・ボリューム・ファイル・アンカーとして識別する。フィールド312は、ブート・ボリューム・ファイル・アンカー300が占めるバイト数を表す。fileアンカーの現在のバージョン番号を示す。300のフィールドの構造や意味の変更を表す。field.【0025】フィールド316は、ブート・ボリュームが占めるバイト数を表す。バイト数はブート・ボリューム・ファイル・アンカーを含む。フィールド318はブート・ボリュームの現在のバージョン番号を示し、ブート・ボリュームのフィールドの構造や意味の変更を表す。フィールド320は、ブート・ボリューム・ファイル・アンカーに含まれているファイルヘッダの数を表す。フィールド322はそれぞれブート・ボリュームが参照している個々のファイルを記述している。フィールド322については後で詳しく述べる。322.【0026】図6に、ファイルヘッダ322のダイアグラムを示す。ファイルヘッダは、ブート・ボリュームで使われるデータ構造で、データ処理システムに実際のファイルシステムがロードされる前に、ブート・プロセス中に参照されるそれぞれのファイルを記述している。ファイルヘッダ322にフィールド330があり、このレコードがファイルヘッダ322であると識別するフォーマットを示す。フィールド332は、ファイルヘッダが占めるバイト数を示すフィールドである。fieldエレメントの最後までを含む。element.【0027】フィールド334は、ファイルヘッダのバージョン、即ち、ファイルヘッダ構造の現在のバージョン番号を示し、ファイルヘッダ322のフィールドの構造や意味の変更を表す。フィールド336は、ファイルが占める全バイト数、即ちファイルの大きさを示す。(null)で終わるストリングである。338には、実際のユーザのファイルシステムの中のファイルの名前が入る。256キャラクタである。フィールド340は、ファイルヘッダ322で記述されたファイルのタイプを表す。以下のファイルタイプがフィールド340に記述される。340.【0028】(1)OSカーネル。ファイルがOSカーネルであることを示すフラッグ。attribute,OSカーネルの名前に永久に符号化しないようにする。kernel.【0029】(2)ブートストラップ・タスク。ファイルがブートストラップ・タスクであることを示すフラッグ。これにより、ブート・ローダ・プログラムはこの属性を持ったファイルを探し、ブートストラップ・タスクの名前に永久に符号化しないようにする。task.【0030】(3)ネームサービス。ファイルがネームサーバであることを示すフラッグ。attribute,ネームサービス・プログラムの名前に永久に符号化しないようにする。program.【0031】(4)ペイジャー。-ペイジャー(即ち、まだ誰のものでもないメモリへのペイジャー)であることを示すフラッグ。これにより、ブートストラップ・タスクはこの属性を持ったファイルを探し、ペイジャー・プログラムの名前に永久に符号化しないようにする。program.【0032】(5)ペイジング・ファイル。ファイルがペイジング用のデフォルト・ペイジャーによって使われることを示すフラッグ。bootstrapタスクはこの属性を持ったファイルを探し、ペイジング・ファイルの名前に永久に符号化しないようにする。file.【0033】(6)マスター・サーバ。ファイルがマスター・サーバであることを示すフラッグ。マスター・サーバは他のサーバをロードするプログラムである。このフラッグにより、ブートストラップ・タスクはこの属性を持ったファイルを探し、マスター・サーバの名前に永久に符号化しないようにする。server.【0034】(7)マスター・サーバ構成ファイル。このファイルが、ブート・プロセスの1部として立ち上げるために、マスター・サーバが、システムと他のサーバを構成するのに必要な構成情報を持っていることを示すフラッグ。これにより、ブートストラップ・タスクはファイルを探し、そのファイルを、マスター・サーバが実行を始めるときにマスター・サーバに渡す。execution.【0035】(8)実行可能ファイル。ファイルが一般的な実行可能ファイルであることを示すフラッグ。マスター・サーバはこのフラッグを使って、ファイルがロードされるべきサーバかどうかを判断する。loaded.【0036】(9)データファイル。ファイルが実行可能でないデータを持っていることを示すフラッグ。executable.【0037】フィールド342は次のファイルヘッダへのオフセットであり、ブート・ボリュームの中にある次のファイルヘッダのブート・ボリュームの始めからのオフセットを示す。このファイルヘッダがブート・ボリュームの中で最後のものである場合は、このフィールドは、本発明の具体化では、ゼロを持つ。344は、ファイルを表すのに必要なブロック・リスト・エレメントの数を示す。blockリスト・エレメントを示し、ディスク上で物理的に連続しているブロックの数を記述する。これについては、後で詳しく述べる。346,ハード・ディスク・ドライブの上の、物理的に連続したブロックの一群を記述するデータ構造である。ブロック・リスト・エレメント346にはフィールド348があり、レコードのタイプ即ちレコードのフォーマットを示す。フィールド348は、このレコードがブロック・リスト・エレメント346の中の1つのブロック・リスト・エレメントであると識別する。350,ブロック・リスト・エレメント346が占めているバイト数を表す。バイト数は最初のフィールドから数えられる。listエレメント346のフィールドの構造と意味の変更を表す。フィールド354は、ディスクドライブ上の1つのブロックが持っているバイト数、即ちブロックの大きさを表す。block.【0039】デバイス識別符号(以下ID)はフィールド356で示される。このフィールドは、デバイスが載っているデバイスを示し、ナルで終わる一連のストリングで表される。フィールド358は、ブロック・リスト・エレメント346が表すデバイス上での物理的に連続しているブロックの数を示す。フィールド360はオフセット・ポインターの大きさを示す。このフィールドは、デバイスフィールドの始めからのオフセットに含まれているビット数を表す。本発明の具体化では、オフセットの記憶に使われるバイト数はいつも4の倍数であるが、オフセットフィールドの全てのビットが意味を持つわけではない。フィールド362はデバイスの始めからのオフセットを示す。このフィールドは、このレコードで記述されている最初のブロックのデバイスの始めからのバイトオフセットを持っている。このフィールドの大きさはフィールド358で定義される。358.【0040】ブート・ローダは、例えばROMのようなハードウェアあるいはシステムで定めた仕組みによってロードされるプログラムである。ブート・ローダはブート・ボリュームのフォーマットを解釈し、システム・メモリにOSカーネルとブートストラップ・タスクをロードする任務を持つ。ブート・ローダはOSカーネルの実行をスタートさせる。kernel,OSカーネルに以下に述べる情報を渡す。kernel.【0041】図8に、OSカーネルに情報を渡す方法のフローチャートを示す。プロセスはブロック400で始まり、ブロック402に進み、OSカーネルにメモリマップ情報を渡す。メモリマップ情報は、OSカーネルに対して、メモリの物理的なレイアウトを記述するものである。メモリ全部が物理的に連続していないならば、メモリマップは異なるいくつかのメモリ領域で表される。areas.メモリマップは、OSカーネルにとって必要な、領域の属性情報を持つ。area.【0042】プロセスはブロック404に進み、メモリの中のブートストラップ・タスクの位置(物理的なアドレス)と大きさがOSカーネルに渡される。beginsタスクへのオフセットを含むこともある。ブートストラップ・タスクがいくつかの領域(即ちテキストとデータ)に分割されている場合には、それぞれの領域を記述する情報もOSカーネルの送られる。次にプロセスはブロック406に進み、ブート・デバイスのデバイスIDがOSカーネルに渡される。ブート・デバイスのデバイスIDは、ブート・ローダがOSカーネルとブートストラップ・タスクをロードしたブート・ボリュームが入っているデバイスを指す。この情報がOSカーネルに提供されるのは、さらにこの情報をブートストラップ・タスクに渡すためである。408,OSカーネルに、ブート・ボリュームのブート・デバイスのオフセットが渡される。オフセットは、ブート・デバイス上のブート・ボリュームの位置を教えるものである。この情報により、ブート・デバイスの正確なレイアウトがわからなくても、ブート・デバイス上の複数のブート・ボリュームおよびブート・プロセスの他の構成要素が実行できるようになる。この情報も、OSカーネルに渡され、さらにブートストラップ・タスクに渡される。プロセスはブロック410で終了する。410.【0044】情報は、公知の方法により、メモリの中のいろいろなプログラムの間で渡される。パラメータをスタックすること、即ち、メモリの中の情報を指すポインターを、その情報が行くべきプログラムに渡すことによって行える。go.【0045】本発明の具体化により、情報は、OSカーネルに、ニューライン・キャラクター(即ち\n)で分離された連続したキャラクターのアレイとして提供できる。アレイ全体はナルキャラクターで終わる。アレイのフォーマットは以下のようになる。変数(variables)の値には以下のタイプがある。OSカーネルに渡される実際のパラメータを以下に示す。これはシステムのメモリマップを記述している。複数の領域があり得るのは、多くのシステムの場合、メモリがある物理的なアドレスには「空き」があるからである。"free".システムに存在するメモリを十分に記述するのに必要な領域が記述される。値は整数で与えられる。計算の基になる数は十進法である。値を"0x"で始めれば、値はヘクサデシマルとみなされる。これはOSカーネルに与えられた領域の数を表しブートストラップ・タスクを記述するものである。これはブートストラップ・タスクのアドレス・スペースの個々の領域を表し、値は以下の意味を持つ。meanings.【0051】x...yはメモリの物理的領域を記述する。​​memory.値は整数である。計算の基は十進法である。値を"0x"で始めれば、ヘクサデシマルとみなされる。Hekusadeshimaru.【0052】vsは領域のバーチュアル・スタート・アドレスである。ブートストラップ・タスクのアドレス・スペースの中の、領域の始まりを示すアドレスである。値は整数で十進法である。"0x"で始まれば、ヘクサデシマルとみなされる。Hekusadeshimaru.【0053】"..."は領域に適用されるべきプロテクション・フラッグで、一連のストリングで表される。"I"の字で分離されている。シンボリック・ネームは以下のものがある。読み取りアクセスができる。書き込みアクセスができる。実行アクセスができる。これはOSカーネルがブートストラップ・タスクの実行を始めたときにセットされる実行状態を示す。これによって表されるパラメータは、正しい実行状態を確立するための、使用するプロセサに依存した情報である。これにより、OSカーネルの初期化中に、あるカーネルデータを変更することができる。デバッグのあるオプションを選択してオンにできる。below.【0056】x..yは変更したいカーネルのバーチュアル・アドレスの範囲を表す。範囲はバイトで表すので、範囲としては複数のバイト値で指定しなければならない。values.範囲が何を表しているかは、値(以下に示す)のタイプによって解釈される。below).【0057】valueはカーネルの複数のアドレスの範囲の中に置かれる値を表す。値は1つの値に限らず、全ての値が同じタイプであればリストにしてよい。これは、ブート・ボリュームが載っているデバイスを表し、デバイスの名前を含んだ一連のストリングである。これは、ブート・デバイスの始まりからのブート・ボリュームの位置を表す。値は整数で十進法である。"0x"で始まれば、ヘキサデシマルとみなされる。hexadecimal.【0060】本発明では、ブートストラップ・タスクは以下の3つの主たる機能を持つ。Masterサーバも含めて、最初のいくつかのタスクをシステムにロードすること、(2)正式のシステム・レベルの機能がロードされるまで、暫定的なデバイス・ドライバ・セットの役をすること、(3)ブート・ボリュームのファイル・システム・サーバとして機能し、ブート・ボリュームにアクセスする必要のある他のタスクがブート・ボリューム自体の内容を解釈しなくてもすむようにすること。that.【0061】情報はOSカーネルからブートストラップ・タスクに渡される。これは2つの方法により行われる。第1の方法は、情報をパラメータ(ブートストラップ・タスクが始まるときにスタックされている)として渡すことである。第2の方法は、情報をOSカーネルのブート・パラメータ・リストに載せ、ブートストラップ・タスクが取り出せるようにすることである。task.【0062】図9のフローチャートに、OSカーネルからブートストラップ・タスクに情報を渡す方法を示す。task.プロセスはブロック420で始まり、ブロック422に進み、ブート・デバイスのデバイスIDがパラメータとしてブートストラップ・タスクに渡される。strap-loadedタスクの入っているデバイスを識別するものである。task.【0063】プロセスはブロック424に進み、ブート・デバイス上のブート・ボリュームがブートストラップ・タスクに渡される。ブート・ボリュームのオフセットは、ブート・デバイス上のブート・ボリュームの位置を示す。これにより、ブートストラップ・タスクはブート・ボリュームのフォーマット情報だけを持てばよく、ブート・デバイスの内容全体の情報を持たなくてすむ。プロセスはブロック426で終了する。bootstrapタスクは、他に3つのプログラムをロードする。432,システム・ネーム・サービスがロードされる。ブロック434で、デフォルト・ペイジャーがメモリにロードされる。ブロック436でマスター・サーバがメモリにロードされる。プロセスはブロック438で終了する。438.【0065】システム・ネーム・サービス・プログラムは、ブートストラップ・タスクによってメモリにロードされる最初のプログラムである。ネーム・サービスが最初にロードされるのは、本発明により、ネーム・サービスと他のサーバとの接続をするためであり、ネーム・サービスをできるだけ早く起動させることにより、他のサーバがネーム・サービスを使えるようになる。これにより、暫定的なネーム・サービスが必要なくなる。service.【0066】通常、デフォルト・ペイジャーはブート手順の早い段階でロードされ、メモリが十分とれるようにする。デフォルト・ペイジャーがあることにより、ブートストラップ・タスクによりデフォルト・ペイジャーに渡された最初のペイジング・スペースに記述されたブート・デバイス上の領域にペイジングが行えるようになる。その結果、比較的少ないメインメモリを持ったデータ処理システムでオペレーティング・システムが立ち上げられる。次にマスター・サーバがメモリにロードされ、これにより、ブートストラップ・タスクのローディング機能が不要になる。マスター・サーバは、それがブートストラップ・タスクによりロードされた後は、システム全体の動作を見る役をする。device,ペイジングやプログラムのローディングを行う。この時点で、ブートストラップ・タスクはマスター・サーバに対して、ユーザとの連絡の手段になるコンソールの役をする。started,ブートストラップ・タスクは持っている資源を全て放して終了する。server,ブートストラップ・タスクのある操作を実行するよう要求できるようになっている。operation.【0068】以上の結果、本発明により、ブート・ボリュームを使用した単純なファイル・システムが提供でき、ブートストラップ・タスクが、ブート・ボリュームに含まれているファイルにアクセスできるようになる。volume.さらに、ブートストラップ・タスクがプログラム・ローダを提供するので、最初に必要ないくつかのプログラムがロードできる。program,起動されたネーム・サービスにアクセスできるようになる。ブートストラップ・タスクが1組の簡単なデバイス・ドライバを提供するので、他のサーバが、ブート・ボリュームで記述されたブート・デバイス上にデータを読み/書きできるようになる。ブートストラップ・タスクは、ブート・プロセス中にサーバとオペレータないしユーザが連絡できるようにするための簡単なデバイス・ドライバを提供している。bootボリュームの内容にアクセスできるように1組のファイルシステム・インターフェースを提供している。この結果、データ処理システムの実際のファイルシステムがロードされ起動されるまで、ブートストラップ・タスクはブート・ボリュームのファイルシステムの役をする。system.【0069】図11にデータ処理システムをブートするのに使われる主要な要素をブロックダイアグラムにして示す。メモリ600は、OSカーネル602、ブートストラップ・タスク604、マスター・サーバ606、および、ハードディスク・デバイス・ドライバ608を持っている。OSカーネル602とブートストラップ・タスク604は、ブート・プロセス中にブート・ローダによりロードされる。ブートストラップ・タスクはブート・プロセスの一環としてマスター・サーバ606をロードする。最初、ブート・ボリュームからの情報を使って、ファイルがハードディスク・ドライブ610からブートストラップ・タスクによりロードされる。OSカーネル602にメッセージを送ることにより、アクセスすることができる。この段階、即ち、十分なシステム機能がメモリ600にロードされるまで、OSカーネルはメッセージをブートストラップ・タスク604にまわす。deviceドライバ608をメモリ600にローディングすることにより、マスター・サーバ606は、ブートストラップ・タスク604とブート・ボリュームを必要とすることなく、ハードディスク・ドライブ610にアクセスできる。その時点で、ブートストラップ・タスク604は終了し、ハードディスク・ドライブ610のファイルをアクセスする要求は、OSカーネル602によりハードディスク・デバイス・ドライバ608にまわされる。deviceドライバ(図示せず)にまわされる。shown).【0071】上記の具体化はハードディスクを使用したが、本発明は、データ処理システムをブート即ち初期化するのに使用できる他の媒体を使って具体化することもできる。system.【0072】上記の具体化は、1台のコンピュータ上での具体化として説明したが、本発明はネットワーク、分散処理、あるいは、マルチプロセサ・データ処理システムでも実施することができる。本発明の具体化は、ユーザ・レベルのデバイス・ドライバを持ち、Machの派生物のマイクロ・カーネルを使用するデータ処理システムで実施できるものである。September,1989)に記載されている。[0073]【発明の効果】上述したブート・ストラップのアーキテクチャにより、本発明は、ROMブートの終了から始まり、オペレーティング・システム環境の初期化の実行までの連続的な手段を提供することができる。DRAWINGS【図1】本発明が実施できるデータ処理システムを示す。implemented.【図2】図1に示したデータ処理システムの、本発明を具体化するための主たる構成要素を示す。invention.【図3】本発明による、データ処理システムをブートする方法を示すフローチャート。system.【図4】本発明のブート・ボリュームの構造を示すダイアグラム。invention.【図5】本発明のブート・ボリューム・ファイル・アンカーを示すダイアグラム。invention.【図6】本発明のファイルヘッダを示すダイアグラム。invention.【図7】本発明によるブロック・リスト・エレメントを示すダイアグラム。invention.【図8】本発明によるOSカーネルに情報を送る方法のフローチャート。FIG.【図9】本発明による、OSカーネルからブート・ストラップ・タスクに情報を渡す方法のフローチャート。task.【図10】本発明の、ブート・ストラップ・タスクによりプログラムをロードする方法のフローチャート。task.【図11】本発明により、データ処理システムをブートするのに使用する主要構成要素を示すブロック図。具備するデータ処理システム。memoryタスクをロードし、さらに、該ブート・ストラップ・タスクから上記カーネルへデータを送信する手段を含むことを特徴とする請求項1に記載のデータ処理システム。kernel.【請求項3】マスター・サーバをロードする前に、初期化タスクを上記ブート・ストラップ・タスクがロードすることを特徴とする請求項2に記載のデータ処理システム。load.【請求項4】正式なシステム・レベルの機能がメモリにロードされるまで、上記ブート・ストラップ・タスクが基本的なデバイス・ドライバーとして作動することを特徴とする請求項3に記載のデータ処理システム。具備するオペレーティング・システムの稼働を初期化するための方法。