JP2011129152A - ネットワークブート方法、ネットワークブートシステムおよびネットワークブートプログラム - Google Patents
ネットワークブート方法、ネットワークブートシステムおよびネットワークブートプログラム Download PDFInfo
- Publication number
- JP2011129152A JP2011129152A JP2011037842A JP2011037842A JP2011129152A JP 2011129152 A JP2011129152 A JP 2011129152A JP 2011037842 A JP2011037842 A JP 2011037842A JP 2011037842 A JP2011037842 A JP 2011037842A JP 2011129152 A JP2011129152 A JP 2011129152A
- Authority
- JP
- Japan
- Prior art keywords
- module
- boot
- computer
- network
- client
- 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.)
- Withdrawn
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】ハードウェア構成の異なる複数のコンピュータがブートするためのOSのデータ量を少なくして、OSを格納する記憶領域を節約し、簡易にOSを管理する。
【解決手段】ネットワークブートシステム10は、複数のOSを、中間コード形式のOSバイナリとクライアント30で実行可能な形式であるドライババイナリに分けて格納する。クライアント30から受信したブートリクエストに基づいて、クライアント30のハードウェア構成を調査するエージェントプログラムを決定し、クライアント30に送信してハードウェア構成を受信し、対応するOSバイナリをコンパイルしてブート先のクライアント30で実行可能な形式に変換し、対応するドライババイナリと組み合わせてOSを作成する。クライアント30にブート指示を送信して、このOSをブートさせる。
【選択図】図1
【解決手段】ネットワークブートシステム10は、複数のOSを、中間コード形式のOSバイナリとクライアント30で実行可能な形式であるドライババイナリに分けて格納する。クライアント30から受信したブートリクエストに基づいて、クライアント30のハードウェア構成を調査するエージェントプログラムを決定し、クライアント30に送信してハードウェア構成を受信し、対応するOSバイナリをコンパイルしてブート先のクライアント30で実行可能な形式に変換し、対応するドライババイナリと組み合わせてOSを作成する。クライアント30にブート指示を送信して、このOSをブートさせる。
【選択図】図1
Description
本発明は、ネットワークブート方法、ネットワークブートシステムおよびネットワークブートプログラムに係り、特に、クライアントがネットワークを経由してブートするためのオペレーティングシステム(OS(Operating System))を管理するものに関する。
従来のネットワークブートシステムとしては、ネットワークに接続されるコンピュータごとに、ブートさせるためのプラットフォームを提供する技術が知られている(例えば、特許文献1参照)。
前記特許文献1に記載の技術では、コンピュータの種類が増えるに従って管理するOSも増えてしまうため、管理するデータ量が増えて記憶領域を圧迫し、管理が煩雑になるという不具合があった。
そのため、本発明は、複数のコンピュータがブートするためのOSを少なくして、OSを格納する記憶領域を節約し、簡易にOSを管理することを課題とする。
前記課題を解決し、本発明の目的を達成するために、以下のように構成した。
すなわち、本発明のネットワークブート方法は、ネットワークを経由してオペレーティングシステムをコンピュータにブートさせるネットワークブートシステムのネットワークブート方法であって、前記ネットワークブートシステムは、複数の前記オペレーティングシステムを、中間コード形式の第1のモジュール、および、前記コンピュータで実行可能な形式である第2のモジュールに分けて格納している記憶手段を備え、前記コンピュータから受信したブートリクエストに基づいて、前記コンピュータのハードウェア構成を調査するエージェントプログラムを決定するステップと、前記エージェントプログラムを前記コンピュータに送信するステップと、前記エージェントプログラムから、前記コンピュータのハードウェア構成を受信するステップと、前記記憶手段から、前記コンピュータのハードウェア構成に対応する前記第1のモジュールと前記第2のモジュールとを読み出すステップと、前記第1のモジュールをコンパイルしてブート先の前記コンピュータで実行可能な形式に変換し、前記第2のモジュールと組み合わせて前記コンピュータごとの前記オペレーティングシステムを前記記憶手段に作成するステップと、前記コンピュータにブート指示を送信し、前記ネットワークを介して前記オペレーティングシステムをブートさせるステップとを実行することを特徴とする。
その他の手段については、発明を実施するための形態のなかで説明する。
すなわち、本発明のネットワークブート方法は、ネットワークを経由してオペレーティングシステムをコンピュータにブートさせるネットワークブートシステムのネットワークブート方法であって、前記ネットワークブートシステムは、複数の前記オペレーティングシステムを、中間コード形式の第1のモジュール、および、前記コンピュータで実行可能な形式である第2のモジュールに分けて格納している記憶手段を備え、前記コンピュータから受信したブートリクエストに基づいて、前記コンピュータのハードウェア構成を調査するエージェントプログラムを決定するステップと、前記エージェントプログラムを前記コンピュータに送信するステップと、前記エージェントプログラムから、前記コンピュータのハードウェア構成を受信するステップと、前記記憶手段から、前記コンピュータのハードウェア構成に対応する前記第1のモジュールと前記第2のモジュールとを読み出すステップと、前記第1のモジュールをコンパイルしてブート先の前記コンピュータで実行可能な形式に変換し、前記第2のモジュールと組み合わせて前記コンピュータごとの前記オペレーティングシステムを前記記憶手段に作成するステップと、前記コンピュータにブート指示を送信し、前記ネットワークを介して前記オペレーティングシステムをブートさせるステップとを実行することを特徴とする。
その他の手段については、発明を実施するための形態のなかで説明する。
本発明によれば、ハードウェア構成の異なる複数のコンピュータがブートするためのOSを少なくして、OSを格納する記憶領域を節約し、簡易にOSを管理できる。
以下、本発明の実施形態のネットワークブートシステムについて図面を参照して説明する。
まず、図1に示す全体構成図に従って、ネットワークブートシステム10をサーバとして構成する一例のクライアントサーバシステムを説明する。なお、以下の説明では、構成要素に対応する図番について特に断りがなければ図1を参照することとする。
このクライアントサーバシステムは、ネットワークブートシステム10と、ネットワーク20と、クライアント30と、OS格納ディスク40とで構成されている。そして、OSの構成要素となるモジュール単位で管理し、クライアント30ごとに対応するOSを作成するネットワークブートシステム10が、クライアント30からのブートリクエストに従ってネットワーク20を経由してOS格納ディスク40に作成したOSを格納し、クライアント30にOS格納ディスク40からOSをブートさせるようになっている。
まず、図1に示す全体構成図に従って、ネットワークブートシステム10をサーバとして構成する一例のクライアントサーバシステムを説明する。なお、以下の説明では、構成要素に対応する図番について特に断りがなければ図1を参照することとする。
このクライアントサーバシステムは、ネットワークブートシステム10と、ネットワーク20と、クライアント30と、OS格納ディスク40とで構成されている。そして、OSの構成要素となるモジュール単位で管理し、クライアント30ごとに対応するOSを作成するネットワークブートシステム10が、クライアント30からのブートリクエストに従ってネットワーク20を経由してOS格納ディスク40に作成したOSを格納し、クライアント30にOS格納ディスク40からOSをブートさせるようになっている。
次に、このクライアントサーバシステムの各構成について詳細に説明する。
なお、ここでは、ネットワークブートシステム10は、1台の装置(サーバ)を想定して説明するが、各機能を実現する複数のコンピュータによって構成し、LANやインターネットで互いを接続して分散処理可能な構成としてもよい。クライアント30は、1台として説明するが、その台数に制限はない。OS格納ディスク40は、例えば、ファイルサーバを用いることとするが、OSを格納することが可能であれば、他のものを用いてもよい。また、OS格納ディスク40は、ネットワークブートシステム10にネットワーク20を経由して接続する外部に備える構成として説明するが、ネットワークブートシステム10の内部に備える構成としてもよい。
なお、ここでは、ネットワークブートシステム10は、1台の装置(サーバ)を想定して説明するが、各機能を実現する複数のコンピュータによって構成し、LANやインターネットで互いを接続して分散処理可能な構成としてもよい。クライアント30は、1台として説明するが、その台数に制限はない。OS格納ディスク40は、例えば、ファイルサーバを用いることとするが、OSを格納することが可能であれば、他のものを用いてもよい。また、OS格納ディスク40は、ネットワークブートシステム10にネットワーク20を経由して接続する外部に備える構成として説明するが、ネットワークブートシステム10の内部に備える構成としてもよい。
まず、ネットワークブートシステム10の構成を説明する。
ネットワークブートシステム10は、一般的なコンピュータであって、図示しないCPU(Central Processing Unit)、HDD(Hard Disk Drive)、インターフェース等のハードウェアから構成され、OSをモジュールとして管理してブート先のコンピュータのハードウェア構成に従ってモジュールを組み合わせてOSを作成するためのネットワークブートプログラムを実行することで、後記するネットワークブート処理を実現するものである。
ネットワークブートシステム10は、一般的なコンピュータであって、図示しないCPU(Central Processing Unit)、HDD(Hard Disk Drive)、インターフェース等のハードウェアから構成され、OSをモジュールとして管理してブート先のコンピュータのハードウェア構成に従ってモジュールを組み合わせてOSを作成するためのネットワークブートプログラムを実行することで、後記するネットワークブート処理を実現するものである。
そのため、このネットワークブートシステム10は、クライアント30とのやりとりを行うクライアント連絡部(通信手段)100と、クライアント30からのブートリクエストに従って、クライアント30のハードウェア構成を調査結果(デバイスIDやOS種類等の構成情報)として抽出するためのエージェントプログラムを作成するOS構成情報作成手段200と、ブートリクエストと構成情報とに従ってOSを作成してOS格納ディスク40上に格納するOS作成手段300と、クライアント30がブートするOS種類を特定するための一覧を格納したクライアントOSテーブル400とを機能として備えている。
以下、このネットワークブートシステム10の各機能について説明する。
以下、このネットワークブートシステム10の各機能について説明する。
クライアント連絡部100は、ネットワーク20を経由してクライアント30からブートリクエストを受け取り、クライアント30へブート指示を送信する。また、クライアント連絡部100は、クライアント30にどのOSをブートさせるかという判断をクライアントOSテーブル400を用いて行う。例えば、ブートリクエストに含まれる後記マシンタイプをキーとしてクライアントOSテーブル400を検索しOS種類を抽出する。そして、クライアント連絡部100は、抽出したOS種類のOSをクライアント30にブートさせると判断し、抽出したOS種類とブートリクエストとを、OS構成情報作成手段200とOS作成手段300とに渡す。
OS構成情報作成手段200は、クライアント30からのブートリクエストに従って、クライアント30のハードウェア構成を示すハードウェア構成情報を調査結果として取得するためのエージェントプログラムを抽出するものであり、OS構成情報作成部210と、構成調査エージェントテーブル220とから構成されている。
OS構成情報作成部210は、クライアント30のハードウェア構成を構成情報(調査結果)として得るために適切なエージェントプログラムを構成調査エージェントテーブル220から抽出して、クライアント30に送るものである。
OS構成情報作成部210は、クライアント30のハードウェア構成を構成情報(調査結果)として得るために適切なエージェントプログラムを構成調査エージェントテーブル220から抽出して、クライアント30に送るものである。
構成調査エージェントテーブル220には、図2に示すように、「CpuType1」等のCPU種類221と、「マシン1」等のマシンタイプ222とに、ファイル名「Type1Check.exe」等のエージェントプログラム223が関係付けられている。
OS作成手段300は、クライアント30にブートさせるOSを作成して、作成したOSをOS格納ディスク40に格納するものであり、OS作成部310と、コンパイル部320と、共通モジュールテーブル330と、ハードウェア依存モジュールテーブル340とから構成されている。
OS作成手段300は、クライアント30にブートさせるOSを作成して、作成したOSをOS格納ディスク40に格納するものであり、OS作成部310と、コンパイル部320と、共通モジュールテーブル330と、ハードウェア依存モジュールテーブル340とから構成されている。
以下、OS作成手段300の各構成について説明する。
OS作成部310は、クライアント30から送られてくるブートリクエストおよびハードウェア構成情報に基づいて、共通モジュールテーブル330から共通モジュールを抽出すると共にハードウェア依存モジュールテーブル340から依存モジュールを抽出し、抽出した共通モジュールと依存モジュールとを組み合わせる。なお、共通モジュールは、ハードウェアに依存しないOSの上位層のモジュールであり、中間コード形式としている。また、ここでは、同様に、依存モジュールも中間コード形式として説明する。
OS作成部310は、クライアント30から送られてくるブートリクエストおよびハードウェア構成情報に基づいて、共通モジュールテーブル330から共通モジュールを抽出すると共にハードウェア依存モジュールテーブル340から依存モジュールを抽出し、抽出した共通モジュールと依存モジュールとを組み合わせる。なお、共通モジュールは、ハードウェアに依存しないOSの上位層のモジュールであり、中間コード形式としている。また、ここでは、同様に、依存モジュールも中間コード形式として説明する。
また、このOS作成部310は、双方のモジュールを組み合わせたOS中間コードをコンパイル部320にコンパイルさせて、クライアント30向けのOSを作成する。さらに、このOS作成部310は、作成したOSをOS格納ディスク40に格納すると共にクライアント30にブート指示を出す。このブート指示には、OS格納ディスク40内のOSの格納先(アドレス)が含まれる。
なお、ここでは、共通モジュールと依存モジュールとの双方のモジュールを組み合わせてコンパイルすることとしたが、実行可能な形式となるのであれば、各テーブルに格納されているモジュールの形式は問わない。例えば、依存モジュールは、中間コード形式ではなく、ハードウェアに依存した実行形式としてもよい。特に、ドライバは、ハードウェアを仮想化するために使用されるOSのコンポーネントであり、ハードウェアに非常に密着しているため、実行形式とするのが好ましい。
ここで、前記したコンパイル部320、共通モジュールテーブル330、ハードウェア依存モジュールテーブル340について順を追って詳述する。
コンパイル部320は、OS作成部310から渡される中間コードをクライアント30のハードウェア上で実行可能な形式にコンパイルするものである。なお、ここでは、コンパイルして作成されたOSは、OS作成部310を経由してOS格納ディスク40に格納するものとして説明するが、OS作成部310を介さずにコンパイル部320がOS格納ディスク40に格納させるようにしてもよい。
コンパイル部320は、OS作成部310から渡される中間コードをクライアント30のハードウェア上で実行可能な形式にコンパイルするものである。なお、ここでは、コンパイルして作成されたOSは、OS作成部310を経由してOS格納ディスク40に格納するものとして説明するが、OS作成部310を介さずにコンパイル部320がOS格納ディスク40に格納させるようにしてもよい。
共通モジュールテーブル330は、共通モジュール抽出のために必要な一覧であり、クライアント30がブートするためのOSを構成するモジュールの中で、ハードウェア依存のないOSの上位層のモジュールを中間コードの形で格納するものである。
この共通モジュールテーブル330には、具体的には、図3に示すように、「OS1」等のOS種類331と、「OS1Kernel.exe」等のモジュール名332と、「5.0.0.1025」等のモジュールのバージョン333と、前記したバージョン333のモジュール名332のモジュールの格納先を示す位置334と、クライアント30の図示しないCPUの種類に依存しない中間コード形式のOSのモジュールの実体である「982e77fb・・・・・」等で表されるOSバイナリ335とが関係付けられている。なお、「\OS1System」等で表される位置334は、OS格納ディスク40の格納先を示している。
この共通モジュールテーブル330には、具体的には、図3に示すように、「OS1」等のOS種類331と、「OS1Kernel.exe」等のモジュール名332と、「5.0.0.1025」等のモジュールのバージョン333と、前記したバージョン333のモジュール名332のモジュールの格納先を示す位置334と、クライアント30の図示しないCPUの種類に依存しない中間コード形式のOSのモジュールの実体である「982e77fb・・・・・」等で表されるOSバイナリ335とが関係付けられている。なお、「\OS1System」等で表される位置334は、OS格納ディスク40の格納先を示している。
ハードウェア依存モジュールテーブル340は、ハードウェア依存のドライバ等のモジュールを特定するための一覧であって、OSの上位層に対してクライアント30を構成するハードウェアを仮想化するためのドライバやHAL(Hardware Abstraction Layer)等のモジュールを格納するものである。
このハードウェア依存モジュールテーブル340には、具体的には、図4に示すように、デバイスを特定するための「PNP0001」等のデバイスID341と、ドライバ等のモジュールの実行可能な「CpuType1」等のCPU種類342と、そのモジュールを使用可能な「OS1」等のOS種類343と、「OS1driver1.sys」等のドライバ名344と、「5.0.0.1025」等のドライバのバージョン345と、ドライバのOS格納ディスク40の格納先を示す位置346と、「982e77fd・・・・」等のドライバの実体であるドライババイナリ347とが関係付けられている。なお、「\OS1System\drivers」等で表される位置334は、OS格納ディスク40の格納先を示している。
また、クライアントOSテーブル400には、クライアント30がブートするOS種類を特定するための一覧を格納するものであって、クライアント30がブートするものとしてクライアント30のネットワークブートシステム10の登録時に設定される。
このクライアントOSテーブル400は、図5に示すように、クライアント30を一意に識別するために使用するクライアント識別ID401と、OS種類402とが関係付けられている。例えば、「ID-XYZ」のクライアント識別IDと「OS2」等のCPU種類とが関係付けられている。
このクライアントOSテーブル400は、図5に示すように、クライアント30を一意に識別するために使用するクライアント識別ID401と、OS種類402とが関係付けられている。例えば、「ID-XYZ」のクライアント識別IDと「OS2」等のCPU種類とが関係付けられている。
ネットワーク20は、ネットワークブートシステム10と、クライアント30と、OS格納ディスク40とを互いに通信可能にするものであり、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット等で構成されている。なお、ネットワーク20は、SAN(Storage Area Network)等のストレージネットワークとしてもよい。
クライアント30は、パーソナルコンピュータ等のコンピュータであって、図示しないCPU、HD、インターフェース等のハードウェアから構成され、ネットワーク20経由でOSをブートするための基本的なデバイスを備えている。このクライアント30は、電源ONにより、BIOS(Basic Input Output System)が立ち上がり、このBIOS上で動く通信プロトコルに従ってネットワーク20を経由し、図6に示すようなブートリクエスト500をネットワークブートシステム10に送信する。このブートリクエスト500には、例えば、クライアント30を識別するための「ID-XYZ」501a等のクライアント識別ID501と、「CpuType3」502a等のクライアント30のCPU種類502と、クライアントマシンの総称(PC−AT(登録商標)互換等)を示すためのマシンタイプ503(例えば「マシン3」503a)とが含まれている。
また、クライアント30は、ネットワークブートシステム10からのブート指示に従って指定されるOS格納ディスク40からネットワーク20を経由してOSをブートするようになっている。さらに、クライアント30は、ネットワークブートシステム10から転送されるエージェントプログラムをBIOS上で動かし、エージェントプログラムにより自己のハードウェア構成を調査するようになっている。
OS格納ディスク40には、ネットワークブートシステム10からネットワーク20を経由して送られてくるOSが格納される。
OS格納ディスク40には、ネットワークブートシステム10からネットワーク20を経由して送られてくるOSが格納される。
ここで、図2,4,7を参照して、クライアント30がエージェントプログラム223によりハードウェア構成を調査した結果を説明する。
図7に示すように、このハードウェア構成の調査結果600では、デバイス固有のIDであるデバイスID601の羅列(「XP001」601a,「XP002」601b・・・)となっている。このデバイスID601は、図4に示したハードウェア依存モジュールテーブル340のデバイスID341を特定するものである。
図7に示すように、このハードウェア構成の調査結果600では、デバイス固有のIDであるデバイスID601の羅列(「XP001」601a,「XP002」601b・・・)となっている。このデバイスID601は、図4に示したハードウェア依存モジュールテーブル340のデバイスID341を特定するものである。
次に、図5,6を参照して、クライアント連絡部100のクライアントOSテーブル400からOS種類402を抽出する処理を説明する。
クライアント連絡部100は、図6に示したブートリクエスト500のクライアント識別ID501をキーとして、図5に示したOS種類402をクライアントOSテーブル400から抽出する。例えば、図6に示した「ID-XYZ」501aをキーとして、図5に示した「OS2」402aを抽出する。
クライアント連絡部100は、図6に示したブートリクエスト500のクライアント識別ID501をキーとして、図5に示したOS種類402をクライアントOSテーブル400から抽出する。例えば、図6に示した「ID-XYZ」501aをキーとして、図5に示した「OS2」402aを抽出する。
次に、図2,6を参照して、OS構成情報作成部210がエージェントプログラムを抽出する処理を説明する。
OS構成情報作成部210は、図6に示したブートリクエスト500に含まれるCPU種類502とマシンタイプ503とをキーとして、図2に示した構成調査エージェントテーブル220から対応するCPU種類221とマシンタイプ222とを含むレコード中のエージェントプログラム223を抽出する。例えば、図6に示した「CpuType3」と「マシン3」とをキーとして図2に示した「Type3Check.exe」223a等のエージェントプログラム223を抽出する。
OS構成情報作成部210は、図6に示したブートリクエスト500に含まれるCPU種類502とマシンタイプ503とをキーとして、図2に示した構成調査エージェントテーブル220から対応するCPU種類221とマシンタイプ222とを含むレコード中のエージェントプログラム223を抽出する。例えば、図6に示した「CpuType3」と「マシン3」とをキーとして図2に示した「Type3Check.exe」223a等のエージェントプログラム223を抽出する。
次に、図3〜7を参照して、OS作成部310が、クライアント30から送られてくる図6に示したブートリクエスト500および図7に示したハードウェア構成の調査結果600により、図3に示した共通モジュールテーブル330から共通モジュールを抽出し、ハードウェア依存モジュールテーブル340からモジュール(ドライバ)を抽出する処理を説明する。
OS作成部310は、クライアント連絡部100により抽出されるOS種類402をキーとして、図3に示した共通モジュールテーブル330を検索し、対応するOS種類331のモジュール名332とバージョン333と位置334とを抽出し、対応する位置334から共通モジュールとしてのOSバイナリ335を共通モジュールテーブル330から抽出する。例えば、図5に示した「OS2」402aをキーとして、対応する「OS2」のOS種類331を含むレコードを検索し、「OS2Kernel」のモジュール名332と「6.0.0.1025」のバージョン333と「\OS2System」の位置334とOSバイナリ335の「21gaff9a・・・・」335aを抽出する。同様に、「c97a6f29・・・・」335bも抽出する。
また、OS作成部310は、クライアント連絡部100により抽出されたOS種類402と、図6に示したCPU種類502と、図7に示したハードウェア構成の調査結果600のデバイスID601とをキーとして、図4に示したハードウェア依存モジュールテーブル340を検索する。そして、ハードウェア依存モジュールテーブル340のデバイスID341と、CPU種類342と、OS種類343とに対応するレコードのドライバ名344とバージョン345と位置346とドライババイナリ347とを抽出する。例えば、図5に示した「OS2」402aと、図6に示した「CpuType3」502aと、図7に示した「XP0001」601aおよび「XP0002」601bとをキーとして、図4に示したドライバ名344とバージョン345と位置346と「21gaff9a・・・・」347a,347b等のドライババイナリ347とが抽出される。
このように、前記した構成のネットワークブートシステム10は、構成調査エージェントテーブル220と、共通モジュールテーブル330と、ハードウェア依存モジュールテーブル340と、クライアントOSテーブル400とを集中管理するため、管理者がOSのモジュールのバージョンを効率良くかつ簡易に管理できるようになる。
最後に、図8に示すフローチャートに従って、前記したクライアント30がOSをブートするまでの処理の流れを図1〜7を参照しつつ説明する。なお、図8中、左側にはクライアント30の処理、右側にはネットワークブートシステム10の処理を表している。また、以下の説明でも、構成要素に対応する図番について特に断りがなければ図1を参照することとする。
まず、クライアント30では、電源がユーザにより投入されると、BIOSが起動する(Sa1)。この起動によりクライアント30は、ネットワーク20を経由してネットワークブートシステム10に図6に示したブートリクエスト500を送信する(Sa2)。
一方、ネットワークブートシステム10では、クライアント連絡部100がブートリクエスト500を受信すると(Sb1)、クライアント連絡部100は、図6に示したブートリクエスト500のクライアント識別ID501と一致するIDを、図5に示すクライアントOSテーブル400のクライアント識別ID401から検索する。そして、それに対応するOS種類402を抽出し、クライアント30にブートさせるOS種類を決定する(Sb2)。例えば、図6に示したクライアント識別ID501が「ID-XYZ」501aであるので、図5に示したクライアントOSテーブル400を参照すると、クライアント30にブートさせるOS種類は、「OS2」402aとなる。
次に、クライアント連絡部100は、OS種類を決定すると、図6に示したブートリクエスト500およびSb2で決定したOS種類を、OS構成情報作成手段200およびOS作成手段300に渡す。
そして、OS構成情報作成手段200では、クライアント連絡部100から図6に示したブートリクエスト500およびOS種類を受け取ると、OS構成情報作成部210が、ブートリクエスト500に含まれるCPU種類502とマシンタイプ503とを基に、図2に示す構成調査エージェントテーブル220からクライアント30のハードウェア構成を調査するためのエージェントプログラム223を抽出して、クライアント30のためのエージェントプログラムを決定する(Sb3)。
ここでは、図6に示したCPU種類502が「CpuType3」502aであり、図6に示したマシンタイプ503が「マシン3」503aなので、図2に示した対応するエージェントプログラム223の「Type3Check.exe」223aが抽出される。
そして、OS構成情報作成手段200では、クライアント連絡部100から図6に示したブートリクエスト500およびOS種類を受け取ると、OS構成情報作成部210が、ブートリクエスト500に含まれるCPU種類502とマシンタイプ503とを基に、図2に示す構成調査エージェントテーブル220からクライアント30のハードウェア構成を調査するためのエージェントプログラム223を抽出して、クライアント30のためのエージェントプログラムを決定する(Sb3)。
ここでは、図6に示したCPU種類502が「CpuType3」502aであり、図6に示したマシンタイプ503が「マシン3」503aなので、図2に示した対応するエージェントプログラム223の「Type3Check.exe」223aが抽出される。
その後、OS構成情報作成部210は、クライアント連絡部100およびネットワーク20を経由し、決定したエージェントプログラム223をクライアント30に送信する(Sb4)。ここでは、エージェントプログラム223として、図2に示した「Type3Check.exe」223aを送信する。
クライアント30は、エージェントプログラム223を受信すると(Sa3)、受信したエージェントプログラム223を実行し(Sa4)、図7に示したハードウェア構成の調査結果600をネットワークブートシステム10のクライアント連絡部100に送信する(Sa5)。ここでは、図7に示したとおり、クライアント30には、「XP0001」601aと、「XP0002」601bとのデバイスID601を持つデバイスが存在する調査結果となっている。
一方、ネットワークブートシステム10では、OS作成手段300が、クライアント連絡部100からブートリクエスト500とOS種類とを渡され、クライアント30から図7に示したハードウェア構成の調査結果600を受信すると(Sb5)、図3に示した共通モジュールテーブル330のOS種類331の中で、クライアント連絡部100から渡されたOS種類402と一致する全てのデータを抽出し、その中から図3に示したOSバイナリ335を抽出する(Sb6)。
ここでは、「OS2」402aをキーとして、対応する「OS2」のOS種類331を含むレコードを検索し、「OS2Kernel」のモジュール名332と「6.0.0.1025」のバージョン333と「\OS2System」の位置334を抽出し、その「\OS2System」からOSバイナリ335に対応するバイナリデータである「21gaff9a・・・・」335aを抽出する。同様に、「c97a6f29・・・・」335bも抽出する。
ここでは、「OS2」402aをキーとして、対応する「OS2」のOS種類331を含むレコードを検索し、「OS2Kernel」のモジュール名332と「6.0.0.1025」のバージョン333と「\OS2System」の位置334を抽出し、その「\OS2System」からOSバイナリ335に対応するバイナリデータである「21gaff9a・・・・」335aを抽出する。同様に、「c97a6f29・・・・」335bも抽出する。
次に、OS作成手段300は、OSバイナリ335に対応するバイナリデータである「21gaff9a・・・・」335aをコンパイル部320に送る。そして、コンパイル部320は、図6に示したブートリクエスト500に含まれるCPU種類502に従い、受け取ったバイナリデータをそのCPU向けの実行ファイルにコンパイルする(Sb7)。ここでは、CPU種類が「CpuType3」502aであるので、コンパイル部320は、バイナリデータである「21gaff9a・・・・」335aおよび「c97a6f29・・・・」335bを、クライアント30の図示しないCPUの実行形式にコンパイルする。コンパイル部320は、コンパイルが全て終わったら、コンパイル済みのバイナリをOS作成部310に渡す。
次に、OS作成部310は、コンパイル部320から渡されたコンパイル済みバイナリを、共通モジュールテーブル330の図3に示したモジュール名332とバージョン333と位置334とに従い、ネットワーク20に接続されたOS格納ディスク40上に配置する(Sb8)。ここでは、「21gaff9a・・・・」335aがコンパイルされたバイナリは、OS格納ディスク40の位置「¥」ルートに、ファイル名「OS2System」、バージョン「6.0」として配置される。「c97a6f29・・・・」335bも同様にして配置される。
このようにして、OS作成部310は、Sb5で受信したハードウェア構成の調査結果600に含まれるデバイスID601全てについて、次の条件1〜3の全てを満たすモジュールをハードウェア依存モジュールテーブル340から抽出し、図3に示したドライバ名344とバージョン345と位置346との情報に従い、OS格納ディスク40上に配置する。
条件1は、図4に示すハードウェア依存モジュールテーブル340のデバイスID341が一致するという条件である。
条件2は、図6に示したブートリクエスト500のCPU種類502と図4に示したハードウェア依存モジュールテーブル340のCPU種類342とが一致するという条件である。
条件3は、クライアント30がブートする図5に示したOS種類402と図4に示したハードウェア依存モジュールテーブル340のOS種類343とが一致するという条件である。
条件2は、図6に示したブートリクエスト500のCPU種類502と図4に示したハードウェア依存モジュールテーブル340のCPU種類342とが一致するという条件である。
条件3は、クライアント30がブートする図5に示したOS種類402と図4に示したハードウェア依存モジュールテーブル340のOS種類343とが一致するという条件である。
ここでは、図6に示したCPU種類502が「CpuType3」502aであり、クライアント30がブートする図5に示したOS種類402が「OS2」402aであるので、図7に示したハードウェア構成の調査結果600に含まれるデバイスID601の「XP0001」601a用のドライバとして、ドライババイナリである図4に示した「21gaff9a・・・・」347aが、ドライバ名344を「OS2driver1.sys」、バージョン345を「2.1」として、OS格納ディスク40の位置「¥」ルートに配置される。
また、図7に示したデバイスID601の「XP0002」601b用のドライバとしては、ドライババイナリである図4に示した「21gaff9a・・・・」347bが、ドライバ名344を
「OS2driver2.sys」、バージョン345を「2.1」として、OS格納ディスク40の位置「¥」ルートに配置される。
「OS2driver2.sys」、バージョン345を「2.1」として、OS格納ディスク40の位置「¥」ルートに配置される。
そして、OS作成部310は、全てのOSのモジュールおよびドライバのモジュールをOS格納ディスク40上に配置した後、クライアント連絡部100にOSが完成した旨を通知する。クライアント連絡部100は、OSが完成した旨の通知を受けると、クライアント30に対し、OS格納ディスク40上に作成されたOSをブートする指令であるブート指示を送信する(Sb9)。なお、ブート指示には、OS格納ディスク40上に格納された各モジュールの格納先(アドレス)が含まれている。
その後、クライアント30は、ネットワークブートシステム10からのブート指示を受信し(Sa6)、OS格納ディスク40上に格納された各モジュールを用いてブートする(Sa7)。これにより、ネットワークブートシステム10は、クライアント30にOSをブートさせることができる。
また、OS格納ディスク40では、クライアント30によるブートが終了すると、そのモジュールが削除される。この削除は、クライアント30から電源をオフにする旨の通知を受けたとき、あるいは、OS格納ディスク40の記憶容量に余裕がないときに行えばよい。
以上のように、クライアント30のブートのたびに、クライアント30のハードウェア構成に従ったモジュールを抽出して構成することによって、OSを格納する記憶容量を少なくすることができる。
また、OS格納ディスク40では、クライアント30によるブートが終了すると、そのモジュールが削除される。この削除は、クライアント30から電源をオフにする旨の通知を受けたとき、あるいは、OS格納ディスク40の記憶容量に余裕がないときに行えばよい。
以上のように、クライアント30のブートのたびに、クライアント30のハードウェア構成に従ったモジュールを抽出して構成することによって、OSを格納する記憶容量を少なくすることができる。
なお、前記実施形態の説明では、ネットワークブートシステム10からクライアント30にエージェントプログラム223を送って実行させるものとして説明したが、あらかじめクライアント30にBIOSに組み込むようにしてもよい。また、ネットワーク20を介さずに、CD−ROM(Compact Disk Read Only Memory)からブートのたびにエージェントプログラム223を読み出すようにしてもよい。さらに、ネットワークブートシステム10は、OS格納ディスク40を介さず、直接クライアント30に作成したモジュールを送信してもよい。
10…ネットワークブートシステム、20…ネットワーク、30…クライアント(コンピュータ)、40…OS格納ディスク(記憶手段)、100…クライアント連絡部(通信手段)、200…OS構成情報作成手段、210…OS構成情報作成部、220…構成調査エージェントテーブル、223…エージェントプログラム、300…OS作成手段、310…OS作成部、320…コンパイル部、330…共通モジュールテーブル(モジュール記憶手段)、335…OSバイナリ(第1のモジュール)、347…ドライババイナリ(第2のモジュール)、340…ハードウェア依存モジュールテーブル(モジュール記憶手段)、500…ブートリクエスト
Claims (13)
- ネットワークを経由してオペレーティングシステムをコンピュータにブートさせるネットワークブートシステムのネットワークブート方法であって、
前記ネットワークブートシステムは、
複数の前記オペレーティングシステムを、中間コード形式の第1のモジュール、および、前記コンピュータで実行可能な形式である第2のモジュールに分けて格納している記憶手段、を備え、
前記コンピュータから受信したブートリクエストに基づいて、前記コンピュータのハードウェア構成を調査するエージェントプログラムを決定するステップと、
前記エージェントプログラムを前記コンピュータに送信するステップと、
前記エージェントプログラムから、前記コンピュータのハードウェア構成を受信するステップと、
前記記憶手段から、前記コンピュータのハードウェア構成に対応する前記第1のモジュールと前記第2のモジュールとを読み出すステップと、
前記第1のモジュールをコンパイルしてブート先の前記コンピュータで実行可能な形式に変換し、前記第2のモジュールと組み合わせて前記コンピュータごとの前記オペレーティングシステムを前記記憶手段に作成するステップと、
前記コンピュータにブート指示を送信し、前記ネットワークを介して前記オペレーティングシステムをブートさせるステップと、
を実行することを特徴とするネットワークブート方法。 - 前記コンピュータから受信した前記ブートリクエストは、CPU(Central Processing Unit)の種別の情報を格納していることを特徴とする請求項1に記載のネットワークブート方法。
- 前記第1のモジュールは、ハードウェア依存のないOSの上位層のモジュールであることを特徴とする請求項1または請求項2に記載のネットワークブート方法。
- 前記第2のモジュールは、ドライバやHAL(Hardware Abstraction Layer)であることを特徴とする請求項1ないし請求項3のいずれか1項に記載のネットワークブート方法。
- 前記コンピュータに送信する前記ブート指示は、前記オペレーティングシステムを構成する前記第1のモジュールおよび前記第2のモジュールの前記記憶手段における格納先アドレスを含んでいることを特徴とする請求項1ないし請求項4のいずれか1項に記載のネットワークブート方法。
- 請求項1ないし請求項5のいずれか1項に記載のネットワークブート方法は更に、
前記コンピュータからから電源をオフにする旨の通知を受けたときに、前記オペレーティングシステムを構成する前記第1のモジュールおよび前記第2のモジュールを前記記憶手段から削除するステップを実行することを特徴とするネットワークブート方法。 - ネットワークを経由してオペレーティングシステムをコンピュータにブートさせるネットワークブートシステムであって、
複数の前記オペレーティングシステムを、中間コード形式の第1のモジュール、および、前記コンピュータで実行可能な形式である第2のモジュールに分けて格納している記憶手段と、
前記コンピュータから受信したブートリクエストに基づいて、前記コンピュータのハードウェア構成を調査するエージェントプログラムを決定して前記コンピュータに送信し、前記エージェントプログラムから、前記コンピュータのハードウェア構成を受信するクライアント連絡部(100)と、
前記記憶手段からブート先の前記コンピュータのハードウェア構成に対応する前記第1のモジュールおよび前記第2のモジュールを読み出し、前記第1のモジュールをコンパイルしてブート先の前記コンピュータで実行可能な形式に変換し、前記第2のモジュールと組み合わせて前記コンピュータごとの前記オペレーティングシステムを前記記憶手段に作成し、前記コンピュータにブート指示を送信し、前記ネットワークを介して前記オペレーティングシステムをブートさせるOS作成手段とを
備えたことを特徴とするネットワークブートシステム。 - 前記コンピュータから受信した前記ブートリクエストは、CPU(Central Processing Unit)の種別の情報を格納していることを特徴とする請求項7に記載のネットワークブートシステム。
- 前記第1のモジュールは、ハードウェア依存のないOSの上位層のモジュールであることを特徴とする請求項7または請求項8に記載のネットワークブートシステム。
- 前記第2のモジュールは、ドライバやHAL(Hardware Abstraction Layer)であることを特徴とする請求項7ないし請求項9のいずれか1項に記載のネットワークブートシステム。
- 前記コンピュータに送信する前記ブート指示は、前記オペレーティングシステムを構成する前記第1のモジュールおよび前記第2のモジュールの前記記憶手段における格納先アドレスを含んでいる(段落0045)ことを特徴とする請求項7ないし請求項10のいずれか1項に記載のネットワークブートシステム。
- 請求項7ないし請求項11のいずれか1項に記載のネットワークブートシステムは更に、
前記コンピュータからから電源をオフにする旨の通知を受けたときに、前記オペレーティングシステムを構成する前記第1のモジュールおよび前記第2のモジュールを前記記憶手段から削除することを特徴とするネットワークブートシステム。 - 請求項1ないし請求項6のいずれか1項に記載のネットワークブート方法の前記各ステップを、コンピュータである前記ネットワークブートシステムに実行させるためのネットワークブートプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011037842A JP2011129152A (ja) | 2011-02-24 | 2011-02-24 | ネットワークブート方法、ネットワークブートシステムおよびネットワークブートプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011037842A JP2011129152A (ja) | 2011-02-24 | 2011-02-24 | ネットワークブート方法、ネットワークブートシステムおよびネットワークブートプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004314981A Division JP4950418B2 (ja) | 2004-10-29 | 2004-10-29 | ネットワークブート方法、ネットワークブートシステムおよびネットワークブートプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011129152A true JP2011129152A (ja) | 2011-06-30 |
Family
ID=44291594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011037842A Withdrawn JP2011129152A (ja) | 2011-02-24 | 2011-02-24 | ネットワークブート方法、ネットワークブートシステムおよびネットワークブートプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011129152A (ja) |
-
2011
- 2011-02-24 JP JP2011037842A patent/JP2011129152A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Burns et al. | Kubernetes: up and running | |
KR101442360B1 (ko) | 플랫폼들 간 가상 머신 이미지 포팅 | |
US8429645B2 (en) | Method for optimizing migration of software applications to address needs | |
WO2017025056A1 (zh) | 通过软件开发工具包实现数据跟踪的方法及系统 | |
US10445122B2 (en) | Effective and efficient virtual machine template management for cloud environments | |
CN101650660B (zh) | 从中央存储装置引导计算机系统 | |
CN104272704B (zh) | 用于描述云环境从属物的元应用程序 | |
KR20070049166A (ko) | 목표 기기 상에서의 종속 소프트웨어 패키지의 검출 및이용을 자동화하기 위한 방법 및 소프트웨어 리포지터리를생성하기 위한 시스템 | |
US9396004B1 (en) | System and method for management of a configuration of a virtual machine | |
US10810025B2 (en) | Operation control method, and apparatus for operation control, and non-transitory computer-readable storage medium for storing program | |
US8886703B2 (en) | Advertising and facilitating management access to added capabilities of intelligent devices in a system | |
JP2020533666A (ja) | ゲノム・ファイルのためのコンテキスト・アウェア差分アルゴリズム | |
JP2011248658A (ja) | 仮想サーバデプロイ管理装置及び方法、そのプログラム | |
US9509629B2 (en) | Operation environment migration support device, record medium with program stored therefor, and method therefor | |
JP4950418B2 (ja) | ネットワークブート方法、ネットワークブートシステムおよびネットワークブートプログラム | |
JP2011129152A (ja) | ネットワークブート方法、ネットワークブートシステムおよびネットワークブートプログラム | |
US20130097207A1 (en) | Information processing device, information processing method and computer program | |
JP7381290B2 (ja) | 計算機システム及びデータの管理方法 | |
US9424054B2 (en) | Driver file conversion system | |
CN104303179B (zh) | 基于差异化盘格式的迭代式盘上传 | |
JP2011090596A (ja) | プログラムインストール方法並びにこの方法を実施するための可搬型記録媒体、情報処理装置、画像形成システム及びサーバ装置 | |
JP5018123B2 (ja) | ソフトウェア機能管理装置、複数ソフトウェアシステム、ソフトウェア機能管理方法及びプログラム | |
JP5450549B2 (ja) | 情報処理システム、情報処理システムの制御方法、および、プログラム | |
US20170249176A1 (en) | Systems and methods for configuration knowledge search | |
KR100964969B1 (ko) | 소프트웨어 및 파일 포맷의 관계 정보를 제공하는 소프트웨어 포탈 시스템 및 그의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20120730 |