(57)【特許請求の範囲】
【請求項１】
オペレーティングシステムがインストール可能な複数のパーティションを持ち、パーティションにインストールされたオペレーティングシステムを特定する第１の識別子を格納可能な補助記憶装置と、自計算機ハードウェアに固有な識別情報を記憶する記憶部と、計算機ハードウェアに固有な識別情報とライセンスの有無の管理の対象となるオペレーティングシステムを特定する第２の識別子と第２の識別子を持つオペレーティングシステムが前記固有な識別子を持つ計算機ハードウェアに関してライセンスがあるかどうかを示すライセンス情報とを記憶する管理情報部と、前記自計算機ハードウェアに固有な識別情報と前記管理情報部の前記計算機ハードウェアに固有な識別情報が一致し、且つ前記第１の識別子と前記第２の識別子が一致することを検出し、一致した第２の識別子に対応するライセンス情報がライセンス有りを示すかどうかを調べライセンス有りを示すとき対応するオペレーティングシステムを動作可能にする許可をする手続きとを備えることを特徴とする計算機。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムの使用権の管理に係るものであり、特に、複数のオペレーティングシステム（ＯＳ）を利用可能な計算機におけるＯＳのライセンスの管理に好適な技術に関する。
【０００２】
【従来の技術】
従来のＯＳに関するライセンスの管理については、例えば、ＯＳを計算機にインストールする際に、ライセンス契約内容を表示し、同意しないとインストールを続行できない技術や、ＯＳを格納したＣＤ−ＲＯＭのケースに表記されている２５文字のプロダクトキーを入力しないとインストールを続行できない技術などがある。ＯＳを計算機にインストールする際の一連の処理については、「Microsoft Windows 2000 Professional リソースキット上」（２０００．６．５  日経ＢＰエクスプレス社発行  マイクロソフトコーポレーション著）、ＩＳＢＮ４−８９１００−１６０−７の第１３８ページから第１４２ページに記載されている。
【０００３】
複数のＯＳを起動する計算機については、各ＯＳをハードディスクに作成した独立した領域（パーティション）にインストールする必要がある。複数のＯＳを起動する一連の処理については、「ＡＴ互換機アーキテクチャハンドブック」（１９９５．４．３  株式会社ナツメ社発行  川村、吉田著）、ＩＳＢＮ４−８１６３−１８３１−３の第１４８ページから第１５２ページに記載されている。
【０００４】
【発明が解決しようとする課題】
近年、複数種のＯＳ（同時には１つのＯＳが）が動作可能である計算機が出てきた(例えばオープン系サーバ)。一方、ソースコードを含めて無償で公開されるＯＳが出現しており、無償にも係わらず品質が優れているためインターネットの分野では一般的に使用されている。従来、計算機メーカは商用ＯＳをインストールした計算機を、ＯＳライセンス料込みの価格で販売していたが、無償ＯＳを使用するユーザのためにＯＳライセンス料なしの価格で計算機の販売を始めている。
【０００５】
ＯＳライセンス料込みの計算機とＯＳライセンス料を含まない計算機では、ハードウェアやハードウェアに組み込まれて動作するプログラム（ファームウェア）に差異はないため、ＯＳライセンス料を含まないで販売された計算機でも商用ＯＳは動作可能である。
【０００６】
従来技術のプロダクトキーによるライセンス管理では、ＯＳライセンス料込みの計算機と、ＯＳライセンス料を含まない計算機を区別できないため、ＯＳライセンスがない計算機で、商用ＯＳが動作してしまうという課題があった。
【０００７】
本発明の目的は、ライセンス(使用権)のあるＯＳとライセンスのない(正当な使用権のない)ＯＳを区別し、ライセンスがないＯＳが計算機で動作することを防ぎ、適切にＯＳライセンスを管理する計算機を提供することにある。
【０００８】
【課題を解決するための手段】
ＯＳがインストール可能な複数のパーティションを持ち、パーティションにインストールされたＯＳを特定する第１の識別子を格納可能な補助記憶装置と、ライセンスの有無の管理の対象とするＯＳを特定する第２の識別子と第２の識別子毎にライセンスの有無を表すライセンス情報を記憶するメモリと、第１の識別子と第２の識別子が一致し、一致した第２の識別子に対応するライセンス情報がライセンス有りを示すとき対応するＯＳを動作可能にする手続きとを備える。
【０００９】
【発明の実施の形態】
本発明における実施例を説明する。
図１は、本発明の一実施例を示す計算機システムのブロック図である。
計算機システム１００は、モニタ装置等のＩ／Ｏ装置１０３、プログラム命令列やデータを永続的に格納するための磁気ディスク等の補助記憶装置１０５、プログラム命令列やデータを永続的に格納するためのＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ Ｅｒａｓａｂｌｅ Ｐｒｏｇｒａｍｍａｂｌｅ Ｒｅａｄ ＯｎｌｙＭｅｍｏｒｙ）等の不揮発性メモリ１０６、プログラム命令列やデータを格納するためのメモリ１０２、不揮発性メモリ１０６やメモリ１０２に格納したプログラム命令列を実行するためのプロセッサ１０１およびプログラム命令列やデータの伝送路であるバス１０４を備えている。
【００１０】
補助記憶装置１０５には、補助記憶装置を複数の領域（パーティション）に分けて使用するためのパーティション管理情報１０９、ＯＳのプログラム命令列やデータを格納するためのパーティション１１１を持つ。パーティション管理情報１０９には、パーティション１１１に格納されているＯＳを起動するためのプログラム命令列であるマスターブートストラップローダ１１０を持つ。１番目のパーティション１１１（１）には、ＯＳを起動する際に実行するプログラム命令列であるＯＳブート手続き（計算機を起動する際、最初に補助記憶装置からＯＳを主記憶装置に読み出してくるためのプログラム）１１２を持つ。パーティションにはパーティション毎に異なるＯＳのプログラム命令列やデータを格納し、ＯＳ毎に異なるＯＳブート手続きをＯＳが格納されているパーティションに持ってもよい（パーティションにデータが入っている場合やパーティションがスワップ領域である場合などＯＳブート手続きがない場合がある）。OSブート手続き１１２にはマスターブートストラップローダから制御が移される。パーティション毎に異なるOSを格納し、マスターブートストラップローダが制御を移すOSブート手続きを変更することによって、複数のOSを一つの補助記憶装置から起動することができる。但し、ここでは複数のＯＳを同時に起動するのではなく、一度には任意の一つのＯＳが起動されることを想定している。
【００１１】
補助記憶装置１０５には例えばＣＤ−ＲＯＭに用意されたパーティション管理情報１０９とパーティション１１１がインストールされる。補助記憶装置１０５に登録しておくＯＳを変更する場合には、再構築されたパーティション管理情報１０９とパーティション１１１が再インストールされる。本実施例ではパーティションの数は４に制限されている。但し、後述する図２のマジックナンバーまでのパーティションの数をカウントする機能を持ち、後述するマスターブートストラップローダ１１０とライセンス判断手続き１１８と補助記憶装置書き込み手続きの一時変数Ｎの最大値を上述のカウント値とする機能を作り込めば、パーティションの数は任意なものとすることが出来る。
【００１２】
不揮発性メモリ１０６には、計算機システム１００の製品型名(計算機のハードウェア固有の情報)等を格納するためのシステム名称情報１１６、ライセンス管理対象ＯＳのファイルシステムが使用し、ＯＳの種別や特定のＯＳに係わるデータを表すパーティション内容識別子を格納するパーティション内容識別子管理情報１１７、パーティション内容識別子管理情報に格納されたパーティション内容識別子に基づいてライセンスの有無を判断するライセンス判断手続き１１８、補助記憶装置から論理的なブロック（ある大きさのデータの塊、例えばセクタ）をメモリに読み込むための補助記憶装置読み込み手続き１１９と、ライセンスがない場合にはシステムの起動処理を停止するシステム起動手続き１２０を持つ。補助記憶装置読み込み手続き１１９がメモリに読み込む論理的なブロックの単位としては、補助記憶装置の最小のデータ管理単位であるセクタを使用してもよい。パーティション内容識別子管理情報１１７では、ライセンス管理対象ＯＳのファイルシステムが使用するパーティション内容識別子１２１及びライセンスの有無を示すライセンスフラグ１２２を持つ。
【００１３】
パーティション内容識別子１２１には通常有償のＯＳの識別子が入るがフリーＯＳの識別子が入っても良い。後述するように、パーティション内容識別子１２１に登録されていないＯＳはブートが可能であるので、ブートを許可するかしないかの管理が不必要なＯＳの識別子を総て登録しておく必要はない。フリーＯＳの識別子が登録されているなら対応するライセンスフラグをオンにしてブートを許可すれば良い。
【００１４】
メモリ１０２には、補助記憶装置のパーティション管理情報１０９がメモリに存在することを示すパーティション管理情報読み込みフラグ１０７を持つ。
【００１５】
図２は、本発明におけるパーティション管理情報の一実施例である。パーティション管理情報１０９は、システム起動手続き１２０から呼び出され、ＯＳをブートする補助記憶装置の領域（パーティション）を決定し、ＯＳブート手続き１１２を呼び出す処理を実行するプログラム命令列であるマスターブートストラップローダ１１０、補助記憶装置のパーティションのサイズ等を示すパーティションテーブル２０１、パーティション管理情報が格納している情報が有効であることを示すためのマジックナンバー２０２を持つ。パーティションテーブル２０１には、Ｎ番目のパーティションからOSが起動可能か否かを示す起動フラグ２０３（Ｎ）（そのパーティションにＯＳが格納されているかを示すもので初期に設定される）、Ｎ番目のパーティション開始位置の論理ブロック番号を格納する開始位置２０４（Ｎ）、Ｎ番目のパーティションで格納されているデータの種別（ＯＳの種別、あるＯＳに関するデータなど）を示すパーティション内容識別子２０５（Ｎ）、Ｎ番目のパーティション終了位置の論理ブロック番号を格納する終了位置２０６（Ｎ）、Ｎ番目のパーティションサイズを示す論理ブロックの数を格納するサイズ２０７（Ｎ）を持つ。補助記憶装置のパーティションは、補助記憶装置の最小のデータ管理単位であるセクタを複数集めて構成してよい。パーティションの開始位置や終了位置は、補助記憶装置のセクタの位置を特定するためのシリンダー番号、ヘッド番号、セクタ番号を組み合わせてもよいし、補助記憶装置のすべてのセクタに連続的な番号を付けてもよい。本実施例では、すべてのセクタに連続的な番号を付与した場合で説明する。パーティション管理情報の実施例については「ＡＴ互換機アーキテクチャハンドブック」（１９９５．４．３株式会社ナツメ社発行  川村、吉田著）、ＩＳＢＮ４−８１６３−１８３１−３の第１４８ページから第１５２ページにも記載されている。また、本実施例ではパーティション管理情報が持つパーティションテーブルの数を４つとして説明しているが、４つ以外のパーティションテーブルを持ってもよい。
【００１６】
図３は、本発明におけるパーティション内容識別子管理情報１１７の一実施例である。
パーティション内容識別子管理情報１１７は、システム名称３０１と、システム名称に対応するライセンスフラグ１２２とパーティション内容識別子１２１の項目から構成される表である。システム名称３０１には、システム名称情報１１６に対応する識別子を格納する。パーティション内容識別子の項目には、ライセンス管理対象ＯＳのファイルシステムが使用しＯＳの種別を特定できるパーティション内容識別子を格納する。ライセンス管理対象ＯＳのファイルシステムが複数のパーティション内容識別子を使用する場合には、複数のパーティション内容識別子を格納してもよい。ライセンスフラグの項目には、ライセンス管理対象のOSにライセンスを許可する場合には１を、許可しない場合には０を格納する。ライセンス条件が変更になった時に備えて、システム名称の項目３０１とパーティション内容識別子の項目１２１及びライセンスフラグの項目１２２に格納するデータを設定するユーティリティプログラムを用意し、以前の設定とは変更できるようにしてもよい。更に述べると、計算機の出荷時にフロッピーディスクやＣＤ−ＲＯＭなどに格納されたユーティリティプログラムを動作させてライセンスの有無(その計算機で使用可能で管理対象となるＯＳの使用権の有無)の状況を設定する。その後、ライセンスの状況が変われば、例えば、計算機が設置されたサイトで上記のユーティリティプログラムによってライセンスの有無の状況を書き換える。
【００１７】
図４は、本発明におけるＯＳブート開始までの概略処理フローの一実施例を示すフローチャートである。
まず、計算機システムに電源オン等の事象が発生するとステップ４０２を実行する。ステップ４０２ではシステム起動手続き１２０を実行する。ステップ４０２の１で、プロセッサ、メモリ等の診断テストを実行し、I/O装置等の周辺機器の初期化を実行する。ステップ４０２の２で、補助記憶装置１０５からパーティション管理情報１０９をメモリに読み込む。ステップ４０２の３で、ライセンス判断手続き１１８を呼び出してライセンスの有無を判断する。ステップ４０２の４で、ライセンスが有る場合にはシステムの起動処理を続行するためにマスターブートストラップローダ１１０に制御を移す。
【００１８】
次にステップ４０３を実行する。ステップ４０３ではマスターブートストラップローダを実行する。ステップ４０３の１では、すべてのパーティションテーブル２０１の起動フラグ２０３を検査してＯＳブート可能なパーティションを選択する。ステップ４０３の２では、ブート可能なパーティションからOSブート手続き１１２をメモリ１０２に読み込む。ステップ４０３の３では、OSブート手続き１１２に制御を移す。
【００１９】
図５は、本発明におけるシステム起動手続き１２０の一実施例を示すフローチャートである。
まず、ステップ５０１を実行する。ステップ５０１の１では、プロセッサ、メモリ等の診断テストを実行し、I/O装置等の周辺機器の初期化を実行する。ステップ５０１の２では、パーティション管理情報読み込みフラグ１０７を０に初期化する。パーティション管理情報読み込みフラグは、パーティション管理情報１０９がメモリに読み込まれたかどうかを示すフラグであり、値が１の場合に読み込まれたことを示す。
【００２０】
次にステップ５０２を実行する。ステップ５０２では、パーティション管理情報１０９をメモリに読み込むために補助記憶装置読み込み手続き１１９を呼び出す。パーティション管理情報１０９は、補助記憶装置１０５の最初のセクタに格納されており、最初のセクタに格納されたデータを読み込むために、補助記憶装置読み込み手続きの引数としてはブロック番号０を渡す。
【００２１】
次にステップ５０３を実行する。ステップ５０３ではライセンスの有無を判断するためにライセンス判断手続き１１８を呼び出す。ライセンスが有る場合には次のステップ５０４を実行する。
【００２２】
次にステップ５０４の１では、パーティション管理情報１０９がメモリに読み込まれたことを示すために、パーティション管理情報読み込みフラグ１０７を値１に設定する。ステップ５０４の２では、パーティション管理情報に格納されているプログラム命令列であるマスターブートストラップローダ１１０に制御を移す。
【００２３】
図６は、本発明におけるマスターブートストラップローダの一実施例を示すフローチャートである。
まず、ステップ６０１では一時変数(処理フロー内で扱われる一時的な変数)Ｎを値１に設定する。
【００２４】
次にステップ６０２では Ｎ 番目のパーティションテーブル２０１（Ｎ）の起動フラグ２０３（Ｎ）を取得する。次にステップ６０３ではステップ６０２で取得した起動フラグの値が１であるかどうか判断する。起動フラグの値が１である場合には、Ｎ番目のパーティションからＯＳがブート可能と判断してステップ６０４を実行し、起動フラグの値が１以外の場合には、Ｎ番目のパーティションからＯＳブート不可と判断して、別のパーティションテーブルを検査するためにステップ６０７を実行する。
【００２５】
ステップ６０３で起動フラグの値が１に等しく、Ｎ番目のパーティションがＯＳブート可能であると判断した場合を説明する。
【００２６】
まずステップ６０４を実行する。ステップ６０４では Ｎ番目のパーティションテーブル２０１（Ｎ）の開始位置２０４（Ｎ）を取得する。次にステップ６０５では、パーティションの開始位置のセクタに格納されているＯＳブート手続きを読み込むために、補助記憶装置読み込み手続きを呼び出す。補助記憶装置読み込み手続きに対する引数としては、ステップ６０４で取得したパーティションの開始位置２０４（Ｎ）を渡す。
【００２７】
次にステップ６０６では、ステップ６０５でメモリに読み込んだＯＳブート手続きに制御を移す。ステップ６０３で起動フラグの値が０となっており、Ｎ番目のパーティションがＯＳブート不可と判断した場合を説明する。
【００２８】
まずステップ６０７を実行する。ステップ６０７では一時変数Ｎに１を加えた値を Ｎに設定する。次にステップ６０８では一時変数Ｎが４より大きいかどうかを判断する。一時変数Ｎが４より大きい場合には、パーティション管理情報１０９にはＯＳブート可能なパーティションは存在しないと判断してステップ６０９を実行する。一時変数Ｎが４より大きくない場合にはパーティション管理情報１０９に格納されている別のパーティションテーブルをＯＳブート可能がどうか検査するためにステップ６０２を実行する。
【００２９】
ステップ６０８で、一時変数Ｎが４より大きい、即ちＯＳブート可能なパーティションが存在しないと判断した場合を説明する。まずステップ６０９を実行する。ステップ６０９ではモニタ装置に“Invalid Partition Table”と表示し、計算機システムのユーザにＯＳブート可能なパーティションが存在しないことを通知する。
【００３０】
このように、図５のステップ５０３でライセンスがあるＯＳがあるとされた後マスターブートストラップローダ１１０が実行され予めユーザにより設定された起動フラグのオンの検出処理が行なわれる。パーティションが４個あっても総てに起動可能なＯＳが格納されている訳ではない。複数個の起動可能なＯＳが格納されていれば、ここではパーティション番号が若いＯＳが起動される。
【００３１】
図７は、本発明におけるライセンス判断手続きの一実施例を示すフローチャートである。まずステップ７０１の１では図１のシステム名称情報１１６に対応するパーティション内容識別子１２１を図３のパーティション内容識別子管理情報１１７から検索する。例えば、システム名称情報として“model  B”が格納されていた場合には、パーティション内容識別子管理情報１１７のシステム名称の項目を検索して“model  Ｂ”に一致する列を見つける。ステップ７０１の２では、ステップ７０１の１で一致した列のパーティション内容識別子１２１を取得して、一時変数Ｐに設定する。例えば、“model  B”に一致した列を見つけた場合には、一時変数 Ｐの値として“Partition  D”を設定する。ステップ７０１の３では、ステップ７０１の１で一致した列のライセンスフラグ１２２を取得して、一時変数Ｌに設定する。例えば、“model  B”に一致した列を見つけた場合には、一時変数Ｌの値として１を設定する。
【００３２】
次にステップ７０２では、一時変数Ｎの値を１に設定する。次にステップ７０３の１では、Ｎ番目のパーティションテーブル２０１（Ｎ）のパーティション内容識別子２０５（Ｎ）を取得する。ステップ７０３の２では、ステップ７０３の１で取得したパーティション内容識別子２０５（Ｎ）と、ステップ７０１の２で設定した一時変数Ｐを比較する。
【００３３】
次にステップ７０４では、ステップ７０３の２で比較した結果、識別子が一致したかどうかを判断する。識別子が一致した場合には、ライセンス管理対象となっているＯＳと判断してステップ７０８を実行する。識別子が一致しない場合には、ライセンス管理対象外のＯＳと判断して、別のパーティションテーブルを検査するためにステップ７０５を実行する。
【００３４】
ステップ７０４で識別子が一致したと判断した場合を説明する。
【００３５】
まずステップ７０８を実行する。ステップ７０８では一時変数Ｌの値が１かどうかを判断する。一時変数Ｌの値が１と等しい場合には、ライセンスが許可されていると判断して、ライセンス判断手続きの呼び出し元に戻る。一時変数Ｌの値が１と等しくない場合には、ライセンスが許可されていないと判断してステップ７０７を実行する。
【００３６】
ステップ７０４で識別子が一致しないと判断した場合を説明する。まずステップ７０５を実行する。ステップ７０５では一時変数Ｎに１を加えた値をＮに設定する。
【００３７】
次にステップ７０６では一時変数Ｎが４より大きいかどうかを判断する。一時変数Ｎが４より大きい場合には、パーティション管理情報１０９に格納されているすべてのパーティションテーブルを検査し、ライセンス管理対象となっているパーティションは存在しないと判断してライセンス判断手続きの呼び出し元に戻る。一時変数Ｎが４より大きくない場合には別のパーティションがライセンス管理対象かどうか検査するためにステップ７０３を実行する。
【００３８】
ステップ７０８でライセンスが許可されていないと判断した場合を説明する。まずステップ７０７ではモニタ装置に“No OS License”と表示し、計算機システムのユーザにＯＳのライセンスがないためブート処理を停止することを通知する。この状態になれば、計算機システムをリセットし、補助記憶装置１０５へインストールする情報を修正した後再インストールすることになる。
【００３９】
先にも述べたとおり、パーティション内容識別子管理情報１１７に登録されていない、即ち、フリーソフトなどライセンス管理していないＯＳについてはステップ７０３、７０４、７０５、７０６のループの作用としてライセンス有無の判断手続きはパスしてしまう。
【００４０】
図８は、本発明における補助記憶装置読み込み手続きの一実施例を示すフローチャートである。まずステップ８０１ではパーティション管理情報読み込みフラグ１０７を取得する。
【００４１】
次にステップ８０２ではステップ８０１で取得したパーティション管理情報読み込みフラグの値が１と等しいかどうか判断する。１と等しい場合には、パーティション管理情報がメモリに読み込まれていると判断してステップ８０３を実行する。１と等しくない場合には、パーティション管理情報がメモリに読み込まれていないと判断して、ステップ８１０を実行する。
【００４２】
ステップ８０２でパーティション管理情報読み込みフラグの値が１と等しいと判断した場合を説明する。まずステップ８０３を実行する。ステップ８０３では一時変数Ｎの値を１に設定する。
【００４３】
次にステップ８０４では、Ｎ番目のパーティションテーブル２０１（Ｎ）の開始位置２０４（Ｎ）と終了位置２０６（Ｎ）を取得する。次にステップ８０５では、補助記憶装置読み込み手続きの引数として渡されたブロック番号（読み出しアドレスに相当）が、ステップ８０４で取得した開始位置２０４（Ｎ）以上で、かつ終了位置２０６（Ｎ）以下であるか判断するために比較する。即ち、引数として渡されたブロック番号が対応するセクタがＮ番目のパーティションに含まれているかどうかを判断するために比較する。
【００４４】
次にステップ８０６では、引数のブロック番号に対応するセクタがＮ番目のパーティションに含まれているかどうかを判断し、含まれている場合にはステップ８０７を実行する。含まれていない場合には、別のパーティションに含まれているかどうかを検査するためにステップ８１１を実行する。
【００４５】
ステップ８０６で引数のブロック番号に対応するセクタがＮ番目のパーティションに含まれている場合を説明する。まずステップ８０７の１を実行し、パーティション内容識別子管理情報１１７のシステム名称３０１とシステム名称情報１１６が対応する列を見つける。ステップ８０７の２では、ステップ８０７の１で見つけた列に対応するパーティション内容識別子１２１を取得して一時変数Ｐに設定する。ステップ８０７の３では、ステップ８０７の１で見つけた列に対応するライセンスフラグ１２２を取得して一時変数Ｌに設定する。
【００４６】
次にステップ８０８では、Ｎ番目のパーティションテーブル２０１（Ｎ）のパーティション内容識別子２０５（Ｎ）を取得して一時変数Ｐと比較する。次にステップ８０９では、ステップ８０８でパーティション内容識別子２０５（Ｎ）と一時変数Ｐを比較した結果、識別子が一致するかどうかを判断する。識別子が一致した場合にはライセンスが許可されているかどうかを判断するためステップ８１４を実行する。識別子が一致しない場合にはライセンス管理の対象ではないと判断して、補助記憶装置からデータを読み込むためにステップ８１０を実行する。
【００４７】
ステップ８０９で識別子が一致すると判断した場合を説明する。まずステップ８１４ではステップ８０９で一致したパーティション識別子に対してライセンスが許可されているかどうかを判断するために、ライセンスフラグの値を格納した一時変数Ｌの値を調べる。一時変数Ｌの値が１の場合には、ライセンスがあると判断して補助記憶装置からデータを読み込むためにステップ８１０を実行する。ライセンスがないと判断した場合には補助記憶装置からデータを読み込む処理を中止するためにステップ８１３を実行する。
【００４８】
ステップ８１４でライセンスがあると判断した場合、ステップ８０２でパーティション管理情報がメモリに読み込まれていないと判断した場合及びステップ８０９でライセンス管理の対象ではないと判断した場合を説明する。
【００４９】
まずステップ８１０では補助記憶装置からブロック番号に対応するセクタのデータをメモリに読み込み、補助記憶装置読み込み手続きを呼び出し元の手続きに制御を移す。ステップ８０６で引数のブロック番号に対応するセクタがＮ番目のパーティションに含まれていない場合を説明する。
【００５０】
まずステップ８１１では一時変数Ｎに１を加えた値を一時変数Ｎに設定する。次にステップ８１２では一時変数Ｎの値が４より大きい値かどうかを判断する。一時変数Ｎの値が４より大きい場合には、すべてのパーティションテーブルを検査したことを示すので、補助記憶装置からデータを読み込む処理を中止するためにステップ８１３を実行する。一時変数Ｎの値が４より大きくない場合には、別のパーティションテーブルを調べるためにステップ８０４を実行する。
【００５１】
ステップ８１２で一時変数Ｎの値が４より大きい値と判断した場合、ステップ８１４で一時変数Ｌの値が１ではないと判断した場合を説明する。まずステップ８１３を実行する。ステップ８１３では、補助記憶装置読み込み手続き１１９を呼び出した手続きに、データの読み込みに失敗することを意味する値を返す。
【００５２】
従来ＯＳライセンスがない計算機にＯＳインストール済みの補助記憶装置を接続した場合等には、ライセンスのない計算機でＯＳが動作していたのに対し、以上のような本実施例によれば、パーティション内容識別子管理情報に、ライセンス管理対象ＯＳのファイルシステムが使用するパーティション内容識別子及びライセンス有無を示すライセンスフラグを格納し、計算機システムが補助記憶装置からパーティション管理情報を読み込んでからＯＳブートするまでに該パーティション内容識別子管理情報に基づきライセンスの有無を判断することにより、ライセンスのない計算機でＯＳが動作することを防ぐことが出来る。
【００５３】
また、複数のＯＳを一つの補助記憶装置にインストールして、計算機の使用用途によりＯＳを使い分けることが出来る。
【００５４】
【発明の効果】
本発明によればライセンスのないＯＳを計算機で動作させることを防ぐことが出来る。
【図面の簡単な説明】
【図１】本発明の一実施例における計算機システムのブロック図である。
【図２】本発明の一実施例におけるパーティション管理情報の一例を示す図である。
【図３】本発明の一実施例におけるパーティション内容識別子管理情報の一例を示す図である。
【図４】本発明の一実施例におけるＯＳブート開始までの概略処理フローの一例を示すフローチャートである。
【図５】本発明の一実施例におけるシステム起動手続きの一例を示すフローチャートである。
【図６】本発明の一実施例におけるマスターブートストラップローダの一例を示すフローチャートである。
【図７】本発明の一実施例におけるライセンス判断手続き１１８の一例を示すフローチャートである。
【図８】本発明の一実施例における補助記憶装置読み込み手続きの一例を示すフローチャートである。
【符号の説明】
１００  計算機システム
１０１  プロセッサ
１０２  メモリ
１０３  Ｉ／Ｏ装置
１０４  バス
１０５  補助記憶装置
１０６  不揮発性メモリ
１０７  パーティション管理情報読み込みフラグ
１０９  パーティション管理情報
１１０  マスターブートストラップローダ
１１１  パーティション
１１２  ＯＳブート手続き
１１６  システム名称情報
１１７  パーティション内容識別子管理情報
１１８  ライセンス判断手続き
１１９  補助記憶装置読み込み手続き
１２０  システム起動手続き
１２１  パーティション内容識別子
１２２  ライセンスフラグ
２０１  パーティションテーブル
２０２  マジックナンバー
２０３  起動フラグ
２０４  開始位置
２０５  パーティション内容識別子
２０６  終了位置
２０７  サイズ
３０１  システム名称
４０２〜４０３  ＯＳブート開始までの概略処理フローの処理ステップ
５０１〜５０４  システム起動手続きの処理ステップ
６０１〜６０９  マスターブートストラップローダの処理ステップ
７０１〜７０８  ライセンス判断手続きの処理ステップ
８０１〜８１４  補助記憶装置読み込み手続き１１９の処理ステップ
【図１】
0003869716.tif 000002
【図２】
0003869716.tif 000003
【図３】
0003869716.tif 000004
【図４】
0003869716.tif 000005
【図５】
0003869716.tif 000006
【図６】
0003869716.tif 000007
【図７】
0003869716.tif 000008
【図８】
0003869716.tif 000009