(57)【要約】【課題】データ完全性を保証するためのコンピュータで実行可能な方法、装置、及びコンピュータ使用可能なプログラム・コードを示す。【解決手段】パーティションは、該パーティションの外部のソースから実行可能ファイルを実行する要求を受け取る。メモリー領域がパーティション内に作られる。パーティション又はサービス・インターフェースが認証判定を行う。肯定認証判定があったならば、その要求に基いてパーティションはメモリー領域の実行可能ファイルを実行する。【選択図】図１
2007299400.tif 000002
【特許請求の範囲】
【請求項１】
実行可能ファイルを実行するためのコンピュータで実行可能な方法であって、
ソース・パーティション内で動作しているエンティティーから前記実行可能ファイルを実行する要求を受け取るステップと、
前記要求を受け取ったことに応答して、ターゲット・パーティション内にメモリー領域生成するステップと、
前記要求を受け取ったことに応答して、認証判定を行うステップと、
前記認証判定が肯定判定である場合に、前記要求に基いて前記メモリー領域内の前記実行可能ファイルを実行するステップであって、前記要求はターゲット・パーティション資源にアクセスする要求である、ステップと、
を含む方法。
【請求項２】
前記ソース・パーティション内で動作している第２エンティティーから前記実行可能ファイルを実行する第２要求を受け取るステップと、
前記第２要求を受け取ったことに応答して、第２認証判定を行うステップと、
前記第２認証判定が否定判定の場合に、前記要求を拒否するステップと、
を更に含む、請求項１に記載のコンピュータで実行可能な方法。
【請求項３】
少なくとも１つのコマンドが前記メモリー領域に格納される，請求項２に記載のコンピュータ実行される方法。
【請求項４】
前記エンティティーからの要求を認証するステップを更に含み、
前記要求はターゲット・パーティションに関連付けられた前記実行可能ファイルへのアクセスを求めるものであり、前記生成するステップは認証するステップに応答してのものである、
請求項１に記載のコンピュータで実行可能な方法。
【請求項５】
前記要求を認証するステップに応答して、前記実行可能ファイルを前記メモリー領域に解読するステップを更に含み、
前記実行可能ファイルは前記ターゲット・パーティションに関連付けられた記憶装置に格納される、
請求項４に記載のコンピュータで実行可能な方法。
【請求項６】
前記ファイルの実行はプロセスを形成し、
前記プロセスと前記エンティティーとの間に通信チャネルを設定するステップを更に含む、
請求項５に記載のコンピュータで実行可能な方法。
【請求項７】
前記ファイルの実行はプロセスを形成し、
前記プロセスと前記エンティティーとの間に通信チャネルを設定するステップを更に含む、請求項４に記載のコンピュータで実行可能な方法。
【請求項８】
実行可能ファイルを実行するための、コンピュータ使用可能な媒体に含まれるコンピュータ使用可能なコンピュータ・プログラムであって、
ソース・パーティション内で動作しているエンティティーから前記実行可能ファイルを実行する要求を受け取るためのコンピュータ使用可能なプログラム・コードと、
前記要求を受け取ったことに応答して、ターゲット・パーティション内にメモリー領域を作るステップと、
前記要求を受け取ったことに応答して、認証判定を行うステップと、
前記認証判定が肯定判定である場合に、前記要求に基いて前記メモリー領域の前記実行可能ファイルを実行するステップであって、前記要求はターゲット・パーティション資源にアクセスする要求である、ステップと、
を前記コンピュータに実行させるための、コンピュータ・プログラム。
【請求項９】
バスと、
前記バスに接続されて、コンピュータ使用可能なコンピュータ・プログラムが置かれている記憶装置と、
前記バスに接続された通信ユニットと、
前記バスに接続された処理ユニットと
を含むデータ処理システムであって、前記処理ユニットは、実行可能ファイルを実行するために前記コンピュータ使用可能なコンピュータ・プログラムを稼動させ、前記処理ユニットは、更に、ソース・パーティション内で動作しているエンティティーから前記実行可能ファイルを実行する要求を受け取り、前記要求を受け取ったことに応答して、ターゲット・パーティション内にメモリー領域を作り、前記要求を受け取ったことに応答して、認証判定を行い、前記認証判定が肯定判定である場合に、前記要求に基いて前記メモリー領域の前記実行可能ファイルを実行するために、前記コンピュータ使用可能なコンピュータ・プログラムを稼動させ、前記要求はターゲット・パーティション資源にアクセスする要求である、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ完全性に関する。特に、本発明は、被保全コードのコピーや被保全コードの書換えを防止するためのコンピュータで実行可能な方法、装置、及びコンピュータ使用可能なプログラム・コードに関する。
【背景技術】
【０００２】
ＩＢＭ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）社から入手し得るＩＢＭｅＳｅｒｖｅｒ（ＩＢＭ社の登録商標）Ｐ６９０、ヒューレット・パッカード・カンパニーから入手し得るＤＨＰ９０００  Ｓｕｐｅｒｄｏｍｅ  Ｅｎｔｅｒｐｒｉｓｅ  Ｓｅｒｖｅｒ、及びサン・マイクロシステムズ・インクから入手し得るＳｕｎｆｉｒｅ（商標）１５Ｋサーバーのような、ますます大きくなる対称型マルチ・プロセッサ・データ処理システムはシングル大規模データ処理システムとしては使われていない。これらのデータ処理システムは、夫々の会社の商標登録された名称である。しばしば、オペレータはこのタイプのデータ処理システムを分割して数個の論理システムを形成する。これらの論理システムは論理分割（ｌｏｇｉｃａｌ  ｐａｒｔｉｔｉｏｎｅｄ（ＬＰＡＲ））データ処理システムとして知られている。多くのデータ処理システムは、論理分割機能と共に使用されたとき、単一のオペレーティング・システムの複数のコピー又は複数の異種オペレーティング・システムを単一のデータ処理システム・プラットフォーム上で同時に動作させることを許す。分割マネージャは、プラットフォームの資源の重複しないサブセットを、その中でオペレーティング・システム・イメージが動作するパーティションに割り当てる。これらのプラットフォーム割り当て可能な資源は、割り込み管理領域を伴なう１つ以上のアーキテクチャ的に別々のプロセッサ、システム・メモリーの領域、及び入出力（Ｉ／Ｏ）アダプタ・バス・スロットを含む。プラットフォームのファームウェアは、該パーティションの資源を該オペレーティング・システム・イメージに与え直す。
【０００３】
プラットフォーム内で動作する各々の別個のオペレーティング・システム又は１つのオペレーティング・システムのイメージは、１つの論理的パーティションにおけるソフトウェア・エラーが他のどのパーティションの正しい動作にも影響を及ぼし得ないように、互いから保護される。ファームウェアは、プラットフォーム資源のばらばらなセットを、各オペレーティング・システム・イメージにより直接管理されるように割り当てることによって保護を行う。ファームウェアは、また、種々のイメージが、そのイメージに割り当てられていないどの資源をも制御し得ないことを保証するためのメカニズムを提供することによって保護を行う。更に、ファームウェアは、１つのオペレーティング・システムのソフトウェア・エラーが他のイメージの資源に影響を及ぼすことを防止する。この様に、オペレーティング・システムの各イメージ又は各々の異なるオペレーティング・システムはプラットフォーム内の割り当て可能な資源の別個のセットを直接制御する。
【０００４】
論理分割データ処理システムにおけるハードウェア資源に関して、これらの資源は種々のパーティションにばらばらに共有される。これらの資源は、例えば、入出力（Ｉ／Ｏ）アダプタ、メモリー・デュアル・インライン・メモリー・モジュール（ＤＩＭＭ）、不揮発性ランダム・アクセス・メモリー（ＮＶＲＡＭ）、及びハードディスク・ドライブを含む。ＬＰＡＲデータ処理システムの中の各パーティションは、該データ処理システム全体をパワーサイクルすることを必要とせずに幾度もブートされ、シャットダウンされ得る。パーティションは、２つのパーティションに割り当てられる資源に重複がないように１つのオペレーティング・システムに割り当てられるデータ処理システム・ハードウェア資源のサブセットである。分割マネージャは、１つの共通メモリー・チップから２つのパーティションにメモリーを割り当てることができる。この割り当ては、各パーティションが直接アクセスできる物理的メモリー・アドレスの範囲の重複を防止するという結果をもたらす。各パーティションは、第２パーティションのメモリーを間接的に制御し得るが、該メモリーに直接作用するように第２パーティションのプロセスに指令することによってそうし得るに過ぎない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
商業的ソフトウェア開発者は、自分たちが開発するソフトウェア又はコードのコピーに対する保護を必要とする。第１の例では、ソフトウェアの利益をそのコストと結びつけるためにソフトウェアの無許可コピーを防止することが有益であろう。第２の例では、ソフトウェアに割り当てられているメモリーへの無許可の書き込みを行うことによってコードを壊す外力を減らすのが有益であろう。
【課題を解決するための手段】
【０００６】
本発明は、ソース・パーティションの中で動作しているエンティティーから実行可能ファイルを実行する要求を受け取ることによって実行可能ファイルを実行するコンピュータで実行可能な方法、装置及びコンピュータ使用可能なプログラムを提供する。該要求を受け取ったことに応答して、サービス・インターフェースはターゲット・パーティション内にメモリー領域を作る。該サービス・インターフェースは認証判定を行う。その認証判定が肯定である場合には、該サービス・インターフェースは該メモリー領域内の実行可能ファイルを実行する。
【発明を実施するための最良の形態】
【０００７】
本発明を特徴付けると考えられる新規な特徴は、添付されている請求項に記載されている。しかし、本発明自体は、好ましい使用モード、その更なる目的及び利点と同様に、添付図面と関連させて実施例についての以下の詳細な記述を参照することから最善に理解されるであろう。
【０００８】
図１は、本発明を実施し得るデータ処理システムのブロック図を示す。データ処理システム１００は、システム・バス１０６に接続する複数のプロセッサ１０１，１０２，１０３、及び１０４を含む対称型マルチプロセッサ（ｓｙｍｍｅｔｒｉｃ  ｍｕｌｔｉｐｒｏｃｅｓｓｏｒ（ＳＭＰ））システムであり得る。例えば、データ処理システム１００は、ネットワーク内サーバとして実現された、ニューヨーク州アーモンクのＩＢＭ社の製品であるＩＢＭ  ｅＳｅｒｖｅｒ（ＩＢＭ社の登録商標）であり得る。代わりに、シングル・プロセッサ・システムを採用しても良い。システム・バス１０６にはメモリー・コントローラ／キャッシュ１０８も接続されており、これは複数のローカル・メモリー１６０−１６３へのインターフェースを提供する。Ｉ／Ｏバス・ブリッジ１１０は、システム・バス１０６に接続して、Ｉ／Ｏバス１１２へのインターフェースを提供する。メモリー・コントローラ／キャッシュ１０８とＩ／Ｏバス・ブリッジ１１０とは、図示されているように統合され得る。
【０００９】
データ処理システム１００は論理分割（ＬＰＡＲ）データ処理システムである。従って、データ処理システム１００は、複数の異種オペレーティング・システム又は同時に動作する単一のオペレーティング・システムの複数のインスタンスを持つことができる。これらの複数のオペレーティング・システムの各々は、その中で実行する任意の数のソフトウェア・プログラムを有することができる。データ処理システム１００は、異なるＰＣＩ  Ｉ／Ｏアダプタ１２０−１２１，１２８−１２９、及び１３６、グラフィックス・アダプタ１４８、及びハードディスク・アダプタ１４９が異なる論理パーティションに割り当てられうるように、論路的に分割されている。この場合、グラフィックス・アダプタ１４８は表示装置（図示されていない）を接続し、ハードディスク・アダプタ１４９はハードディスク１５０に接続してこれを制御する。
【００１０】
例えば、データ処理システム１００が３つの論理パーティションＰ１，Ｐ２及びＰ３に分割されていると仮定する。ＰＣＩ  Ｉ／Ｏアダプタ１２０−１２１，１２８−１２９，１３６、グラフィックス・アダプタ１４８、ハードディスク・アダプタ１４９の各々、プロセッサ１０１−１０４の各々、及びローカル・メモリー１６０−１６３からのメモリーが、これらの３つのパーティションの各々に割り当てられる。これらの例において、ローカル・メモリー１６０−１６３は、デュアル・インライン・メモリー・モジュール（ＤＩＭＭ）の形をとることができる。ＤＩＭＭは普通はＤＩＭＭベースでパーティションに割り当てられない。代わりに、パーティションは、プラットフォームから見たメモリー全体の一部分を得る。例えば、プロセッサ１０１、ローカル・メモリー１６０−１６３からのメモリーの或る部分、暗号コプロセッサ１９９、及びＩ／Ｏアダプタ１２０，１２８，１２９が論理パーティションＰ１に割り当てられ得る。暗号コプロセッサは、物理的タンパリングを防止すると共に悪意あるソフトウェアの付加を防止する回路を含むプロセッサである。どんな方法も盗みやスパイに対して完全ではなく、従って暗号コプロセッサはクラッキングに対する障害及び盗みからの安全手段を提供するものである。また、例えば、プロセッサ１０２−１０３、ローカル・メモリー１６０−１６３からのメモリーの或る部分、及びＰＣＩ  Ｉ／Ｏアダプタ１２１，１３６が論理パーティションＰ２に割り当てられ、プロセッサ１０４、ローカル・メモリー１６０−１６３からのメモリーの或る部分、グラフィックス・アダプタ１４８及びハードディスク・アダプタ１４９が論理パーティションＰ３に割り当てられ得る。
【００１１】
データ処理システム１００の中で実行する各オペレーティング・システムは異なる論理パーティションに割り当てられる。従って、データ処理システム１００内で実行する各オペレーティング・システムは、その論理パーティションの中にあるＩ／Ｏユニットだけにアクセスすることができる。例えば、Ａｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｅｘｅｃｕｔｉｖｅ（ＡＩＸ（登録商標））オペレーティング・システムの１つのインスタンスがパーティションＰ１内で実行することができ、該ＡＩＸオペレーティング・システムの第２インスタンス（イメージ）がパーティションＰ２内で実行することができ、Ｌｉｎｕｘ（商標）オペレーティング・システムが論理パーティションＰ３内で動作することができる。ＡＩＸは、ＩＢＭ社の登録商標である。Ｌｉｎｕｘはリーナス・トーバルズの商標である。
【００１２】
Ｉ／Ｏバス１１２に接続されているペリフェラル・コンポーネント・インターコネクト（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ））ホスト・ブリッジ１１４は、ＰＣＩローカル・バス１１５へのインターフェースを提供する。数個のＰＣＩ入出力アダプタ１２０−１２１は、ＰＣＩ−ＰＣＩブリッジ１１６、ＰＣＩバス１１８、ＰＣＩバス１１９、Ｉ／Ｏスロット１７０、及びＩ／Ｏスロット１７１を通してＰＣＩバス１１５に接続する。ＰＣＩ−ＰＣＩブリッジ１１６は、ＰＣＩバス１１８及びＰＣＩバス１１９へのインターフェースを提供する。ＰＣＩ  Ｉ／Ｏアダプタ１２０及び１２１は、Ｉ／Ｏスロット１７０及び１７１に夫々挿入される。代表的なＰＣＩバス・インプリメンテーションは４個から８個のＩ／Ｏアダプタ、すなわちアドイン・コネクタのための拡張スロット、をサポートする。各ＰＣＩ  Ｉ／Ｏアダプタ１２０−１２１は、データ処理システム１００と、例えばデータ処理システム１００に対してクライアントである他のネットワーク・コンピュータのような入出力装置との間のインターフェースを提供する。
【００１３】
付加的なＰＣＩホスト・ブリッジ１２２は、付加的なＰＣＩバス１２３のためのインターフェースを提供する。ＰＣＩバス１２３は、複数のＰＣＩ  Ｉ／Ｏアダプタ１２８−１２９に接続する。ＰＣＩ  Ｉ／Ｏアダプタ１２８−１２９は、ＰＣＩ−ＰＣＩブリッジ１２４、ＰＣＩバス１２６、ＰＣＩバス１２７、Ｉ／Ｏスロット１７２及びＩ／Ｏスロット１７３を通してＰＣＩバス１２３に接続する。ＰＣＩ−ＰＣＩブリッジ１２４は、ＰＣＩバス１２６及びＰＣＩバス１２７へのインターフェースを提供する。ＰＣＩ  Ｉ／Ｏアダプタ１２８及び１２９は、Ｉ／Ｏスロット１７２及び１７３に夫々挿入される。この様にして、例えばモデムやネットワーク・アダプタのような付加的なＩ／Ｏ装置がＰＣＩ  Ｉ／Ｏアダプタ１２８−１２９の各々を通してサポートされ得る。従って、データ処理システム１００は、複数のネットワーク・コンピュータへの接続を可能にする。
【００１４】
メモリー・マップド・グラフィックス・アダプタ１４８は、Ｉ／Ｏスロット１７４に挿入され、ＰＣＩバス１４４、ＰＣＩ−ＰＣＩブリッジ１４２、ＰＣＩバス１４１及びＰＣＩホスト・ブリッジ１４０を通してＩ／Ｏバス１１２に接続する。ハードディスク・アダプタ１４９はＩ／Ｏスロット１７５に挿入され得、これはＰＣＩバス１４５に接続する。このバスはＰＣＩ−ＰＣＩブリッジ１４２に接続し、これはＰＣＩバス１４１によってＰＣＩホスト・ブリッジ１４０に接続する。暗号コプロセッサ１９９は、Ｉ／Ｏスロット１９７に挿入され、ＰＣＩバス１９８、ＰＣＩ−ＰＣＩブリッジ１４２、ＰＣＩバス１４１、及びＰＣＩホスト・ブリッジ１４０を通してＩ／Ｏバス１１２に接続する。
【００１５】
ＰＣＩホスト・ブリッジ１３０は、ＰＣＩバス１３１がＩ／Ｏバス１１２に接続するためのインターフェースを提供する。ＰＣＩ  Ｉ／Ｏアダプタ１３６はＩ／Ｏスロット１７６に接続し、これはＰＣＩバス１３３によってＰＣＩ−ＰＣＩブリッジ１３２に接続する。ＰＣＩ−ＰＣＩブリッジ１３２はＰＣＩバス１３１に接続する。このＰＣＩバスは、また、ＰＣＩホスト・ブリッジ１３０をサービス・プロセッサ・メールボックス・インターフェース兼ＩＳＡバス・アクセス・パススルー論理１９４及びＰＣＩ−ＰＣＩブリッジ１３２に接続する。サービス・プロセッサ・メールボックス・インターフェース兼ＩＳＡバス・アクセス・パススルー論理１９４は、ＰＣＩ／ＩＳＡブリッジ１９３に向けられたＰＣＩアクセスを転送する。不揮発性ＲＡＭとしても知られているＮＶＲＡＭ記憶装置１９２は、ＩＳＡバス１９６に接続する。サービス・プロセッサ１３５は、そのローカルＰＣＩバス１９５を通してサービス・プロセッサ・メールボックス・インターフェース兼ＩＳＡバス・アクセス・パススルー論理１９４に接続する。サービス・プロセッサ１３５は、また、複数のＪＴＡＧ／Ｉ２Ｃバス１３４を介してプロセッサ１０１−１０４に接続する。ＪＴＡＧ／Ｉ２Ｃバス１３４は、電気電子技術者協会（ＩＥＥＥ）標準規格１１４９．１により定義されているＪＴＡＧ／スキャン・バスとフィリップス（Ｐｈｉｌｉｐｓ）Ｉ２Ｃバスとの組み合わせである。しかし、代わりに、ＪＴＡＧ／Ｉ２Ｃバス１３４の代わりにＰｈｉｌｉｐｓ  Ｉ２Ｃバスだけ、又はＪＴＡＧ／スキャン・バスだけが使われても良い。プロセッサ１０１，１０２，１０３、及び１０４の全てのＳＰ−ＡＴＴＮ信号は、一緒にサービス・プロセッサ１３５の割込み入力信号に結合する。サービス・プロセッサ１３５は、自分自身のローカル・メモリー１９１を有し、ハードウェアＯＰパネル１９０へのアクセスを有する。
【００１６】
データ処理システム１００が最初にパワーアップされるとき、サービス・プロセッサ１３５はＪＴＡＧ／Ｉ２Ｃバス１３４を用いてシステム・プロセッサ１０１−１０４、メモリー・コントローラ／キャッシュ１０８、及びＩ／Ｏブリッジ１１０に質問をする。このステップの完了時に、サービス・プロセッサ１３５はデータ処理システム１００のインベントリー及びトポロジー理解を有する。サービス・プロセッサ１３５は、また、プロセッサ１０１−１０４、メモリー・コントローラ／キャッシュ１０８、及びＩ／Ｏブリッジ１１０に質問をすることによって、見つかった全てのエレメントに対してビルト・イン・セルフ・テスト（Ｂｕｉｌｔ−Ｉｎ−Ｓｅｌｆ−Ｔｅｓｔｓ（ＢＩＳＴ））、ベーシック・アシュアランス・テスト（Ｂａｓｉｃ  Ａｓｓｕｒａｎｃｅ  Ｔｅｓｔｓ（ＢＡＴ））、及びメモリー・テストを実行する。このＢＩＳＴ、ＢＡＴ及びメモリー・テストの間に検出された故障についてのエラー情報はサービス・プロセッサ１３５によって集められて報告される。
【００１７】
該ＢＩＳＴ、ＢＡＴ及びメモリー・テストの間に故障していると判明したエレメントが取り除かれた後も依然としてシステム資源の有意義な又は有効な構成が可能であるならば、データ処理システム１００は実行可能なコードをローカル・メモリー１６０−１６３にロードすることを許される。サービス・プロセッサ１３５は、その後、ローカル・メモリー１６０−１６３にロードされたコードを実行し得るようにプロセッサ１０１−１０４を解放する。プロセッサ１０１−１０４がデータ処理システム１００内の夫々のオペレーティング・システムからのコードを実行している間、サービス・プロセッサ１３５はエラーを監視して報告するモードに入る。サービス・プロセッサ１３５により監視されるアイテムのタイプは、例えば、冷却ファン速度及び動作、温度センサー、電源レギュレータ、及びプロセッサ１０１−１０４により報告された回復可能又は回復不可能なエラー、ローカル・メモリー１６０−１６３、及びＩ／Ｏブリッジ１１０を含む。
【００１８】
サービス・プロセッサ１３５は、データ処理システム１００内の全ての監視されるアイテムに関連するエラー情報を保存し報告する。サービス・プロセッサ１３５は、また、エラーのタイプ及び所定スレショルドに基いて処置をする。例えば、サービス・プロセッサ１３５は、プロセッサのキャッシュ・メモリーにおける過度の回復可能なエラーを記録して、この状態が重大な故障の前触れであると判断することができる。この判断に基いて、サービス・プロセッサ１３５は、そのプロセッサ又は他の資源を現在の進行中のセッション及び将来の初期プログラム・ロード（ＩＰＬ）の間に構成解除されるように定めることができる。ＩＰＬは、時には“ブート”又は“ブートストラップ”とも称される。
【００１９】
データ処理システム１００は、種々の市販されているコンピュータ・システムを用いて実現され得る。例えば、データ処理システム１００は、ＩＢＭ社から市販されているｅＳｅｒｖｅｒ  ｉＳｅｒｉｅｓ（ＩＢＭ社の商標）モデル８４０システムを用いて実現され得る。その様なシステムは論理的分割をサポートすることができ、ＯＳ／４００（登録商標）オペレーティング・システムがパーティションの中に存在することができる。ＯＳ／４００はＩＢＭ社の登録商標である。
【００２０】
図１に描かれているハードウェアが変化し得ることを当業者は理解するであろう。例えば、光ディスク・ドライブなどのような他の周辺装置を、図示されているハードウェアに加えて、又はその代わりとして、使用することができる。図示されている例は、本発明に関するアーキテクチャ限定を示唆するものではない。
【００２１】
図２は、本発明の実施例を実現した代表的論理分割プラットフォームのブロック図を示す。論理分割プラットフォーム２００におけるハードウェアは、例えば、図１のデータ処理システム１００である。論理分割プラットフォーム２００は、分割されたハードウェア２３０、オペレーティング・システム２０２，２０４，２０６，２０８、及び分割マネージャ又は分割管理ファームウェア２１０を含む。オペレーティング・システム２０２，２０４，２０６、及び２０８は単一のオペレーティング・システムの複数のコピーであって良く、或いは論理分割プラットフォーム２００上で同時に動作する複数の異種オペレーティング・システムであってよい。ＯＳ／４００をインストールして動作させることを選ぶことができ、これはハイパーバイザー（ｈｙｐｅｒｖｉｓｏｒ）のような分割マネージャとインターフェースする。ＯＳ／４００（ＩＢＭ社の登録商標）は、これらの実施例における一例に過ぎない。もちろん、開発者は、具体的インプリメンテーションによりＡＩＸ（ＩＢＭ社の登録商標）及びリナックスのような他のタイプのオペレーティング・システムを使用することを選ぶこともできる。オペレーティング・システム２０２，２０４，２０６、及び２０８は、パーティション２０３，２０５，２０７、及び２０９に置かれている。ハイパーバイザー・ソフトウェアは、分割管理ファームウェア２１０を実現するソフトウェアの一例であって、ＩＢＭ社から入手し得る。ファームウェアは、例えば、読み出し専用メモリー（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、及び不揮発性ランダム・アクセス・メモリー（不揮発性ＲＡＭ）などの、電力無しで内容を保持するメモリー・チップに格納される“ソフトウェア”である。要するに、分割マネージャは、磁気媒体にアクセスする必要なしにデータ処理システムに利用可能である。
【００２２】
更に、これらのパーティションはパーティション・ファームウェア２１１，２１３，２１５、及び２１７も含む。パーティション・ファームウェア２１１，２１３，２１５、及び２１７は、イニシャル・ブートストラップ・コード、ＩＥＥＥ−１２７５標準規格オープン・ファームウェア、及びＩＢＭ社から入手し得るランタイム・アブストラクション・ソフトウェア（ＲＴＡＳ）を用いて実現され得る。パーティション２０３，２０５，２０７、及び２０９がインスタンシエート（ｉｎｓｔａｎｔｉａｔｅ）されるとき、ブートストラップ・コードのコピーがプラットフォーム・ファームウェア２１０によってパーティション２０３，２０５，２０７、及び２０９にロードされる。その後、コントロールはブートストラップ・コードに移り、ブートストラップ・コードは該オープン・ファームウェア及びＲＴＡＳをロードする。パーティションに関連付けられ又は割り当てられたプロセッサはその後パーティション・ファームウェアを実行するようにパーティションのメモリーにディスパッチされる。このパーティション構成は本発明の実施例を実現する一つの方法に過ぎない。本発明の範囲内で他のパーティション構成も形成され得る。
【００２３】
分割されたハードウェア２３０は、複数のプロセッサ２３２−２３８、複数のシステム・メモリー・ユニット２４０−２４６、複数の入出力（Ｉ／Ｏ）アダプタ２４８−２６２、及び記憶装置ユニット２７０を含む。プロセッサ２３２−２３８、メモリー・ユニット２４０−２４６、ＮＶＲＡＭ記憶装置２９８、及びＩ／Ｏアダプタ２４８−２６２の各々は論理分割プラットフォーム２００内の複数のパーティションのうちの１つに割り当てられ得、その各々はオペレーティング・システム２０２，２０４，２０６、及び２０８のうちの１つに対応する。
【００２４】
分割管理ファームウェア２１０は、論理分割プラットフォーム２００の分割を生じさせて実施するパーティション２０３，２０５，２０７、及び２０９のための数個の機能及びサービスを実行する。分割管理ファームウェア２１０は、基礎となるハードウェアと同一のファームウェア実現される仮想マシンである。従って、分割管理ファームウェア２１０は、論理分割プラットフォーム２００の全てのハードウェア資源を仮想化することによって、独立したオペレーティング・システム・イメージ２０２，２０４，２０６、及び２０８の同時実行を可能にする。
【００２５】
サービス・プロセッサ２９０は、例えば、パーティションにおけるプラットフォーム・エラーの処理のような種々のサービスを提供するように動作する。これらのサービスは、エラーをＩＢＭ社のようなベンダーに報告するサービス・エージェントとしても作用することができる。異なるパーティションの動作は、ハードウェア管理コンソール２８０のようなハードウェア管理コンソールを通して制御され得る。ハードウェア管理コンソール２８０は別のデータ処理システムであって、これからシステム管理者は異なるパーティションへの資源の再配分を含む種々の機能を実行することができる。
【００２６】
従って、本発明のいろいろな側面は、実行可能ファイルを保護された仕方で実行するコンピュータで実行可能な方法、装置、及びコンピュータ使用可能なプログラム・コードを提供する。保護された仕方は、コードを記憶しているパーティションの外側での該コードの無認可コピーを抑止することを含む。更に、コードがメモリー内にある間に実行中の該コードの破壊からの保護が提供される。ベンダーのソフトウェア又はコードは、該コードがキーにより暗号化されるように顧客の分割されたデータ処理システムに格納される。暗号化されている限り、コピーする人がキーも横領しなければ、該コードはコピーしても役に立たない。暗号化されずにプロセスを実行するとき、サービス・インターフェースがそのコードを保護する。
【００２７】
図３は、本発明の一実施例による代表的なターゲット分割及びソース分割を示す。図３は、データ処理システム３０１の資源の上で動作する種々のソフトウェア・コンポーネントを示す。全体として、該ハードウェア及びソフトウェア・コンポーネントは、分割されたシステム環境３０３である。データ処理システムは、例えば、図１のデータ処理システム１００である。分割マネージャ３０５は、データ処理システムを２つ以上のパーティションに分割する。データ処理システム３０１は、オペレーティング・システムＢ３１３の直接管理下にあるハードウェアと、オペレーティング・システムＡ３１９の直接管理下にあるハードウェアとを含む。オペレーティング・システムＢ３１３のプロセスが許可されているとオペレーティング・システムＡ３１９が判断する限りは、オペレーティング・システムＡ３１９はオペレーティング・システムＢ３１３と協力して自分のハードウェアを操作することができる。分割マネージャ３０５、例えばハイパーバイザー、は資源を２つ以上のパーティションに配分する。分割マネージャ３０５は、ターゲット・パーティション３０７とソース・パーティション３０９とを作る。クライアント・エンティティー３１１は、ソフトウェア・コンシューマ又はクライアント・エンティティーにより所有又は管理されるプログラムであり得る。エンティティーは、パーティションがソース・パーティション３０９の資源を割り当てる任意の実行ソフトウェアである。エンティティーは、例えば、コマンド・ライン・エディターである。
【００２８】
クライアント・エンティティー３１１は、オペレーティング・システムＢ３１３の制限及び特徴に従って動作する。オペレーティング・システムＢ３１３は、例えばリナックスなどのオペレーティング・システムである。オペレーティング・システムは、ハードウェア及び基本システム動作を直接制御し管理するシステム・ソフトウェアである。更に、オペレーティング・システムは、ワード・プロセッシング・プログラム及びウェブ・ブラウザのようなアプリケーション・ソフトウェアをその上で動作させる基礎を提供する。
【００２９】
サービス・インターフェース３２５は、ターゲット・パーティション３０７の外側のエンティティーに対してゲート・キーパーとして動作して、どのエンティティーが内部の特定の資源へのアクセスを有するかを制御する。サービス・インターフェースは、該パーティションの外からのコマンド及び通信を認証し、内部に向かうコマンド及び通信を制限し、また該パーティション内に格納されているデータの解読を制御するソフトウェア・コンポーネントである。サービス・インターフェースは、パーティション内で動作するオペレーティング・システムの一部である。サービス・インターフェース３２５は、例えば図２のオペレーティング・システム２０２などのオペレーティング・システムの一部であり得る。
【００３０】
オペレーティング・システムＡ３１９は、例えばリナックスなどのオペレーティング・システムのターゲット・パーティション３０７基本機能のファイル又はプロセスを実行することを可能にする。実行可能ファイル３１７は、ターゲット・パーティション３０７上で動作することのできる、翻訳又はコンパイルされた命令のセットである。実行可能ファイル３１７は、変数、アレイ、及び他のデータ構造のための命令とメモリーとの両方を含むコード・オブジェクトを含む。プロセスは実行可能ファイルの実行インスタンスであり、これはプロセッサ上で時分割された仕方で動作することができる。プロセスはプロセス識別子と通信ポートとを有することができ、これによりデータを該インスタンスに出し入れすることができる。
【００３１】
図４は、本発明の一実施例によるクライアント・エンティティーと実行可能ファイルとの間の通信を示す。クライアント・エンティティー４０１は、例えば保護される実行可能ファイル４０５などの保護されるソフトウェアから提供される機能を動作させなければならない。実行可能ファイルは、該実行可能ファイルが格納されている同じパーティションに割り当てられたプロセッサに適合させられた機械命令を含むファイルである。保護される実行可能ファイルは、機械命令を含むファイルである。その様な機会命令は、解読された状態では、保護される実行可能ファイルが格納されている同じパーティションに割り当てられたプロセッサ上で動作するのに適する。
【００３２】
クライアント・エンティティー４０１は、機能を起動する実行要求を開始する。実行要求は、少なくとも、実行可能コードの実行インスタンスを確立するためにオペレーティング・システム又は分割マネージャがソース・コードを特定できるのに充分に実行可能ファイルを特定する要求である。実行要求は、例えば、サービス・インターフェース４０３に提供されるデータのセットである要求４０７である。該要求は、例えば、ターゲット・パーティション資源にアクセスする要求である。そのデータのセットは、保護される実行可能ファイル４０５又は該実行可能ファイルのソースを特定し、また、ターゲット・パーティション内に格納されているキーでクライアント・エンティティー４０１を認証するキーを含む。要求４０７はパラメータを含むことができ、それに基いて該機能は作用する。認証は、１つの装置又は人が第２の装置又は人と共通のパラメータを共有するプロセスである。認証は、第２の装置または人であると主張している装置又は人が該パラメータを有するという確認ステップを含む。
【００３３】
サービス・インターフェース４０３は、その判定が肯定であれば、パラメータ４０９を送る。その事実に基いて、サービス・インターフェースは、パラメータ４０９をデータ構造又はメッセージとして、保護される実行可能ファイル４０５に提供する。プロセスは、認証が正しいときには、保護される実行可能ファイル４０５をその場限りに生成することができる。
【００３４】
保護される実行可能ファイル４０５は、サービス・インターフェース４０３に確認４１１を送ることによって初期化確認を提供することができる。サービス・インターフェース４０３は、保護される実行可能ファイル４０５からの応答通信を待つ。サービス・インターフェースは１つ以上のリレー結果４１３をクライアント・エンティティー４０１にディスパッチすることができる。サービス・インターフェース４０３が確認４１１を受け取った後に付加的なプロセス間及びその他の通信がクライアント・エンティティー４０１と保護される実行可能ファイル４０５との間を進むことができる。
【００３５】
図５は、本発明の一実施例による２つのパーティションを通るデータ経路を示す。図５は、実行可能ファイルの起源と実行可能ファイルの実行場所とをターゲット・パーティション５０１の中に示している。ソース・パーティション５０３内からの如何なる攻撃も本発明の一実施例によって阻まれることが分かる。
【００３６】
ターゲット・パーティションは、暗号コプロセッサ又は暗号キーを保護し暗号機能を実行するメカニズムを含むパーティションである。ソース・パーティションは、特定のターゲット・パーティションではない任意のパーティションである。従って、ソース・パーティションは、特定のターゲット・パーティションに関してソース・パーティションであるに過ぎない。ターゲット・パーティションは、第２のターゲット・パーティションに関してソース・パーティションであり得る。ターゲット・パーティション５０１は、例えば、図２のパーティション２０３である。ソース・パーティション５０３は、例えば、図２のパーティション２０５である。
【００３７】
サービス・インターフェース５１３は、ハードディスク５５１及び暗号コプロセッサ５５３を制御する。サービス・インターフェース５１３は、ハードディスク５５１アクセスを調停するためにオペレーティング・システム５９５に依拠する。ハードディスク５５１は、例えば、図１のハードディスク１５０である。暗号コプロセッサ５５３は、例えば、図１の暗号コプロセッサ１９９である。サービス・インターフェース５１３は、例えば、図３のサービス・インターフェース３２５である。実行可能なコード及びデータ５１７は、例えば、図４の保護される実行可能ファイル４０５を含む。実行可能なコード及びデータ５１７は、ハードディスク５５１に格納されている暗号化されているファイルから生じ得る。実行可能なコード及びデータ５１７は、後に解読されたデータ５４３としてメモリー領域５５５に書き込まれる形を保つ。メモリー領域５５５は、例えば、図１の１つ以上のローカル・メモリー１６０−１６３から割り当てられるメモリーである。サービス・インターフェース５１３は、クライアント・エンティティー・コード及びデータ５０９と実行可能なコード及びデータ５１７との間のプロセス間通信を調停する。この様な調停は、例えば、例えばＩ／Ｏチャネル５１５などの通信チャネルを形成することを含む。通信チャネルは、パーティション間でデータを制御された仕方で移動させるためのハイパーバイザー制御されるメカニズムである。本発明の一実施例は、１つのパーティション・メモリーから第２のパーティション・メモリーにデータをコピーするハイパーバイザーを含む。その様なメモリー・コピー動作は、この動作に割り当てる充分な資源をハイパーバイザーが有するならば、行われる。該ハイパーバイザーは、該メモリー・アクセスを調停し、割り当てられたスペースにコピーされる量を制限する。
【００３８】
メモリー・アクセスは、メモリーへの書き込み又はメモリーからの読み出しである。メモリー領域にアクセスする要求は、メモリーに書き込み又はメモリーから読み出す１つ以上の命令である。メモリー・アクセス、例えばバッファー書き込み、は分割マネージャ５０７の低レベル機能を使用することができる。分割マネージャ５０７は、実行プログラムが格納されているのと同じパーティションのメモリーだけへの直接バッファー書き込みを制限する。例えば、クライアント・エンティティー・コード及びデータ５０９により制御されるバッファー書き込みにより書き込まれるメモリーは、メモリー境界までのメモリーに限定される。メモリー境界は、パーティションに割り当てられるメモリーの範囲の限界である。場合によっては、メモリー境界は１つのメモリー領域で終わる。メモリー境界は、１つ以上のローカル・メモリーの中のメモリーの１つの連続的範囲の末端であり得る。その様な範囲はメモリーに格納され得るが、その場合、メモリー・アクセスは分割マネージャによって制御される。
【００３９】
図６は、本発明の一実施例によるターゲット・パーティションの実行可能ファイルをアクセス可能にするステップを示す。サービス・インターフェースの一部として動作する１つのプロセスが図６のステップを実行する。サービス・インターフェースは、例えば、図５のサービス・インターフェース５１３である。該プロセスは、ソース・パーティションから要求を受け取る（ステップ６０１）。プロセスは、その要求が実行可能ファイルを求める要求であるか否かを判定する（ステップ６０３）。実行可能ファイルは、例えば図５のハードディスク５５１などのハードディスクに格納されたソース・ファイル又は暗号化されたファイルとして存在し得る。肯定判定に基いて、プロセスは該要求を認証しようと試みる（ステップ６０５）。該要求内のキーと、暗号プロセッサを通してアクセスされるキーとの肯定的一致は、プロセスにステップ６０５からの肯定ブランチを選ばせる。肯定的一致は、認証判定の肯定判定である。暗号コプロセッサは、例えば、図５の暗号コプロセッサ５５３である。プロセスはメモリー領域を作る（ステップ６０７）。該メモリー領域は、例えば、ＲＡＭディスクであり得る。ＲＡＭディスクは、割り当て及びハウスキーピング機能を支配するファイル・システムに似たデータ構造である。メモリー領域は、リナックス・システム上で動作するプロセスについては３ステップ・プロセスで作られ得る。表１は、本発明の一実施例に従って代表的メモリー領域を作る３つのコマンド及び関連するコメントのスクリプトを記述している。
【表１】
2007299400.tif 000003
【００４０】
暗号コプロセッサを用いて、プロセスは実行可能ファイルのソースをメモリー領域、例えばラムディスク、に解読する（ステップ６１１）。暗号コプロセッサは、コンテンツ保護のために使われる独特の暗号キーを維持する物理的及び論理的保護を提供する。ステップ６１１は、実行可能ファイルのソースを解読する独特の暗号キーを使用する。ラムディスクは、例えば、図５のメモリー領域５５５である。プロセスは、実行可能ファイルを実行し、ターゲット・パーティションのラムディスクの一部及び他の資源を実行可能ファイルに割り当てる（ステップ６１３）。実行可能ファイルの実行はセッションを作ることを含むことができ、このセッションにおいてプロセスはプロセス識別子又はプロセスＩＤを実行可能ファイルの実行インスタンスに割り当てる。更に、実行可能ファイルの実行は、該セッションとクライアント・エンティティーとの間に通信チャネルを作ることを含むことができる。実行可能ファイルが実行を完了すると、その後にプロセスは終了する。
【００４１】
否定判定は、要求の中のキーと、暗号プロセッサを通してアクセスされたキーとが一致しないという認証判定である。その様な判定はステップ６０５で生じ、ここで、例えば、許可されていない第２エンティティーは、適切に許可された第１エンティティーに応じた図６の動作の後に図６のステップを実行するプロセスと対話する。ステップ６０５における否定判定は、その否定判定の後に該プロセスが終了するので、該要求を実際上拒否する。終了することによって、該プロセスは、許可されていない第２エンティティーによるステップ６０７，６１１、及び６１３の実行を防止する。
【００４２】
本発明の諸側面は、実行可能ファイルを保護された仕方で実行するコンピュータで実行可能な方法、装置、及びコンピュータ使用可能なプログラム・コードを提供する。ベンダーのソフトウェア又はコードは、該コードがキーを用いて暗号化されるように顧客の分割されたデータ処理システムに格納される。該キーは暗号コプロセッサに格納されて、許可されている人及びプロセスへのアクセスを統制する。暗号化されている限り、コピーする人がキーも横領しなければ、該コードはコピーしても役に立たない。暗号化されずにプロセスを実行するとき、サービス・インターフェースがそのコードを保護する。
【００４３】
本発明は、完全にハードウェアの実施態様、完全にソフトウェアの実施態様又はハードウェア及びソフトウェアの両方を含む実施態様の形をとることができる。１つの好ましい実施態様では、本発明はソフトウェアで実施されるが、それはファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、それらに限定はされない。
【００４４】
更に、本発明は、コンピュータ又は任意の命令実行システムにより又はこれらと関連して使用されるプログラム・コードを提供するコンピュータ使用可能な媒体又はコンピュータ可読媒体から入手可能なコンピュータ・プログラムの形をとることができる。本書の目的上、コンピュータ使用可能な媒体又はコンピュータ可読媒体は、該命令実行システム、機械、または装置により又はこれらと関連して使用されるプログラムを包含し、格納し、伝達し、伝え、或いは運ぶことのできる任意の実体的機械であり得る。
【００４５】
媒体は、電子、磁気、光学、電磁、赤外線、又は半導体システム（又は機械若しくは装置）又は伝播媒体であり得る。コンピュータ可読媒体の例は、半導体又は固体メモリー、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリー（ＲＡＭ）、読み出し専用メモリー（ＲＯＭ）、堅い磁気ディスク及び光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク読み出し専用メモリー（ＣＤ−ＲＯＭ）、書換え可能コンパクト・ディスク（ＣＤ−Ｒ／Ｗ）及びディジタル・ビデオ・ディスク（ＤＶＤ）を含む。
【００４６】
プログラム・コードの格納及び実行のうちの少なくとも一方に適するデータ処理システムは、システム・バスを通して記憶素子に直接に又は間接的に結合される少なくとも１つのプロセッサを含むであろう。記憶素子は、プログラム・コードを実際に実行している間使用されるローカル・メモリーと、大容量記憶装置と、実行中に大容量記憶装置からコードを検索しなければならない回数を減らすために少なくとも或るプログラム・コードの一時記憶を提供するキャッシュ・メモリーとを含むことができる。
【００４７】
入出力又はＩ／Ｏ装置（キーボード、表示装置、ポインティング・デバイスなどを含むが、これらに限定はされない）は、直接に、又は介在するＩ／Ｏコントローラを通して、システムに結合され得る。
【００４８】
介在する構内ネットワーク又は公衆ネットワークを通してデータ処理システムが他のデータ処理システム又は遠方のプリンタ若しくは記憶装置に結合され得るように、ネットワーク・アダプタも該システムに結合され得る。モデム、ケーブル・モデム及びイーサネット（登録商標）・カードは、現在利用し得るタイプのネットワーク・アダプタのほんの数例に過ぎない。
【００４９】
本発明の記述は例証及び説明の目的で示されていて、網羅的であることや本発明を開示された形に限定することは意図されていない。多くの改変及び変形が当業者には明らかであろう。実施態様は、本発明の原理、実践的アプリケーションを最善に説明すると共に、考慮されている具体的用途に適する種々の改変を有する種々の実施態様について他の当業者が本発明を理解し得るように、選択され記述された。
【図面の簡単な説明】
【００５０】
【図１】本発明を実施し得るデータ処理システムのブロック図である。
【図２】本発明を実施し得る代表的な論理分割プラットフォームのブロック図である。
【図３】本発明の一実施例による代表的なターゲット・パーティション及びソース・パーティションを示す。
【図４】本発明の一実施例によるクライアント・エンティティーと実行可能ファイルとの間の通信を示す。
【図５】本発明の一実施例による２つのパーティションを通るデータ経路を示す。
【図６】本発明による、ターゲット・パーティションの実行可能ファイルをアクセス可能にするステップを示す。
【符号の説明】
【００５１】
２９８  不揮発性ランダム・アクセス・メモリー
３０３  分割されたシステム環境
３０７  ターゲット・パーティション
３０９  ソース・パーティション
【図１】
2007299400.tif 000004
【図２】
2007299400.tif 000005
【図３】
2007299400.tif 000006
【図４】
2007299400.tif 000007
【図５】
2007299400.tif 000008
【図６】
2007299400.tif 000009