(57)【要約】      （修正有）【課題】オペレーティング・システムを管理するための方法、装置、及びコンピュータ命令を提供する。【解決手段】論理パーティション・データ処理システムにおけるハードウェアに対するアクセスに関して登録することを求めるオペレーティング・システムからのリクエストを、その論理パーティション・データ処理システムが受ける５００。リクエストは、そのオペレーティング・システムに対するキー・コードを含む。リクエストを受けたことに応答して、そのオペレーティング・システムが承認済みのオペレーティング・システムであるかどうかに関する決定が、そのキー・コードを使用して行われる５０４。そのオペレーティング・システムが承認済みのオペレーティング・システムである場合、そのオペレーティング・システムは登録される５０８。そうでない場合、そのオペレーティング・システムは終了させられる５１０。【選択図】図５
2005276218.tif 000002
【特許請求の範囲】
【請求項１】
マルチパーティション・データ処理システムにおいてオペレーティング・システムを管理するための方法であって、
前記マルチパーティション・データ処理システムにおけるハードウェアに対するアクセスに関して登録するために、前記オペレーティング・システムに対するキー・コードを含むリクエストを、前記マルチパーティション・データ処理システムにおけるオペレーティング・システムから受けるステップと、
前記リクエストを受けたことに応答して、前記オペレーティング・システムが承認済みのオペレーティング・システムであるかどうかを、前記キー・コードを使用して決定するステップと、
前記オペレーティング・システムが承認済みのオペレーティング・システムである場合、前記オペレーティング・システムを登録するステップと、
含む、方法。
【請求項２】
前記オペレーティング・システムが未承認のオペレーティング・システムである場合、前記オペレーティング・システムを終了させるステップを更に含む、請求項１に記載の方法。
【請求項３】
前記決定するステップが、
前記キー・コードを、承認済みのオペレーティング・システムに対する一組のキー・コードに比較するステップと、
前記キー・コードと前記一組のキー・コードにおけるいずれかのキー・コードとの間に一致が存在するかどうかを決定するステップと、
を含む、請求項１に記載の方法。
【請求項４】
前記一組のキー・コードがパーティション・プロファイルに置かれる、請求項３に記載の方法。
【請求項５】
前記一組のキー・コードがハードウェア管理コンソールを通して定義される、請求項３に記載の方法。
【請求項６】
前記パーティション・プロファイルが不揮発性メモリに記憶される、請求項４に記載の方法。
【請求項７】
前記オペレーティング・システムに対する前記キー・コードが前記オペレーティング・システムに組み込まれ、前記キー・コードが一意的なキー・コードである、請求項１に記載の方法。
【請求項８】
前記受けるステップ、前記決定するステップ、及び前記登録するステップが前記プラットフォーム・ファームウェアにおいて遂行される、請求項１に記載の方法。
【請求項９】
ハードウェアをアクセスするためのコールを受けたことに応答して、前記オペレーティング・システムが登録されているかどうかを決定するステップと、
前記ハードウェアをアクセスするための前記コールを受けたことに応答して、前記コールが前記オペレーティング・システムを設定するために必要であるかどうかを決定するステップと、
前記オペレーティング・システムが登録されていない場合および前記コールが前記オペレーティング・システムを設定するために必要でない場合、前記オペレーティング・システムを終了させるステップと、
を更に含む、請求項１に記載の方法。
【請求項１０】
オペレーティング・システムを管理するためのデータ処理システムであって、
前記マルチパーティション・データ処理システムにおけるハードウェアに対するアクセスに関して登録するために、前記オペレーティング・システムに対するキー・コードを含むリクエストを、前記マルチパーティション・データ処理システムにおけるオペレーティング・システムから受けるための受取り手段と、
前記リクエストを受けたことに応答して、前記オペレーティング・システムが承認済みのオペレーティング・システムであるかどうかを、前記キー・コードを使用して決定するための決定手段と、
前記オペレーティング・システムが承認済みのオペレーティング・システムである場合、前記オペレーティング・システムを登録するための登録手段と、
含む、データ処理システム。
【請求項１１】
前記オペレーティング・システムが未承認のオペレーティング・システムである場合、前記オペレーティング・システムを終了させるための終了手段を更に含む、請求項１０に記載のデータ処理システム。
【請求項１２】
前記決定手段が、
前記キー・コードを、承認済みのオペレーティング・システムに対する一組のキー・コードに比較するための比較手段と、
前記キー・コードと前記一組のキー・コードにおけるいずれかのキー・コードとの間に一致が存在するかどうかを決定するための手段と、
を含む、請求項１０に記載のデータ処理システム。
【請求項１３】
前記一組のキー・コードがパーティション・プロファイルに置かれる、請求項１２に記載のデータ処理システム。
【請求項１４】
前記一組のキー・コードがハードウェア管理コンソールを通して定義される、請求項１２に記載のデータ処理システム。
【請求項１５】
前記パーティション・プロファイルが不揮発性メモリに記憶される、請求項１３に記載のデータ処理システム。
【請求項１６】
前記オペレーティング・システムに対する前記キー・コードが前記オペレーティング・システムに組み込まれ、前記キー・コードが一意的なキー・コードである、請求項１０に記載のデータ処理システム。
【請求項１７】
前記受取り手段、前記決定手段、及び前記登録手段が前記プラットフォーム・ファームウェアにおいて遂行される、請求項１０に記載のデータ処理システム。
【請求項１８】
前記決定手段は第１決定手段であり、
ハードウェアをアクセスするためのコールを受けたことに応答して、前記オペレーティング・システムが登録されているかどうかを決定するための第２決定手段と、
前記ハードウェアをアクセスするための前記コールを受けたことに応答して、前記コールが前記オペレーティング・システムを設定するために必要であるかどうかを決定するための第３決定手段と、
前記オペレーティング・システムが登録されていない場合および前記コールが前記オペレーティング・システムを設定するために必要でない場合、前記オペレーティング・システムを終了させるための終了手段と、
を更に含む、請求項１０に記載のデータ処理システム。
【請求項１９】
オペレーティング・システムを管理するための、コンピュータ可読媒体におけるコンピュータ・プログラムであって、コンピュータに、
前記マルチパーティション・データ処理システムにおけるハードウェアに対するアクセスに関して登録するために、前記オペレーティング・システムに対するキー・コードを含むリクエストを、前記マルチパーティション・データ処理システムにおけるオペレーティング・システムから受けるための第１ステップと、
前記リクエストを受けたことに応答して、前記オペレーティング・システムが承認済みのオペレーティング・システムであるかどうかを、前記キー・コードを使用して決定するための第２ステップと、
前記オペレーティング・システムが承認済みのオペレーティング・システムである場合、前記オペレーティング・システムを登録するための第３ステップと、
を実行させるためのコンピュータ・プログラム。
【請求項２０】
前記オペレーティング・システムが未承認のオペレーティング・システムである場合、前記オペレーティング・システムを終了させるための第４ステップを更にコンピュータに実行させるための、請求項１９に記載のコンピュータ・プログラム。
【請求項２１】
前記第２ステップが、
前記キー・コードを、承認済みのオペレーティング・システムに対する一組のキー・コードに比較するための第１サブステップと、
前記キー・コードと前記一組のキー・コードにおけるいずれかのキー・コードとの間に一致が存在するかどうかを決定するための第２サブステップと、
を含む、請求項１９に記載のコンピュータ・プログラム。
【請求項２２】
前記一組のキー・コードがパーティション・プロファイルに置かれる、請求項２１に記載のコンピュータ・プログラム。
【請求項２３】
前記一組のキー・コードがハードウェア管理コンソールを通して定義される、請求項２１に記載のコンピュータ・プログラム。
【請求項２４】
前記パーティション・プロファイルが不揮発性メモリに記憶される、請求項２２に記載のコンピュータ・プログラム。
【請求項２５】
前記オペレーティング・システムに対する前記キー・コードが前記オペレーティング・システムに組み込まれ、前記キー・コードが一意的なキー・コードである、請求項１９に記載のコンピュータ・プログラム。
【請求項２６】
前記第１ステップ、前記第２ステップ、及び前記第３ステップが前記プラットフォーム・ファームウェアにおいて遂行される、請求項１９に記載のコンピュータ・プログラム。
【請求項２７】
ハードウェアをアクセスするためのコールを受けたことに応答して、前記オペレーティング・システムが登録されているかどうかを決定するための第４ステップと、
前記ハードウェアをアクセスするための前記コールを受けたことに応答して、前記コールが前記オペレーティング・システムを設定するために必要であるかどうかを決定するための第５ステップと、
前記オペレーティング・システムが登録されていない場合および前記コールが前記オペレーティング・システムを設定するために必要でない場合、前記オペレーティング・システムを終了させるための第６ステップと、
を更に含む、請求項１９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的云えば、データ処理システムの改良に関し、特に、データを処理するための方法、装置、及びコンピュータ命令に関するものである。更に詳しく云えば、本発明は、論理パーティション・データ処理システムにおいてオペレーティング・システムを管理するための方法、装置、及びコンピュータ命令に関するものである。
【背景技術】
【０００２】
インターナショナル・ビジネス・マシーンズ社から入手可能な IBMeServer P690、ヒューレット・パッカード社から入手可能な DHP9000 Superdome Enterprise Server 及びサン・マイクロシステムズ社から入手可能なSunfire 15K サーバのような益々大型の対称マルチプロセッサ・データ処理システムは、単一の大型データ処理システムとして使用されてはいない。その代わり、これらのタイプのデータ処理システムはパーティション化され、小型システムとして使用される。これらのシステムは、マルチパーティション・イネーブルド・システムとして構成される。換言すれば、単一の物理データ処理システムが複数のパーティションを有し、各パーティションがオペレーティング・システムを有する。これらのパーティションは同時に実行することが可能である。
【０００３】
パーティションが論理的方法で作られるとき、これらのシステムは、論理パーティション(ＬＰＡＲ)データ処理システムとも呼ばれる。データ処理システムにおける論理パーティション機能は、単一のオペレーティング・システムまたは複数の異種オペレーティング・システムの複数コピーが単一のデータ処理システム・プラットフォームのおいて同時に稼動することを可能にする。オペレーティング・システムのイメージが稼動するパーティションは、プラットフォーム資源の非オーバラップ・サブセットを割り当てられる。これらのプラットフォームの割り振り可能な資源は、割り込み管理領域、システム・メモリの領域、及び入出力（Ｉ／Ｏ）アダプタ・バス・スロットを有する１つまたは複数の体系的に異なるプロセッサを含む。パーティションの資源は、プラットフォームのファームウェアによってオペレーティング・システムのイメージに表示される。
【０００４】
１つの論理パーティションにおけるソフトウェア・エラーが他のいずれのパーティションにおける正しいオペレーションにも影響を与えることがないように、各異なるオペレーティング・システム、またはプラットフォームにおいて稼動するオペレーティング・システムのイメージが相互に保護される。この保護は、プラットフォーム資源のばらばらなセットを各オペレーティング・システムのイメージによって直接に管理されるように割り振ることによって、及び、種々のイメージが、そのイメージに割り振られていないすべての資源を制御することができないことを保証するための機構を提供することによって、施される。更に、オペレーティング・システムの割り振られた資源を制御するときのソフトウェア・エラーが、他のいずれのイメージの資源にも影響を与えないようにされる。従って、オペレーティング・システムまたは各異なるオペレーティング・システムの各イメージがプラットフォームにおける異なるセットの割り振り可能な資源を直接に制御する。
【０００５】
論理パーティション・データ処理システムにおけるハードウェア資源に関していえば、これらの資源は種々のパーティション間で無秩序に共用される。これらの資源は、例えば、入出力（Ｉ／Ｏ）アダプタ、メモリＤＩＭＭ、不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）、及びハードディスク・ドライブを含み得る。ＬＰＡＲデータ処理システムにおける各パーティションは、そのデータ処理システム全体をパワー・サイクルすることを必要とせずに何度でもブートすることが可能であり、シャット・ダウンすることも可能である。
【０００６】
現在、システム管理者は、論理パーティション・データ処理システムのためのオペレーティング・システムをロードすることができるが、そのオペレーティング・システムが不正なまたは未承認のオペレーティング・システム、即ち、不法に修正されたオペレーティング・システムであるかどうかを知ることができない。複数のオペレーティング・システムを同時に稼動することを可能にされた論理パーティション・データ処理システムでは、不正なまたは未承認のオペレーティング・システムがロード及び実行されることを許されないことが重要である。この要件は、同時マルチスレッディング（ＳＭＴ）及びサブプロセッサ・パーティショニング（ＳＰＰ）をサポートするオペレーティング・システムにとって特に重要である。未承認のオペレーティング・システムがロードすることを許されない場合、このオペレーティング・システムは、プラットフォーム・ファームウェアへのコールを可能にする十分な自動特権レベルを有する。
【０００７】
これらの特権によって、未承認のオペレーティング・システムがそのシステムに侵入し、悪くすると、サービス・アタックの試みを跳ね除けることによって資源の損失を生じさせることになるかもしれない。未承認のオペレーティング・システムは、孤立したプロセッサを使用せずにプロセッサ機能を共用することがあり、他のパーティションに広範囲に影響を及ぼすことがあるので、未承認のオペレーティング・システムによる問題は、ＳＭＴ及びＳＰＰイネーブルド・システムにおいてはより重大である。
【０００８】
現在、未承認のオペレーティング・システムのローディングを制限する機構は存在しない。従って、論理パーティション・データ処理システムにおける未承認のオペレーティング・システムのローディング及び実行を防ぐための改良された方法、装置、及びコンピュータ命令を有することは有利であろう。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、オペレーティング・システムを管理するための方法、装置、及びコンピュータ命令を提供するものである。
【課題を解決するための手段】
【００１０】
論理パーティション・データ処理システムにおけるハードウェアに対するアクセスに関して登録することを求めるオペレーティング・システムからのリクエストを、その論理パーティション・データ処理システムが受ける。リクエストは、そのオペレーティング・システムに対するキー・コードを含む。リクエストを受けたことに応答して、そのオペレーティング・システムが承認済みのオペレーティング・システムであるかどうかに関する決定が、そのキー・コードを使用して行われる。そのオペレーティング・システムが承認済みのオペレーティング・システムである場合、そのオペレーティング・システムは登録される。そうでない場合、そのオペレーティング・システムは終了させられる。
【発明を実施するための最良の形態】
【００１１】
次に、図面、特に、図１を参照すると、本発明を実施し得るデータ処理システム１００のブロック図が示される。データ処理システム１００は、システム・バス１０６に接続された複数のプロセッサ１０１、１０２、１０３、及び１０４を含む対称マルチプロセッサ（ＳＭＰ）システムである。例えば、データ処理システム１００は、米国ニューヨーク州アーモンクにあるインターナショナル・ビジネス・マシーンズ・コーポレーションの製品であって、ネットワークにおけるサーバとして実装される IBM eServer であってもよい。それとは別に、単一のプロセッサ・システムが使用されてもよい。更に、システム・バス１０６には、メモリ・コントローラ／キャッシュ１０８が接続される。メモリ・コントローラ／キャッシュ１０８は、複数のローカル・メモリ１６０〜１６３に対するインターフェースである。システム・バス１０６には、Ｉ／Ｏバス・ブリッジ１１０が接続され、それはＩ／Ｏバス１１２に対するインターフェースを提供する。メモリ・コントローラ／キャッシュ１０８及びＩ／Ｏバス・ブリッジ１１０は、図示のように、一体化されてもよい。
【００１２】
データ処理システム１００は、論理パーティション（ＬＰＡＲ）データ処理システムである。従って、データ処理システム１００は、同時に実行される複数の異種オペレーティング・システム（または、単一オペレーティング・システムの複数インスタンス）を有することがある。これらの複数オペレーティング・システムの各々は、その中で実行される任意の数のソフトウェア・プログラムを有することが可能であろう。データ処理システム１００は、種々のＰＣＩ  Ｉ／Ｏアダプタ１２０〜１２１、１２８〜１２９、１３６、グラフィックス・アダプタ１４８、及びハード・ディスク・アダプタ１４９が種々の論理パーティションに割り当てられるよう、論理的にパーティション化される。この場合、グラフィックス・アダプタ１４８はディスプレイ装置（図示されてない）に対する接続を提供し、一方、ハード・ディスク・アダプタ１４９はハード・ディスク１５０に対する接続を提供する。
【００１３】
従って、例えば、データ処理システム１００は３つの論理パーティションＰ１、Ｐ２、及びＰ３に分割される。ＰＣＩ  Ｉ／Ｏアダプタ１２０〜１２１、１２８〜１２９、１３６、グラフィックス・アダプタ１４８、及びハード・ディスク・アダプタ１４９の各々、ホスト・プロセッサ１０１〜１０４の各々、及びローカル・メモリ１６０〜１６３からのメモリはそれら３つの論理パーティションの各々に割り当てられる。これらの例では、ローカル・メモリ１６０〜１６３は、デュアル・インライン・メモリ・モジュール（ＤＩＭＭ）の形式を取ってもよい。ＤＩＭＭは、通常は、ＤＩＭＭ毎を基準にパーティションに割り当てられるのではない。その代わり、１つのパーティションが、メモリ全体のうちのプラットフォームにより見られる部分を得るであろう。例えば、プロセッサ１０１、ローカル・メモリ１６０〜１６３からのメモリのある部分、及びＰＣＩ  Ｉ／Ｏアダプタ１２０、１２８、及び１２９が論理パーティションＰ１に割り当てられ、プロセッサ１０２〜１０３、ローカル・メモリ１６０〜１６３からのメモリのある部分、及びＰＣＩ  Ｉ／Ｏアダプタ１２１及び１３６が論理パーティションＰ２に割り当てられ、そしてプロセッサ１０４、ローカル・メモリ１６０〜１６３からのメモリのある部分、グラフィックス・アダプタ１４８、及びハード・ディスク・アダプタ１４９が論理パーティションＰ３に割り当てられてもよい。
【００１４】
データ処理システム１００において実行される各オペレーティング・システムが異なる論理パーティションに割り当てられる。従って、データ処理システム１００において実行される各オペレーティング・システムは、それの各論理パーティション内にあるＩ／Ｏ装置だけをアクセスすることが可能である。従って、例えば、拡張対話式エグゼクティブ（ＡＩＸ）オペレーティング・システムが論理パーティションＰ１内で実行可能であり、ＡＩＸオペレーティング・システムの第２インスタンス(イメージ)が論理パーティションＰ２内で実行可能であり、そして Linux または OS/400 オペレーティング・システムは論理パーティションＰ１内で実行可能である。
【００１５】
Ｉ／Ｏバス１１２に接続されたペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）ホスト・ブリッジ１１４がＰＣＩローカル・バス１１５に対するインターフェースを提供する。多数のＰＣＩ入出力アダプタ１２０〜１２１がＰＣＩ-ＴＯ-ＰＣＩブリッジ１１６、ＰＣＩバス１１８、ＰＣＩバス１１９、Ｉ／Ｏスロット１７０、及びＩ／Ｏスロット１７１を介してＰＣＩバス１１５に接続される。ＰＣＩ-ＴＯ-ＰＣＩブリッジ１１６は、ＰＣＩバス１１８及びＰＣＩバス１１９に対するインターフェースを提供する。ＰＣＩ  Ｉ／Ｏアダプタ１２０及び１２１は、それぞれ、Ｉ／Ｏスロット１７０及び１７１に設けられる。一般的なＰＣＩ実装方法は、４個及び８個のＩ／Ｏアダプタ（即ち、アド・イン・コネクタのための拡張スロット）の間をサポートするであろう。各ＰＣＩ  Ｉ／Ｏアダプタ１２０〜１２１は、データ処理システム１００と、例えば、データ処理システム１００にとってはクライアントである他のネットワーク・コンピュータのような入出力装置との間インターフェースを提供する。
【００１６】
更なるＰＣＩホスト・ブリッジ１２２が更なるＰＣＩバス１２３に対するインターフェースを提供する。ＰＣＩバス１２３は、複数のＰＣＩ  Ｉ／Ｏアダプタ１２８〜１２９に接続される。ＰＣＩ  Ｉ／Ｏアダプタ１２８〜１２９は、ＰＣＩ-ＴＯ-ＰＣＩブリッジ１２４、ＰＣＩバス１２６、ＰＣＩバス１２７、Ｉ／Ｏスロット１７２、及びＩ／Ｏスロット１７３を介してＰＣＩバス１２３に接続される。ＰＣＩ-ＴＯ-ＰＣＩブリッジ１２４は、ＰＣＩバス１２６及びＰＣＩバス１２７に対するインターフェースを提供する。ＰＣＩ  Ｉ／Ｏアダプタ１２８及び１２９は、それぞれ、Ｉ／Ｏスロット１７２及び１７３に設けられる。このように、例えば、モデムまたはネットワーク・アダプタのような更なるＩ／Ｏ装置がＰＣＩ  Ｉ／Ｏアダプタ１２８〜１２９の各々を介してサポートされることも可能である。このように、データ処理システム１００は、複数のネットワーク・コンピュータへの接続が可能である。
【００１７】
Ｉ／Ｏスロット１７４に挿入されたメモリ・マップ・グラフィックス・アダプタ１４８がＰＣＩバス１４４、ＰＣＩ-ＴＯ-ＰＣＩブリッジ１４２、ＰＣＩバス１４１、及びＰＣＩホスト・ブリッジ１４０を介してＩ／Ｏバス１１２に接続される。ハード・ディスク・アダプタ１４９がＩ／Ｏスロット１７５に挿入され、Ｉ／Ｏスロット１７５はＰＣＩバス１４５に接続される。更に、このバス１４５は、ＰＣＩ-ＴＯ-ＰＣＩブリッジ１４２に接続され、そのブリッジ１４２は、ＰＣＩバス１４１によってＰＣＩホスト・ブリッジ１４０に接続される。
【００１８】
ＰＣＩホスト・ブリッジ１３０が、ＰＣＩバス１３１をＩ／Ｏバス１１２に接続するためのインターフェースを提供する。ＰＣＩ  Ｉ／Ｏアダプタ１３６がＩ／Ｏスロット１７６に接続される。そのＩ／Ｏスロット１７６はＰＣＩバス１３３によってＰＣＩ-ＴＯ-ＰＣＩブリッジ１３２に接続される。ＰＣＩ-ＴＯ-ＰＣＩブリッジ１３２はＰＣＩバス１３１に接続される。このＰＣＩバス１３１は、ＰＣＩホスト・ブリッジ１３０をサービス・プロセッサ・メールボックス・インターフェース及びＩＳＡバス・アクセス・パススルー・ロジック１９４及びＰＣＩ-ＴＯ-ＰＣＩブリッジ１３２にも接続する。サービス・プロセッサ・メールボックス・インターフェース及びＩＳＡバス・アクセス・パススルー・ロジック１９４は、ＰＣＩ／ＩＳＡブリッジ１９３を宛先とするＰＣＩアクセスを搬送する。ＮＶＲＡＭストレージ１９２がＩＳＡバス１９６に接続される。サービス・プロセッサ１３５がＰＣＩバス１９５を介してサービス・プロセッサ・メールボックス・インターフェース及びＩＳＡバス・アクセス・パススルー・ロジック１９４に接続される。サービス・プロセッサ１３５は、複数のＪＴＡＧ／Ｉ２Ｃバス１３４を介してプロセッサ１０１〜１０４にも接続される。ＪＴＡＧ／Ｉ２Ｃバス１３４は、ＪＴＡＧ／スキャン・バス（ＩＥＥＥ  １１４９.１参照）及びＰｈｉｌｌｉｐｓＩ２Ｃバスの結合体である。しかし、ＪＴＡＧ／Ｉ２Ｃバス１３４は、その代替として、Ｐｈｉｌｌｉｐｓ Ｉ２Ｃバスのみ、またはＪＴＡＧ／スキャン・バスのみによる置換も可能である。ホスト・プロセッサ１０１、１０２、１０３、及び１０４のＳＰ−ＡＴＴＮ信号は、すべて、サービス・プロセッサの割込み入力信号に結合される。サービス・プロセッサ１３５は、それ自身のローカル・メモリ１９１を有し、ハードウェアＯＰパネル１９０に対するアクセスも行う。
【００１９】
データ処理システム１００が先ず電源投入されるとき、サービス・プロセッサ１３５はＪＴＡＧ／Ｉ２Ｃバス１３４を使用してシステム（ホスト）プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８、及びＩ／Ｏブリッジ１１０に問い合わせを行う。このステップの終了時に、サービス・プロセッサ１３５は、データ処理システム１００に関するインベントリ及びトポロジを理解する。サービス・プロセッサ１３５は、更に、ホスト・プロセッサ１０１〜１０４、メモリ・コントローラ／キャッシュ１０８、及びＩ／Ｏブリッジ１１０に問い合わせを行うことによってわかったすべての素子に関して、組込み自己診断テスト（ＢＩＳＴ）、基本保証テスト（ＢＡＴ）、およびメモリ・テストを実行する。ＢＩＴ、ＢＡＴ、及びメモリ・テスト中に検出された障害に関するすべてのエラー情報がサービス・プロセッサ１３５によって収集され、報告される。
【００２０】
ＢＩＴ、ＢＡＴ、及びメモリ・テスト中に障害があることがわかった素子を取り除いた後でも、依然として、システム資源の有意義な／有効な構成が可能である場合、データ処理システム１００は、実行可能なコードをローカル（ホスト）メモリ１６０〜１６３にロードするように進行することを許容される。そこで、サービス・プロセッサ１３５は、ローカル・メモリ１６０〜１６３にロードされたコードを実行するためにホスト・プロセッサ１０１〜１０４を解放する。ホスト・プロセッサ１０１〜１０４はデータ処理システム１００におけるそれぞれのオペレーティング・システムからのコードを実行するが、サービス・プロセッサ１３５はエラーを監視及び報告するモードに入る。サービス・プロセッサ１３５によって監視される項目のタイプは、例えば、冷却ファンの速度及び操作、温度センサ、電源調整器、並びに、プロセッサ１０１〜１０４、ローカル・メモリ１６０〜１６３、及びＩ／Ｏブリッジ１１０によって報告された回復可能及び回復不能エラーを含む。
【００２１】
サービス・プロセッサ１３５は、データ処理システム１００におけるすべての監視された項目に関するエラー情報を保存及び報告する責任を負っている。更に、サービス・プロセッサ１３５は、エラーのタイプ及び定義された閾値に基づいてアクションを取る。例えば、サービス・プロセッサ１３５は、プロセッサのキャッシュ・メモリに関する過度の回復可能なエラーに抽出し、これが難しい障害を予測するものであることを決定することがある。この決定に基づいて、サービス・プロセッサ１３５は、現在稼動しているセッション時及び将来の初期プログラム・ロード（ＩＰＬ）時に構成解除するためにその資源をマークすることも可能である。なお、ＩＰＬは、時には「ブート」または「ブートストラップ」と呼ばれることもある。
【００２２】
データ処理システム１００は、種々の商業的に入手可能なコンピュータ・システムを使用して実現することが可能である。例えば、データ処理システム１００は、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能な IBM eServer iSeries Model 840 システムを使用して実現することができる。そのようなシステムは、OS/400オペレーティング・システムを使用して論理パーティションをサポートすることが可能である。なお、OS/400 オペレーティング・システムも、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能である。
【００２３】
図１に示されたハードウェアが変更可能なものであることは当業者には明らかであろう。例えば、光ディスク・ドライブ等のような他の周辺装置が、図示のハードウェアに加えて、またはそのハードウェアに代わって使用されてもよい。図示の例は、本発明に関してアーキテクチャ上の限定を暗に示すことを意図するものではない。
【００２４】
図２を参照すると、本発明を実装することが可能である例示的な論理パーティション・プラットフォームのブロック図が示される。論理パーティション・プラットフォーム２００は、例えば、図１におけるデータ処理システム１００として実装することが可能である。論理パーティション・プラットフォーム２００は、パーティション化されたハードウェア２３０、オペレーティング・システム２０２、２０４、２０６、２０８、及びパーティション管理ファームウェア（プラットフォーム・ファームウェア）２１０を含む。オペレーティング・システム２０２、２０４、２０６、及び２０８は、単一のオペレーティング・システムの複数のコピー、または論理パーティション・プラットフォーム２００において同時に稼動する複数の異種のオペレーティング・システムであってもよい。これらのオペレーティング・システムは、ハイパーバイザのような特定のパーティション管理ファームウェアとインターフェースするように設計された OS/400 を使用して実現することが可能である。OS/400 は、これらの実施例では単に１つの例として使用される。もちろん、特定の実現方法次第で、AIX及び Linux のような他のタイプのオペレーティング・システムを使用することも可能である。オペレーティング・システム２０２、２０４、２０６、及び２０８は、パーティション２０３、２０５、２０７、及び２０９に置かれる。ハイパーバイザ・ソフトウェアは、パーティション管理ファームウェア２１０を実現するために使用可能なソフトウェアの一例であり、それは、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能である。ファームウェアは、例えば、リード・オンリ・メモリ（ＲＯＭ）、消去可能プ不正なラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プ不正なラマブルＲＯＭ（ＥＥＰＲＯＭ）、及び不揮発性ランダム・アクセス・メモリ（不揮発性ＲＡＭ）のような、電力がなくても内容を保持するメモリ・チップに記憶された「ソフトウェア」である。
【００２５】
更に、これらのパーティションは、パーティション・ファームウェア２１１、２１３、２１５、及び２１７を有する。パーティション・ファームウェア２１１、２１３、２１５、及び２１７は、初期ブート・ストラップ・コード、ＩＥＥＥ−１２７５スタンダード・オープン・ファームウェア、及びランタイム・アブストラクション・ソフトウェア（ＲＴＡＳ）を使用して実現可能である。なお、ＲＴＡＳは、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能である。パーティション２０３、２０５、２０７、及び２０９がインスタンス化されるとき、ブート・ストラップ・コードのコピーがプラットフォーム・ファームウェア２１０によってパーティション２０３、２０５、２０７、及び２０９にロードされる。しかる後、ブート・ストラップ・コードがオープン・ファームウェア及びＲＴＡＳをロードすることによって、ブート・ストラップ・コードに制御が移される。次に、それらのパーティションに関連した又は割り当てられたプロセッサが、パーティション・ファームウェアを実行するためにそれらのパーティションにメモリのディスパッチされる。
【００２６】
パーティション・ハードウェア２３０は、複数のプロセッサ２３２〜２３８、複数のシステム・メモリ・ユニット２４０〜２４６、複数の入出力（Ｉ／Ｏ）アダプタ２４８〜２６２、及びストレージ・ユニット２７０を含む。プロセッサ２３２〜２３８、メモリ・ユニット２４０〜２４６、ＮＶＲＡＭ２９８、及びＩ／Ｏアダプタ２４８〜２６２の各々が論理パーティション・プラットフォーム２００における複数のパーティションの１つに割り当てられる。なお、それらのパーティションの各々が、オペレーティング・システム２０２、２０４、２０６、及び２０８の１つに対応する。
【００２７】
パーティション管理ファームウェア２１０は、論理パーティション・プラットフォーム２００のパーティション化をもたらし且つ強化するために、パーティション２０３、２０５、２０７、及び２０９に対して多数の機能及びサービスを遂行する。パーティション管理ファームウェア２１０は、基礎ハードウェアと同様のファームウェア実装の仮想マシンである。従って、パーティション管理ファームウェア２１０は、論理パーティション・プラットフォーム２００のすべてのハードウェア資源を仮想化することによって独立のＯＳイメージ２０２、２０４、２０６、及び２０８の同時実行を可能にする。
【００２８】
パーティションにおけるプラットフォーム・エラーの処理のような種々のサービスを提供するためにサービス・プロセッサ２９０を使用することが可能である。これらのサービスは、インターナショナル・ビジネス・マシーンズ・コーポレーションのような製造業者にエラーを報告するようにサービス・エージェントとしても作用することが可能である。種々なパーティションの操作は、ハードウェア管理コンソール２８０を介して制御される。ハードウェア管理コンソール２８０は、種々のパーティションに対する資源の再割り振りを含む種々の機能をシステム管理者が遂行し得る別のデータ処理システムである。
【００２９】
本発明は、未承認のオペレーティング・システムのローディング及び実行を防ぐための改良された方法、装置、及びコンピュータ命令を提供する。この機構は、特に、論理的にパーティション化されたデータ処理システムにおいて有益である。本発明の機構は、パーティションの起動前にキーまたはキー・コードがハードウェア・コンソールを通して入力されることが必要である。このキー・コードは、オペレーティング・システムに含まれたものに適合しなければならない。オペレーティング・システムにおけるキー・コードは図２におけるプラットフォーム・ファームウェア２１０のようなプラットフォーム・ファームウェアに送られる。キー・コードが適合する場合、オペレーティング・システムは、登録すること及びローディングを完了することを許される。そうでない場合、そのオペレーティング・システムは終了させられる。
【００３０】
次に、図３を参照すると、論理パーティション・データ処理システムにおける未承認のオペレーティング・システムのローディング及び実行を防ぐ場合に使用される構成素子を表す図が本発明の好適な実施例に従って示される。この例では、オペレーティング・システム３００、３０２、３０４、及び３０６が存在する。これらのオペレーティング・システムは、図２においてパーティション２０３、２０５、２０７、及び２０９として示されたものと同じである。これらの実施例における各承認されたオペレーティング・システムは、コード内に識別シリアル番号を含む。このシリアル番号はキー・コードとして使用される。明らかなように、キー・コード３０８、３１０、３１２、及び３１４がオペレーティング・システム３００、３０２、３０４、及び３０６内に存在する。
【００３１】
これらのオペレーティング・システムの各々は、ローディング及び登録段階におけるハイパーバイザ３１６のようなプラットフォーム・ファームウェアにそれらのキー・コードを送る。この段階は、ハードウェア資源に対するアクセスを得るために、オペレーティング・システムがそれ自体を１つのパーティションにロードしそしてそれ自体を登録する期間である。これらの例では、ハイパーバイザ３１６は、ロードされるオペレーティング・システムが承認済みのオペレーティング・システムであることを確認するために使用される確認プロセス３１８を含む。
【００３２】
この実施例では、確認プロセス３１８は、承認済みのオペレーティング・システムに対するキー・コードでもって、登録のためにオペレーティング・システムにより供給されたキー・コードをチェックする。これらのキー・コードは、パーティション・プロファイル３２０におけるキー・コード・リスト３２２内に設置される。パーティション・プロファイル３２０は、図１におけるＮＶＲＡＭ１９２のような不揮発性メモリ内に設置される。
【００３３】
オペレーティング・システムによって提供されるキー・コードが有効である場合、ハイパーバイザ３１６はそのオペレーティング・システムを登録するであろうし、ハードウェア資源に対するそれの継続したアクセスを可能にするであろう。オペレーティング・システムによって提供されるキー・コードがキー・コード・リスト３２２におけるものに一致しない場合、そのオペレーティング・システムは終了させられる。
【００３４】
パーティション・プロファイル３２０及びキー・コード・リスト３２２は、これらの実施例ではシステム管理者がＨＭＣに対する適切なアクセスを行うことによって発生される。ＬＰＡＲデータ処理システムにロードされるべき各オペレーティング・システムに対して、キー・コードが入力される。これらのキー・コードは、パーティション・プロファイル３２０におけるキー・コード３２２に記憶される。
【００３５】
オペレーティング・システム３００、３０２、３０４、及び３０６のローディング中、これらのオペレーティング・システムは、それらオペレーティング・システムがハイパーバイザ３１６による登録の前に、初期設定の一部としてハードウェアをアクセスするためにコールを行うであろう。ハイパーバイザ３１６における確認プロセス３１８は、登録が生じる前に、その行われたコールがオペレーティング・システムをロード及び初期設定するために必要であるかどうかを決定する。これらのコールが必要である場合、それらのコールが処理され、ハードウェアに対するアクセスが行われる。そうでない場合、ハードウェアに対するアクセスは阻止され、不必要なハードウェア・コールを行うオペレーティング・システムは終了させられる。
【００３６】
必要なコールの例は、オペレーティング・システムに対してメモリをマップするためのコールを含む。メモリは、資源が機能するように、オペレーティング・システムによってマップされなければならない。論理パーティション・データ処理システムでは、ハイパーバイザのようなプラットフォーム・ファームウェアが、メモリを含むハードウェアを制御する。従って、メモリは、オペレーティング・システムによってこのメモリの使用を可能にするために、論理アドレスに対する物理アドレスを得るようにマップされなければならない。必要なコールに関するもう１つの例はＩ／Ｏに対するものを含む。Ｉ／Ｏ資源は、外界と通信を行うために必要である。Ｉ／Ｏアダプタの物理アドレスを、オペレーティング・システムにより使用される論理アドレスにマップするためには、同様のマッピングが必要である。
【００３７】
対照的に、不必要なコールは、時刻または仮想端末サポートのような項目をセットまたは読み出すためのコールを含む。
【００３８】
このように、未承認のオペレーティング・システムは、登録が生じ得るポイントにオペレーティング・システムを初期設定するために必要なハードウェア以外のハードウェアをアクセスしないようにされる。登録を回避しようとする未承認のオペレーティング・システムは、この特性を使用して終了させられる。
【００３９】
次に図４を参照すると、本発明の好適な実施例に従って、承認済みのオペレーティング・システムのリストを作成するためのプロセスのフローチャートが示される。図４に示されたプロセスは、図２に示されたハードウェア管理コンソール２８０のようなハードウェア管理コンソールにおいて使用するためのソフトウェアとして実装可能である。
【００４０】
プロセスは、キー・コードを追加または変更するためのリクエストを受けることによって始まる（ステップ４００）。次に、キー・コードに関するユーザ入力を受け取る(ステップ４０２)。ステップ４０２における入力は、ハードウェア管理コンソールに設けられたグラフィカル・ユーザ・インターフェースを通して生じることが可能である。これらのキー・コードは、パーティション・プロファイルを作成または修正する操作の一部分として入力することも可能である。しかる後、キー・コードはパーティション・プロファイルに保存される(ステップ４０４)。次に、更なるキー・コードの追加または変更が存在するかどうかに関する決定が行われる(ステップ４０６)。更なるキー・コードの追加または変更が存在しない場合、パーティション・プロファイルが保存され(ステップ４０８)、しかる後、プロセスは終了する。
【００４１】
ステップ４０６を再び参照すると、更なるキー・コードの追加または変更が存在する場合、プロセスは上述のステップ４０２に戻る。
【００４２】
これらの実施例では、パーティション・プロファイルは、図１におけるＮＶＲＡＭ１９２のような不揮発性メモリにデータ構造として保存される。このプロファイル情報は、ＬＰＡＲデータ処理システムがブート・アップするかまたは開始されるとき、プラットフォーム・ファームウェアによって使用される。この情報によって、本発明の機構は、未承認のオペレーティング・システムがロードまたは実行されないようにすることが可能である。
【００４３】
次に、図５を参照すると、本発明の好適な実施例に従って、オペレーティング・システムからの登録リクエストを処理するためのプロセスのフローチャートが示される。図５に示されたプロセスは、図３のハイパーバイザ３１６における確認プロセス３１８のようなプラットフォーム・ファームウェアにおいて実施することが可能である。
【００４４】
プロセスは、オペレーティング・システムから登録リクエストを受けることによって開始する(ステップ５００)。そこで、その登録リクエストにキー・コードが存在するかどうかに関する決定が行われる(ステップ５０２)。キー・コードが存在する場合、登録リクエストにおけるキー・コードがキー・コード・リストに比較される(ステップ５０４)。そのキー・コード・リストは、図４に示されたプロセスのようなプロセスを介して生成し得るリストである。
【００４５】
次に、その比較において一致があるかどうかに関する決定が行われる(ステップ５０６)。一致が存在する場合、そのオペレーティング・システムは登録され(ステップ５０８)、しかる後、プロセスは終了する。
【００４６】
ステップ５０２に説明を戻すと、登録リクエストにキー・コードが存在しない場合、オペレーティング・システムは終了させられる(ステップ５１０)。次に、セキュリティ・メッセージが送られ(ステップ５１２)、しかる後、プロセスは終了する。このプロセスは、ロードすることを試みたオペレーティング・システムに関する情報、その試みが行われた時間、及びその未承認のオペレーティング・システムのソースを識別するために必要な他の情報を含んでもよい。ステップ５０６において、オペレーティング・システムから受けたキー・コードとキー・コード・リストにおけるキー・コードとの間に一致が存在しない場合、プロセスは上述のステップ５１０に進む。
【００４７】
次に、図６を参照すると、本発明の好適な実施例に従って、ハードウェア・サービスを求めるリクエストを処理するためのプロセスのフローチャートが示される。図６に示されたプロセスは、図３のハイパーバイザ３１６における確認プロセスのようなプラットフォーム・ファームウェアにおいて実施することが可能である。
【００４８】
プロセスは、オペレーティング・システムからのハードウェア・サービスを求めるコールを受けることによって開始する（ステップ６００）。次に、そのオペレーティング・システムが登録されているかどうかに関する決定が行われる（ステップ６０２）。これらの実施例では、登録されたオペレーティング・システムは、図５に示されたプロセスを介したオペレーティング・システムのような承認済みのオペレーティング・システムとして確認されたものである。
【００４９】
そのオペレーティング・システムが登録されていない場合、ハードウェア・サービスが、そのオペレーティング・システムを設定することを要求されているかどうかに関する決定が行われる（ステップ６０４）。ステップ６０４では、要求されるハードウェア・サービスは、そのオペレーティング・システムがプラットフォーム・ハードウェアによりそれ自体を登録する準備のできているポイントにそのオペレーティング・システムがロードおよび初期設定するために必要なサービスである。あるハードウェア・サービスは、このポイントの前に、正規の操作のためにオペレーティング・システム自体をロードおよび初期設定するようそのオペレーティング・システムによって要求される。必要なハードウェア・サービスの例は、オペレーティング・システムによる使用のためにメモリ資源およびＩ／Ｏ資源をマップするためのサービスである。オペレーティング・システムを設定することをハードウェア・サービスが要求される場合、ハードウェア・サービスを提供するためのコールが処理され（ステップ６０６）、しかる後、プロセスは終了する。
【００５０】
ステップ６０２に説明を戻すと、オペレーティング・システムが登録されている場合、処理は終了する。ステップ６０４において、オペレーティング・システムを設定することまたは初期設定を完了することをハードウェア・サービスが要求されない場合、オペレーティング・システムは終了させられる（ステップ６０８）。次に、セキュリティ・メッセージが送られ（ステップ６１０）、しかる後、プロセスが終了する。このように、このプロセスは、プラットフォーム・ファームウェアによる登録がなければオペレーティング・システムがロードおよび実行しないようにする。
【００５１】
したがって、本発明は、未承認のまたは不正な不正な・オペレーティング・システムのローディングを防ぐための改良された方法、装置、およびコンピュータ命令を提供する。この特性は、オペレーティング・システムが承認されているかどうかを確認する場合に使用するために、キー・コードまたは他の何らかの一意的な識別子がそのオペレーティング・システムによって送られることを要求することによって提供される。承認されたキー・コードは維持され、オペレーティング・システムに与えられたキー・コード比較される。一致が生じる場合、オペレーティング・システムは実行を続けることを許される。そうでない場合、オペレーティング・システムは終了させられる。
【００５２】
十分に機能するデータ処理システムに関連して本発明を説明したが、本発明のプロセスが、命令のコンピュータ可読媒体という形式および種々の形式で分配可能であること、および本発明が、その分配を行うために実際に使用される信号保持媒体の特定タイプに関係なく等しく適用することは、当業者には明らかであろう。コンピュータ可読媒体の例は、フロッピ・ディスク、ハードディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭのような記録可能タイプの媒体、および、ディジタルおよびアナ不正な通信リンク、例えば、無線周波数および光波伝送のような伝送形式を使用する有線または無線通信リンクのような伝送タイプの媒体を含む。コンピュータ可読媒体は、特定のデータ処理システムにおいて実際に使用するためにデコードされるコード化フォーマットの形式をとることが可能である。
【００５３】
本発明の説明は、図解および記述を目的として行われたものであり、網羅的であることおよび開示された形式における発明に限定されることを意図するものではない。当業者には、多くの修正および変更が明らかであろう。実施例は、発明の原理、実用的な応用を最もよく説明するために、及び意図された特定の用途に適する種々な修正を伴う種々の実施例に関して当業者が本発明を理解することを可能にするために、選択及び説明された。
【図面の簡単な説明】
【００５４】
【図１】本発明を実施し得るデータ処理システムのブロック図である。
【図２】本発明を実施し得る例示的な論理パーティション・プラットフォームのブロック図である。
【図３】本発明の好適な実施例に従って、論理パーティション・データ処理システムにおいて未承認のオペレーティング・システムのローディング及び実行を防ぐ場合に使用される構成素子を示す図である。
【図４】本発明の好適な実施例に従って、未承認のオペレーティング・システムのリストを作成するためのプロセスのフローチャートである。
【図５】本発明の好適な実施例に従って、オペレーティング・システムからの登録リクエストを処理するためのプロセスのフローチャートである。
【図６】本発明の好適な実施例に従って、ハードウェア・サービスを求めるリクエストを処理するためのプロセスのフローチャートである。
【図１】
2005276218.tif 000003
【図２】
2005276218.tif 000004
【図３】
2005276218.tif 000005
【図４】
2005276218.tif 000006
【図５】
2005276218.tif 000007
【図６】
2005276218.tif 000008