(57)【要約】【課題】オペレーティング・システム区画内細粒度特権を提供すること。【解決手段】一実施形態では、本発明は、単一オペレーティング・カーネル・インスタンスの制御下で他の非グローバル・ゾーンに関連して実行するプロセスからプロセスを分離するために、１つのグローバル・ゾーンと１つまたは複数の非グローバル・ゾーンに区画されたオペレーティング・システム環境で細粒度特権モデルを使用してプロセスのアクティビティを管理する技術を提供する。【選択図】図１
2004334894.tif 000002
【特許請求の範囲】
【請求項１】
単一オペレーティング・システム・カーネル・インスタンスによって制御されるオペレーティング・システム環境で、他の非グローバル・ゾーンのプロセスからプロセスを分離する、１つのグローバル・ゾーンと少なくとも１つの非グローバル・ゾーンを確立するステップと、
オペレーションを実行するための第１の要求を、非グローバル・ゾーンに関連して実行する第１のプロセスから受信するステップと、
第１の要求の受信に応じて、要求されたオペレーションを実行することによって、第１のプロセスが第１のプロセスに許可されていない追加の特権を取得することになるか否かかを判定するステップと、
第１のプロセスが追加の特権を取得することになる場合、第１の要求を拒否するステップと
を含む方法。
【請求項２】
各非グローバル・ゾーンが非グローバル・ゾーン内の実行中のプロセスに対する一組の許容される特権を持っている請求項１に記載の方法。
【請求項３】
オペレーションが第２のプロセスの制御権を得るステップを含んでおり、要求されたオペレーションを実行することによって第１のプロセスが追加の特権を取得することになるか否かかを判定するステップが、
第１のプロセスのゾーン識別子が第２のプロセスのゾーン識別子に一致するか否かを判定し、
ゾーン識別子が一致しない場合、第１のプロセスが非グローバル・ゾーンに関連付けられているか否かを判定し、関連付けられている場合、その要求を拒否し、
ゾーン識別子が一致する場合、第１のプロセスが他のゾーンのプロセスを制御するための特権を持っているか否かを判定し、
第１のプロセスが他のゾーンのプロセスを制御するための特権を持っていない場合、要求を拒否するステップと；
第１のプロセスのユーザ識別子が第２のプロセスのユーザ識別子に一致するか否かを判定し、
ユーザ識別子が一致しない場合、第１のプロセスがプロセス所有者の特権を持っているか否かを判定し、
第１のプロセスがプロセス所有者の特権を持っていない場合、要求を拒否するステップと；
第１のプロセスが第２のプロセスが持つ特権の少なくともそれぞれを持っている否かを判定し、
第１のプロセスが第２のプロセスの特権のそれぞれを持っていない場合、要求を拒否するステップと；
第２のプロセスのユーザ識別子が特権を与えられたユーザ識別子であるか否かを判定し、
第２のプロセスが特権を与えられたユーザ識別子を有していない場合、要求を許可するステップと；
第１のプロセスがグローバル・ゾーンに関連付けられているか否かを判定し、
第１のプロセスがグローバル・ゾーン・プロセスである場合、第１のプロセスがすべての特権を持っているか否かを判定し、
持っている場合、要求を許可し、持っていない場合、要求を拒否し、
第１のプロセスがグローバル・ゾーン・プロセスでなく、第１のプロセスが非グローバル・ゾーンに関連付けられている場合、第１のプロセスが非グローバル・ゾーンに対する一組の許容される特権のすべての特権を持っているか否かを判定し、
持っている場合、要求を許可し、持っていない場合、要求を拒否するステップと；を含む請求項２記載の方法。
【請求項４】
特権を与えられたユーザ識別子が０である請求項３に記載の方法。
【請求項５】
他の非グローバル・ゾーンのプロセスからプロセスを分離するために１つの非グローバル・ゾーンを確立するステップが、
非グローバル・ゾーン内で実行中のプロセスに対する一組の許容される特権を示す特権制限を非グローバル・ゾーンに設定するステップを含む請求項２に記載の方法。
【請求項６】
特権制限は、作成された際に非グローバル・ゾーンに渡されるビット・マスクとして表され、方法が、
非グローバル・ゾーンを結合するプロセスによって保持される特権をビット・マスクと比較するステップと、
そのビット・マスクにない特権をプロセスから除去するステップと
をさらに含む請求項５に記載の方法。
【請求項７】
要求されたオペレーションを実行するステップが、
オブジェクトにアクセスするステップを含み、方法が、
第１のプロセスがオブジェクトにアクセスする許可を有しているか否かを判定するステップをさらに含む請求項１に記載の方法。
【請求項８】
オペレーションが、
ファイル・システムをマウント又はアンマウントするステップ、ファイル・システムの許可を無効にするステップ、特権を持っているネットワーク・ポートにバインドするステップ、および異なるユーザ識別子で他のプロセスを制御するステップの１つを含む請求項１に記載の方法。
【請求項９】
オペレーションが、第１のプロセスに関連付けられたユーザ識別子を変更するステップを含み、要求されたオペレーションを実行することによって、第１のプロセスが追加の特権を取得することになるか否かかを判定するステップが、
要求が、第１のプロセスに関連付けられたユーザ識別子を、特権を与えられたユーザ識別子に変更するためのものか否か、また、第１のプロセスが非グローバル・ゾーンに対する一組の許容される特権の少なくともそれぞれの特権を持っているか否かを判定するステップであって、
そうである場合、要求を許可し、
そうでない場合、第１のプロセスが要求に対する適切な特権を持っているか否かを判定し、
持っている場合、要求を許可し、
持っていない場合、要求を拒否するステップを含む請求項２に記載の方法。
【請求項１０】
グローバル・ゾーンに関連して実行するプロセスからオペレーションを実行するための要求を受信するステップと、
この要求の受信に応じて、要求されたオペレーションを実行することによって、プロセスがそのプロセスに許可されない追加の特権を取得することになるか否かかを判定するステップと、
プロセスが追加の特権を取得することになる場合、要求を拒否するステップと
をさらに含む請求項１に記載の方法。
【請求項１１】
オペレーションが第２のプロセスの制御権を得るステップを含み、要求されたオペレーションを実行することによって、グローバル・ゾーンに関連して実行するプロセスが追加の特権を取得することになるか否かかを判定するステップが、
第１のプロセスのゾーン識別子が第２のプロセスのゾーン識別子に一致するか否かを判定し、
ゾーン識別子が一致しない場合、第１のプロセスが非グローバル・ゾーンに関連付けられているか否かを判定し、関連付けられている場合、その要求を拒否し、
ゾーン識別子が一致する場合、第１のプロセスが他のゾーンのプロセスを制御するための特権を持っているか否かを判定し、
第１のプロセスが他のゾーンのプロセスを制御するための特権を持っていない場合、要求を拒否するステップと：
第１のプロセスのユーザ識別子が第２のプロセスのユーザ識別子に一致するか否かを判定し、
ユーザ識別子が一致しない場合、第１のプロセスがプロセス所有者の特権を持っているか否かを判定し、
第１のプロセスがプロセス所有者の特権を持っていない場合、要求を拒否するステップと；
第１のプロセスが第２のプロセスが持つ特権の少なくともそれぞれを持っているか否かを判定し、
第１のプロセスが第２のプロセスの特権のそれぞれを持っていない場合、要求を拒否するステップと；
第２のプロセスのユーザ識別子が特権を与えられたユーザ識別子であるか否かを判定し、
第２のプロセスが特権を与えられたユーザ識別子を有していない場合、要求を許可するステップと；
第１のプロセスがグローバル・ゾーンに関連付けられているか否かを判定し、
第１のプロセスがグローバル・ゾーン・プロセスである場合、第１のプロセスがすべての特権を持っているか否かを判定し、
持っている場合、要求を許可し、持っていない場合、要求を拒否し、
第１のプロセスがグローバル・ゾーン・プロセスでなく、第１のプロセスが非グローバル・ゾーンに関連付けられている場合、第１のプロセスが非グローバル・ゾーンに対する一組の許容される特権のすべての特権を持っているか否かを判定し、
持っている場合、要求を許可し、持っていない場合、要求を拒否するステップと；
を含む請求項１０に記載の方法。
【請求項１２】
オペレーションがグローバル・ゾーンに関連して実行するプロセスに関連付けられたユーザ識別子を変更するステップを含み、要求されたオペレーションを実行することによって、グローバル・ゾーンに関連して実行するプロセスが追加の特権を取得することになるか否かかを判定するステップが、
要求がグローバル・ゾーンに関連して実行するプロセスに関連付けられたユーザ識別子を、特権を与えられたユーザ識別子に変更するためのものであるか否か、また、グローバル・ゾーンに関連して実行するプロセスがすべての特権を持っているか否かを判定するステップであって、
そうである場合、要求を許可し、
そうでない場合、グローバル・ゾーンに関連して実行するプロセスが要求に対して適切な特権を持っているか否かを判定し、
持っている場合、要求を許可し、
持っていない場合、要求を拒否するステップを含む請求項１０に記載の方法。
【請求項１３】
オペレーションが、
すべてのプロセス特権を修正するステップ、システム管理ファイルに書き込むステップ、デバイスを保持しているカーネル・メモリを開くステップ、オペレーティング・システム・コードを修正するステップ、ルート・ユーザに限定されているファイル・システムにアクセスするステップ、システム・クロックを設定するステップ、実行中プロセスのスケジュール優先順位を変更するステップ、アプリケーション用資源を確保するステップ、ネットワーク層に直接アクセスするステップ、カーネル・モジュールをロードするステップの１つを含む請求項１０に記載の方法。
【請求項１４】
１つまたは複数のプロセッサに、
単一オペレーティング・システム・カーネル・インスタンスによって制御されるオペレーティング・システム環境で、他の非グローバル・ゾーンのプロセスからプロセスを分離するために１つのグローバル・ゾーンと少なくとも１つの非グローバル・ゾーンを確立するステップと、
オペレーションを実行するための第１の要求を、非グローバル・ゾーンに関連して実行する第１のプロセスから受信するステップと、
第１の要求の受信に応じて、要求されたオペレーションを実行することによって、第１のプロセスが第１のプロセスに許可されていない追加の特権を取得することになるか否かかを判定するステップと、
第１のプロセスが追加の特権を取得することになる場合、第１の要求を拒否するステップと
を実行させる命令を含んでいるコンピュータ可読媒体。
【請求項１５】
各非グローバル・ゾーンが非グローバル・ゾーン内の実行中のプロセスに対する一組の許容される特権を持っている請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
オペレーションが第２のプロセスの制御権を得るステップを含んでおり、要求されたオペレーションを実行することによって、第１のプロセスが追加の特権を取得することになるか否かかを判定するステップが、
第１のプロセスのゾーン識別子が第２のプロセスのゾーン識別子に一致するか否かを判定し、
ゾーン識別子が一致しない場合、第１のプロセスが非グローバル・ゾーンに関連付けられているか否かを判定し、関連付けられている場合、その要求を拒否し、
ゾーン識別子が一致する場合、第１のプロセスが他のゾーンのプロセスを制御するための特権を持っているか否かを判定し、
第１のプロセスが他のゾーンのプロセスを制御するための特権を持っていない場合、要求を拒否するステップと；
第１のプロセスのユーザ識別子が第２のプロセスのユーザ識別子に一致するか否かを判定するステップであって、
ユーザ識別子が一致しない場合、第１のプロセスがプロセス所有者の特権を持っているか否かを判定し、
第１のプロセスがプロセス所有者の特権を持っていない場合、要求を拒否するステップと；
第１のプロセスが第２のプロセスが持つ特権の少なくともそれぞれを持っているか否かを判定し、
第１のプロセスが第２のプロセスの特権のそれぞれを持っていない場合、要求を拒否するステップと；
第２のプロセスのユーザ識別子が特権を与えられたユーザ識別子であるか否かを判定し、
第２のプロセスが特権を与えられたユーザ識別子を有していない場合、要求を許可するステップと；
第１のプロセスがグローバル・ゾーンに関連付けられているか否かを判定し、
第１のプロセスがグローバル・ゾーン・プロセスである場合、第１のプロセスがすべての特権を持っているか否かを判定し、
持っている場合、要求を許可し、持っていない場合、要求を拒否し、
第１のプロセスがグローバル・ゾーン・プロセスでなく、第１のプロセスが非グローバル・ゾーンに関連付けられている場合、第１のプロセスが非グローバル・ゾーンに対する一組の許容される特権のすべての特権を持っているか否かを判定し、
持っている場合、要求を許可し、持っていない場合、要求を拒否するステップと
を含む請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
特権を与えられたユーザ識別子が０である請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
他の非グローバル・ゾーンのプロセスからプロセスを分離するために１つの非グローバル・ゾーンを確立するステップが、
非グローバル・ゾーン内で実行中のプロセスに対する一組の許容される特権を示す特権制限を非グローバル・ゾーンに設定するステップを含む請求項１５に記載のコンピュータ可読媒体。
【請求項１９】
特権制限が非グローバル・ゾーンに渡されるビット・マスクとして表され、コンピュータ可読媒体が、１つまたは複数のプロセッサに、
非グローバル・ゾーンに属するプロセスによって保持される特権をビット・マスクと比較するステップと、
そのビット・マスクにない特権をプロセスから除去するステップと
を実行させる命令をさらに含む請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
要求されたオペレーションを実行するステップがオブジェクトにアクセスするステップを含み、コンピュータ可読媒体が、１つまたは複数のプロセッサに、
第１のプロセスがオブジェクトにアクセスする許可を有しているか否かを判定するステップを実行させる命令をさらに含む請求項１４に記載のコンピュータ可読媒体。
【請求項２１】
オペレーションが、
ファイル・システムをマウント又はアンマウントするステップ、ファイル・システムの許可を無効にするステップ、特権を持っているネットワーク・ポートにバインドするステップ、異なるユーザ識別子で他のプロセスを制御するステップの１つを含む請求項１４に記載のコンピュータ可読媒体。
【請求項２２】
オペレーションが、第１のプロセスに関連付けられたユーザ識別子を変更するステップを含み、要求されたオペレーションを実行することによって、第１のプロセスが追加の特権を取得することになるか否かかを判定するステップが、１つまたは複数のプロセッサに、
第１のプロセスに関連付けられたユーザ識別子を、特権を与えられたユーザ識別子に変更するための要求であるか否か、また、第１のプロセスが非グローバル・ゾーンに対する一組の許容される特権の少なくともそれぞれの特権を持っているか否かを判定するステップであって、
そうである場合、要求を許可し、
そうでない場合、第１のプロセスが要求に対する適切な特権を持っているか否かを判定し、
持っている場合、要求を許可し、
持っていない場合、要求を拒否するステップを実行させる命令を含む請求項１５に記載のコンピュータ可読媒体。
【請求項２３】
１つまたは複数のプロセッサに、
グローバル・ゾーンに関連して実行するプロセスからオペレーションを実行するための要求を受信するステップと、
この要求の受信に応じて、要求されたオペレーションを実行することによって、グローバル・ゾーンのプロセスが、そのプロセスに関連付けられた特権に加えて特権を取得することになるか否かを判定するステップと、
プロセスがそのプロセスに関連付けられた特権以外の追加の特権を取得することになる場合、要求を拒否するステップと
を実行させる命令をさらに含む請求項１４に記載のコンピュータ可読媒体。
【請求項２４】
オペレーションが第２のプロセスの制御権を得るステップを含み、要求されたオペレーションを実行することによって、グローバル・ゾーンに関連して実行するプロセスが追加の特権を取得することになるか否かかを判定するステップが、１つまたは複数のプロセッサに、
第１のプロセスのゾーン識別子が第２のプロセスのゾーン識別子に一致するか否かを判定し、
ゾーン識別子が一致しない場合、第１のプロセスが非グローバル・ゾーンに関連付けられているか否かを判定し、関連付けられている場合、その要求を拒否し、
ゾーン識別子が一致する場合、第１のプロセスが他のゾーンのプロセスを制御するために特権を持っているか否かを判定し、
第１のプロセスが他のゾーンのプロセスを制御するための特権を持っていない場合、要求を拒否するステップと；
第１のプロセスのユーザ識別子が第２のプロセスのユーザ識別子に一致するか否かを判定し、
ユーザ識別子が一致しない場合、第１のプロセスがプロセス所有者の特権を持っているか否かを判定し、
第１のプロセスがプロセス所有者の特権を持っていない場合、要求を拒否するステップと；
第１のプロセスが第２のプロセスが持つ特権の少なくともそれぞれを持っているか否かを判定し、
第１のプロセスが第２のプロセスの特権のそれぞれを持っていない場合、要求を拒否するステップと、
第２のプロセスのユーザ識別子が特権を与えられたユーザ識別子であるか否かを判定し、
第２のプロセスが特権を与えられたユーザ識別子を有していない場合、要求を許可するステップと；
第１のプロセスがグローバル・ゾーンに関連付けられているか否かを判定し、
第１のプロセスがグローバル・ゾーン・プロセスである場合、第１のプロセスがすべての特権を持っているか否かを判定し、
持っている場合、要求を許可し、持っていない場合、要求を拒否し、
第１のプロセスがグローバル・ゾーン・プロセスでなく、第１のプロセスが非グローバル・ゾーンに関連付けられている場合、第１のプロセスが非グローバル・ゾーンに対する一組の許容される特権のすべての特権を持っているか否かを判定し、
持っている場合、要求を許可し、持っていない場合、要求を拒否するステップと：
を実行させる命令を含む請求項２３に記載のコンピュータ可読媒体。
【請求項２５】
オペレーションがグローバル・ゾーンに関連して実行するプロセスに関連付けられたユーザ識別子を変更するステップを含み、要求されたオペレーションを実行することによって、グローバル・ゾーンに関連して実行するプロセスが追加の特権を取得することになるか否かかを判定するステップが、１つまたは複数のプロセッサに、
グローバル・ゾーンに関連して実行するプロセスに関連付けられたユーザ識別子を、特権を与えられたユーザ識別子に変更するための要求であるか否か、また、グローバル・ゾーンに関連して実行するプロセスがすべての特権を持っているか否かを判定するステップであって、
そうである場合、要求を許可し、
そうでない場合、グローバル・ゾーンに関連して実行するプロセスが要求に対して適切な特権を持っているか否かを判定し、
持っている場合、要求を許可し、
持っていない場合、要求を拒否するステップを実行させる命令を含む請求項２３に記載のコンピュータ可読媒体。
【請求項２６】
オペレーションが、
すべてのプロセス特権を修正するステップ、システム管理ファイルに書き込むステップ、デバイスを保持しているカーネル・メモリを開くステップ、オペレーティング・システム・コードを修正するステップ、ルート・ユーザに限定されているファイル・システムにアクセスするステップ、システム・クロックを設定するステップ、実行中プロセスのスケジュール優先順位を変更するステップ、アプリケーション用資源を確保するステップ、ネットワーク層に直接アクセスするステップ、カーネル・モジュールをロードするステップの１つを含む請求項２３に記載のコンピュータ可読媒体。
【請求項２７】
単一オペレーティング・システム・カーネル・インスタンスによって制御されるオペレーティング・システム環境で、他の非グローバル・ゾーンのプロセスからプロセスを分離するために１つのグローバル・ゾーンと少なくとも１つの非グローバル・ゾーンを確立する手段と、
オペレーションを実行するための第１の要求を、非グローバル・ゾーンに関連して実行する第１のプロセスから受信する手段と、
第１の要求の受信に応じて、要求されたオペレーションを実行することによって、第１のプロセスが第１のプロセスに許可されていない追加の特権を取得することになるか否かかを判定する手段と、
第１のプロセスが追加の特権を取得することになる場合、第１の要求を拒否する手段と
を含む装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、参照によりその全体を本明細書に組み込んだＡｎｄｒｅｗ  Ｇ．Ｔｕｃｋｅｒらによる「ＯＰＥＲＡＴＩＮＧ  ＳＹＳＴＥＭ  ＶＩＲＴＵＡＬＩＺＡＴＩＯＮ」という名称の２００３年５月９日出願の仮出願第６０／４６９，５５８号の特典を請求する。
【背景技術】
【０００２】
現代のコンピューティング・システムの多くは、完全には活用されていないコンピューティング資源を含む。これらのコンピューティング資源をより活用することによって、より大きな容量とコストの削減を得る潜在的な機会をこれらのシステムの所有者に提供できる。
【０００３】
活用を改善する問題に対処するために、単一ハードウェア・プラットフォームへ複数のアプリケーションを統合することを含めていくつかの方法を使用することができる。統合方式は、通常、より少ないハードウェア・プラットフォームでより多くの機能を達成するためにハードウェアの単一ユニットに複数のアプリケーションを共存させるように試みている。その目的に様々なコンピューティング資源管理技術を使用することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしこのようなコンピューティング資源管理の拡張は、単一プラットフォーム上で複数のアプリケーションの同時実行から発生するセキュリティや管理上の問題に対処しなければならない。例えば、複数の「信用できない」関係者、すなわち例えば市場の競争相手に属するウェブ・サーバ・アプリケーションが単一ハードウェア・プラットフォームに共同配置された場合、どちらの関係者も自分の関係者の個人情報に他の関係者がアクセスすることには不満である。アクセスが制御されていないと、例えばネットワーク接続、ＤＡＳＤ、出力装置などのハードウェア資源やファイル・システム資源、通信資源を割り当てて、使用するための機構を含むいくつかのコンピュータ・システム機能が、別の関係者の情報またはアプリケーションにアクセスするために、ある信用のない関係者によって使用される可能性がある。したがって、システム資源関連のタスクを実行する上でユーザが相互に信頼していない環境で、システム管理者は、多大な時間と費用で危機的なシステム資源の関与する各アクションを実行する責任を負わされる可能性がある。
【０００５】
統合技術から発生した利用とセキュリティ問題に対する１つの取り組み方は、単一プラットフォームで複数のマシン画像を効果的に作成して、複数の論理区画（ＬＰＡＲ）または仮想区画（ＶＰＡＲ）間でマシン資源を分割することである。このような論理区画による取り組み方は、潜在的に、異なるマシン画像に基づいたアプリケーションの間が完全に分離される可能性がある。しかし論理区画による取り組み方では複数の問題が発生する。このような取り組み方は、オペレーティング・システム・カーネルのような特権プログラムを分離するためにハードウェア・サポートの実装（追加特権レベルの導入のような）を必要とする場合がある。また、論理区画は、システム管理者が論理区画の構成、および論理区画間の資源割り当てを管理することを必要とする場合がある。
【０００６】
別の可能な取り組み方では、単一ハードウェア・プラットフォーム上で同時に実行されるオペレーティング・システム画像の１つまたは複数のインスタンスが、複数の「仮想マシン」を提供する。このような取り組み方では、各仮想マシンは、仮想マシンで実行中のプログラムに対して第２の仮想マシンで実行中の他のプログラムから分離させる別のオペレーティング・システム・インスタンスであってよい。このような仮想マシンによる取り組み方はアプリケーション間を分離させているが、このような取り組み方によって他の問題が発生する可能性がある。例えば、いくつかのアプリケーション用の全体のオペレーティング・システムの複数のインスタンスを有することは必要でも望ましくもない。様々なオペレーティング・システム画像に対する管理、運営の複雑さは、より簡素な取り組み方を有利に評価する場合がある。
【０００７】
別の取り組み方は、複数のオペレーティング・システム機能への区画化を実施することである。例えば、階層ファイル・システムを利用するいくつかのオペレーティング・システムは、特定プロセスへのファイル・システム・アクセスを制限することによって区画化のレベルを提供する機能を含む。しかしこのような機構は欠点も有している。例えば、ファイル・システム名前空間のプロセスの可視性は多くの実施形態でファイル・システムの単一サブツリーに限られる。したがって、区画化は、通常、プロセスまたはネットワーク接続空間には拡大せず、他の可能なプロセスによって監視および干渉を行う。
【０００８】
さらにまた別の取り組み方は、システム資源の区画化された割り当て、すなわち、ファイル・システム、ネットワーク機能などに対してプロセスとその子孫（すなわち、親と子）を制限することである。この取り組み方では、「Ｊａｉｌ」と称されるこのような区画に入れられたプロセスは、割り当てられたシステム資源へのアクセス権は持っているが、Ｊａｉｌ外部のファイル、プロセス、またはネットワーク・サービスへの可視性もアクセス権も有しない。Ｊａｉｌによる取り組み方でも同様に複数の問題が発生する。通常、ＪａｉｌはＪａｉｌが作成されたプロセスから離れた独立した存在を有しない。すなわち、Ｊａｉｌを作成するプロセス（および、あるならばその子孫）が一度終了すると、そのＪａｉｌは終了する。同様に、第２のプロセスはＪａｉｌに「加わる」ことができない。
【課題を解決するための手段】
【０００９】
一実施態様では、本発明は、１つのグローバル・ゾーンと１つまたは複数の非グローバル・ゾーンに区画されたオペレーティング・システム環境で細粒度特権モデルを使用してプロセスのアクティビティを管理する技術を提供する。これらのゾーンは、１つまたは複数の仮想環境を実装する。１つの非グローバル・ゾーンに関連したプロセスは他の非グローバル・ゾーンに関連したプロセスから分離されている。グローバル・ゾーンは、管理者がオペレーティング・システム環境全体に影響を与えるプロセスを呼び出すためのシステム管理環境を提供している。非グローバル・ゾーンは、単一オペレーティング・カーネル・インスタンスによって制御される。一実施態様では、マウントを実行する、またはファイル・システムあるいは他のオブジェクトを操作するための特権のような複数の特定の特権が提供される。実施態様は、細粒度特権モデルを使用して、プロセスに特定のオペレーションを実行する機能を持たせ、それ以外のオペレーションを実行するのを制限する。
【００１０】
一実施態様では、ある非グローバル・ゾーンで実行中のプロセスによるアクティビティを、その非グローバル・ゾーン内で実行するのに「安全」と見なされるオペレーションに限定するために、特権制限が各非グローバル・ゾーンに関連付けられる。一実施態様では、非グローバル・ゾーン内のアクティビティを、その非グローバル・ゾーンに関連して実行するプロセスに対して安全または適切と見なされるシステムの特権のサブセットに限定することができる。一実施態様では、非グローバル・ゾーンの特権制限を指定するために非グローバル・ゾーンを作成するよう呼び出されるシステム・コールに引数が追加される。この引数は、発呼者が非グローバル・ゾーンに対する一組の許容される特権を指定することができる。この一組の許容される特権は、一実施態様では、ゾーンに入るすべてのプロセスに対するマスクとして使用される。
【００１１】
プロセスが追加の特権を取得するためにそのプロセス自体の特権を使用することを防止するために、オペレーティング・システムは、権限を要求しているプロセスに、グローバル・ゾーンから実行されている場合はすべての特権を持っているために、または非グローバル・ゾーンから実行されている場合は一組の許容される特権のすべての特権を持っているために特定のオペレーションを実行することを要求する。例えば、特権を与えられたユーザ（「ルート・ユーザ」とも称される）が所有するファイル・システム・オブジェクトへの書き込みアクセスを実行するために、特権を与えられたユーザ識別子に関連付けられていないプロセスがすべての特権を持っているよう要求することができる。別の例では、オペレーティング・システムは、特権を与えられたユーザ識別子、すなわち有効なユーザ識別子０に関連付けられた別のプロセスに対する制御を確立することを求めるプロセスに、非グローバル・ゾーンで使用可能なすべての特権を持っていることを要求することができる。一実施態様では、特権を与えられたユーザ識別子に関連付けられていないプロセス（「非ルート・プロセス」とも称される）であって特権のすべてではなく一部を持っているプロセスが、そのプロセスの所有する特権を強化するためにルート・ユーザ識別子のいかなる特別な取り扱いをも使用することを阻止することができる。例えば、ルート・ユーザには関連付けられていないが、書き込み許可を無効にする特権、すなわちＰＲＩＶ＿ＦＩＬＥ＿ＤＡＣ＿ＷＲＩＴＥ特権を持っているプロセスが、そのプロセスに追加の特権を付与することのできるモジュールをそのプロセスがロードしないようにするためにカーネル・モジュールのテキストを修正することが阻止される。
【００１２】
非グローバル・ゾーンに関連したプロセスに使用可能な特権に対する制限によって、非グローバル・ゾーンのプロセスがアクセスすることのできるオブジェクトに対する制約は除去されない。プロセスが所与のオペレーションを実行することができるか否かを判定するために特権を使用することができる。オペレーションを実行することがプロセスに許可されている場合でも、特権はオペレーションを適用することのできるオブジェクトを限定しない。一部の実施態様ではオブジェクトへのアクセスを制御するために他の技術が使用される。
【発明を実施するための最良の形態】
【００１３】
図１は本発明の一実施形態を実施することのできる代表的オペレーティング・システム環境の機能ブロック図である。
【００１４】
図２Ａは本発明の一実施形態を実施することのできる図１のオペレーティング・システム環境のプロセスの機能ブロック図である。
【００１５】
図２Ｂは本発明の一実施形態を実施することのできる図１のオペレーティング・システム環境のプロセスの機能ブロック図である。
【００１６】
図２Ｃは本発明の一実施形態を実施することのできる図１のオペレーティング・システム環境に対するファイル・システム例の機能ブロック図である。
【００１７】
図３Ａから図３Ｄは本発明の一実施形態の動作を示す動作流れ図である。
【００１８】
図４は本発明の一実施形態の１つまたは複数の構成要素を実施するために使用することのできる代表的コンピュータ・システムのハードウェア・ブロック図である。
【００１９】
システム概要
一実施形態では、本発明は、１つのグローバル・ゾーンと１つまたは複数の非グローバル・ゾーンに区画されるオペレーティング・システム環境で細粒度特権モデルを使用してプロセスのアクティビティを管理するための技術を提供する。非グローバル・ゾーンは、その非グローバル・ゾーンに関連したプロセスを他の非グローバル・ゾーンに関連したプロセスから分離することのできる仮想環境を備えている。各非グローバル・ゾーンは、そのゾーンに関連したプロセスのどれよりも長い寿命を持つことのできる永続環境を提供する。
【００２０】
一実施形態では、オペレーティング・システムの資源へのアクセスを制御する方法が提供される。この方法は、プロセスを、単一カーネル・インスタンスによって制御されるオペレーティング・システム環境の他の非グローバル・ゾーンのプロセスから分離するために、１つのグローバル・ゾーンと少なくとも１つの非グローバル・ゾーンを確立することを含む。非グローバル・ゾーンに関連して実行する第１のプロセスからオペレーションを実行するための第１の要求を受信することもこの方法の一部である。この方法は、要求の受信に応じて、要求されたオペレーションを実行することによって、第１のプロセスには許可されていない追加の特権を取得することを第１のプロセスに可能にするか否かを判定することも含む。第１のプロセスが追加の特権を取得することができる場合、第１の要求を拒否することもこの方法の一部である。
【００２１】
一実施形態では、第１のプロセスが第２のプロセスの制御権を取得するための要求を行う場合、この方法は、第１のプロセスのゾーン識別子が第２のプロセスのゾーン識別子と一致するか否かを判定することにより、要求されたオペレーションを許可することによって、第１のプロセスが追加の特権を取得することができるか否かを判定する。ゾーン識別子が一致しない場合、この方法は、第１のプロセスが非グローバル・ゾーンに関連付けられているか否かを判定する。第１のプロセスが非グローバル・ゾーンに関連付けられている場合、要求は拒否される。そうでない場合、この方法は、第１のプロセスが他のゾーンのプロセスを制御する特権を持っているか否かを判定する。第１のプロセスが他のゾーンのプロセスを制御する特権を持っていない場合、要求は拒否される。そうでない場合、この方法は、第１のプロセスのユーザ識別子が第２のプロセスのユーザ識別子と一致するか否かを判定する。ユーザ識別子が一致しない場合、この方法は、第１のプロセスが別の有効なユーザ識別子を有するプロセスを信号伝達または制御する特権を持っているか否かを判定する。第１のプロセスがこの特権を持っていない場合、要求は拒否される。そうでない場合、この方法は、第１のプロセスは第２のプロセスが所有する特権の少なくともそれぞれを持っているか否かを判定する。第１のプロセスが第２のプロセスの特権の少なくともそれぞれを持っていない場合、要求は拒否される。そうでない場合、方法は、第２のプロセスのユーザ識別子が特権を与えられたユーザの識別子か否かを判定する。第２のプロセスが特権を与えられたユーザの識別子を有していない場合、要求は許可される。そうでない場合、この方法は、第１のプロセスがグローバル・ゾーンに関連付けられるか否かを判定する。第１のプロセスがグローバル・ゾーン・プロセスの場合、この方法は、第１のプロセスがすべての特権を持っているか否かを判定する。第１のプロセスがすべての特権を持っている場合、要求は許可される。そうでない場合、要求は拒否される。第１のプロセスが非グローバル・ゾーンに関連付けられている場合、この方法は、第１のプロセスが非グローバル・ゾーンに対する一組の許容される特権のすべての特権を持っているか否かを判定する。第１のプロセスがゾーンのすべての特権を持っている場合、要求は許可される。そうでない場合、要求は拒否される。
【００２２】
一実施形態では、プロセスを他の非グローバル・ゾーンのプロセスから分離するために非グローバル・ゾーンを確立することは、非グローバル・ゾーンに対する特権制限を設定することを含む。特権制限は、非グローバル・ゾーン内で実行するプロセスに対する一組の許容される特権を示す。特権制限は、例えば作成された際に非グローバル・ゾーンに渡されるビット・マスクとして表すことができる。一実施形態では、この方法は、非グローバル・ゾーンを結合するプロセスによって保持される特権をビット・マスクと比較すること、およびその一組の許容される特権（すなわち、一実施形態ではビット・マスク）にない特権をプロセスから除去することを含む。
【００２３】
一実施形態では、要求されたオペレーションを実行することが、ファイル・システム・オブジェクトにアクセスすることを含む場合、この方法は、第１のプロセスがオブジェクトにアクセスする許可を有するか否かを判定することをさらに含む。
【００２４】
非グローバル・ゾーンまたはグローバル・ゾーンの適切な特権に従うことを許可されたプロセスによって要求することのできる他のオペレーションは、限定はしないが、ファイル・システムをマウント（アンマウント）すること、ファイル・システムの許可を無効にすること、特権を持っているネットワーク・ポートにバインドすること、異なるユーザ識別子で他のプロセスを制御することなどを含む。
【００２５】
一実施形態では、第１のプロセスがそのプロセスに関連付けられたユーザ識別子を変更する要求を行う場合、本方法は、要求されたオペレーションを実行することが、第１のプロセスが追加の特権を取得することになるか否かを判定する。一実施形態では、これは、要求が第１のプロセスのユーザ識別子を、特権を与えられたユーザの識別子に変更するか否かを判定することを含む。プロセスが特権を与えられたユーザの識別子に関連付けられるよう要求している場合、第１のプロセスが非グローバル・ゾーンに対する一組の許容される特権の少なくともそれぞれの特権を持っているか否かを判定するテストが行われる。そうである場合、要求は許可される。そうでない場合、第１のプロセスがその要求に対して適切な特権を持っているか否かを判定するテストが行われ、そうである場合、要求は許可される。要求に対する適切な特権は、一組のユーザ識別子の特権などを含むことができる。これ以外の場合はすべて要求は拒否される。
【００２６】
別の形態では、一実施形態で、本発明は、グローバル・ゾーンに関連して実行するプロセスからオペレーションを実行するための要求を受信することを含む方法を提供する。この要求の受信に応じて、本方法は、要求されたオペレーションを実行することによって、プロセスが、そのプロセスに許可されない追加の特権を取得することになるか否かを判定する。要求を許可することによって、プロセスが、そのプロセスに許可されない追加の特権を取得することになる場合、要求は拒否される。
【００２７】
一実施形態では、グローバル・ゾーンに関連したプロセスが第２のプロセスの制御権を取得する要求を行う場合、本方法は、要求されたオペレーションを許可することによって、グローバル・ゾーンに関連して実行するプロセスが追加の特権を取得することになるか否かを判定する。この方法は、第１のプロセスのゾーン識別子が第２のプロセスのゾーン識別子と一致するか否かを判定する。ゾーン識別子が一致しない場合、この方法は、第１のプロセスが非グローバル・ゾーンに関連付けられているか否かを判定する。第１のプロセスが非グローバル・ゾーンに関連付けられている場合、要求は拒否される。そうでない場合、この方法は、第１のプロセスが他のゾーンのプロセスを制御する特権を持っているか否かを判定する。第１のプロセスが他のゾーンのプロセスを制御する特権を持っていない場合、要求は拒否される。そうでない場合、この方法は、第１のプロセスのユーザ識別子が第２のプロセスのユーザ識別子と一致するか否かを判定する。ユーザ識別子が一致しない場合、この方法は、第１のプロセスが別の有効なユーザ識別子でプロセスを信号で伝達するかまたは制御する特権を持っているか否かを判定する。第１のプロセスがこの特権を持っていない場合、要求は拒否される。そうでない場合、この方法は、第１のプロセスが第２のプロセスの所有する特権の少なくともそれぞれを持っているか否かを判定する。第１のプロセスが第２のプロセスの所有する特権のそれぞれを持っていない場合、要求は拒否される。そうでない場合、方法は、第２のプロセスのユーザ識別子が特権を与えられたユーザ識別子であるか否かを判定する。第２のプロセスが特権を与えられたユーザの識別子を有していない場合、要求は許可される。そうでない場合、この方法は、第１のプロセスがグローバル・ゾーンに関連付けられているか否かを判定する。第１のプロセスがグローバル・ゾーン・プロセスである場合、この方法は、第１のプロセスがすべての特権を持っているか否かを判定する。第１のプロセスがすべての特権を持っている場合、要求は許可される。そうでない場合、要求は拒否される。第１のプロセスが非グローバル・ゾーンに関連付けられている場合、この方法は、第１のプロセスが非グローバル・ゾーンに対する一組の許容される特権のすべての特権を持っているか否かを判定する。第１のプロセスがゾーンのすべての特権を持っている場合、要求は許可される。そうでない場合、要求は拒否される。
【００２８】
一実施形態では、グローバル・ゾーンに関連して実行するプロセスがそのプロセスに関連付けられたユーザ識別子を変更するための要求を行った場合、本方法は、要求されたオペレーションを実行することによって、グローバル・ゾーンに関連して実行するプロセスが追加の特権を取得することになるか否かを判定する。一実施形態では、これは、この要求が、グローバル・ゾーンに関連して実行するプロセスに関連付けられたユーザ識別子を、特権を与えられたユーザの識別子に変更するか否かを判定することを含む。プロセスが特権を与えられたユーザの識別子に関連付けられることを要求している場合、グローバル・ゾーンに関連して実行するプロセスがオペレーティング・システムのすべての特権を持っているか否かを判定するテストが行われる。そうである場合、要求は許可される。そうでない場合、グローバル・ゾーンに関連して実行するプロセスが要求に対して適切な特権を持っているか否かを判定するテストが行われ、そうである場合、要求は許可される。そうでない場合、要求は拒否される。
【００２９】
適切な特権に従うことを許可された、グローバル・ゾーンのプロセスによって要求することのできる他のオペレーションは、限定はしないが、すべてのプロセス特権を修正すること、システム管理ファイルに書き込むこと、デバイスを保持しているカーネル・メモリを開くこと、オペレーティング・システム・コードを修正すること、ルート・ユーザに限定されているファイル・システムにアクセスすること、システム・クロックを設定すること、実行中プロセスのスケジュール優先順位を変更すること、アプリケーション用資源を確保すること、ネットワーク層に直接アクセスすること、さらにカーネル・モジュールをロードすることを含む。
【００３０】
他の形態では、本発明は、一部の実施形態で、コンピュータ装置、コンピューティング・システム、上記の方法を遂行するよう構成されたコンピュータ可読媒体を包含する。
【００３１】
一部の実施形態は、細粒度特権モデルを使用して、単一カーネル・オペレーティング・システム環境で実行するプロセスによる計算オブジェクトと資源へのアクセスを制御することができる。一部の実施形態は、非グローバル・ゾーンに関連して実行するプロセスを分離することができ、したがって、そのようなプロセスは非グローバル・ゾーンに対して提供された制限によって許可された特権を持っている。一部の実施形態は、オペレーションを実行することを要求しているプロセスがそのオペレーションを実行するのに十分な特権を持っているか否かをチェックし、特権のその判定に基づいて要求を許可または拒否することができる。
【００３２】
概要
図１は、本発明の一実施形態によるオペレーティング・システム（ＯＳ）環境１００の機能ブロック図である。ＯＳ環境１００は、例えば図４に示すコンピュータ・システム４００のような汎用コンピュータ・システムでＯＳを実行することにより導き出される。説明のために、ＯＳはカリフォルニア州、サンタクララのＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ社製Ｓｏｌａｒｉｓと仮定する。しかし、本明細書で教示される概念は、限定はしないが、Ｕｎｉｘ（登録商標）、Ｌｉｎｕｘ、Ｗｉｎｄｏｗｓ（登録商標）、ＭａｃＯＳ（商標）などを含めていかなるＯＳにも適用することができることに留意されたい。
【００３３】
図１に示すように、ＯＳ環境１００は、グローバル・ゾーン１３０と０または１つ以上の非グローバル・ゾーン１４０を含む、１つまたは複数のゾーン（本明細書では区画とも称する）からなる。グローバル・ゾーン１３０は、ＯＳがブートされ、実行された際に作成される汎用ＯＳ環境であり、非グローバル・ゾーン１４０が作成された場合にはプロセスを実行することのできるディフォルト・ゾーンとして働く。グローバル・ゾーン１３０では、適切な権利と特権を持っている管理者および／またはプロセスは、一般的にいかなるタスクでも実行し、ＯＳが実行されるコンピュータ・システムで使用可能ないかなるデバイス／資源にもアクセスすることができる。したがって、グローバル・ゾーン１３０では、管理者はコンピュータ・システム全体を管理することができる。一実施形態では、管理者が非グローバル・ゾーン１４０を構成し、管理するためにプロセスを実行するのはグローバル・ゾーン１３０の中である。
【００３４】
非グローバル・ゾーン１４０は、ＯＳ環境１００の別の異なる区画を表している。非グローバル・ゾーン１４０の目的の１つは分離させることである。一実施形態では、限定はしないがプロセス１７０、１つまたは複数のファイル・システム１８０、１つまたは複数の論理ネットワーク・インターフェース１８２を含めて、複数のエンティティを分離するために非グローバル・ゾーン１４０が使用される。この分離により、１つの非グローバル・ゾーン１４０で実行されるプロセス１７０は、いかなる他のゾーンのプロセスにもアクセスしたり、影響を与えたりすることはできない。同様に、非グローバル・ゾーン１４０のプロセス１７０は、別のゾーンのファイル・システム１８０にアクセスしたり、影響を与えたりすることも、別のゾーンのネットワーク・インターフェース１８２にアクセスしたり、影響を与えたりすることもできない。したがって、非グローバル・ゾーン１４０のプロセス１７０は、そのゾーンのプロセスとエンティティにアクセスし、影響を与えることに限定される。この方法で分離されて、各非グローバル・ゾーン１４０は仮想のスタンドアロン・コンピュータのように振舞う。異なる非グローバル・ゾーン１４０のプロセス１７０は相互にアクセスしたり影響を与えたりすることはできないが、これらはそれぞれの論理ネットワーク・インターフェース１８２を介してネットワーク接続経由で相互に通信できるということに留意されたい。これは、別のスタンドアロン・コンピュータでプロセスが相互に通信する方法に類似している。
【００３５】
互いに分離された非グローバル・ゾーン１４０を有することが多くのアプリケーションでは望ましい場合がある。例えば、ＯＳの単一のインスタンスを実行する単一コンピュータ・システムを使用して異なる競合相手（例えば、競合するウェブサイト）のアプリケーションをホストする場合、競合相手のデータやプロセスを別の競合相手のデータやプロセスから分離することが望ましい。この方法で、情報が競合相手間で漏洩することがないよう保証することができる。ＯＳ環境１００を非グローバル・ゾーン１４０に区画し、競合相手のアプリケーションを別の非グローバル・ゾーン１４０でホストすることは、この分離を達成する１つの可能な方法である。
【００３６】
一実施形態では、各非グローバル・ゾーン１４０を別々に管理する。より具体的には、特定の非グローバル・ゾーン１４０にゾーン管理者を割り当て、そのゾーン管理者にその非グローバル・ゾーン１４０の様々な形態を管理するための権利と特権を付与することが可能である。このような権利と特権により、ゾーン管理者はその非グローバル・ゾーン１４０内のプロセスや他のエンティティに影響を与える管理タスクをいくつでも実行することができる。しかし、ゾーン管理者はいかなる他の非グローバル・ゾーン１４０またはグローバル・ゾーン１３０のいずれにも変更したり影響を与えたりすることはできない。したがって、上記の例では、各競合相手は自身のゾーン、すなわちアプリケーションの自身の独自の一組を管理することはできるが、他の競合相手のアプリケーションを変更したり影響を与えたりすることはできない。一実施形態では、非グローバル・ゾーン１４０が他のゾーンに影響を与えることを防止するために、非グローバル・ゾーン１４０のエンティティは、一般に、コンピュータ・システムの物理デバイスのどれにでもアクセスし、またはそれを制御することは許可されない。
【００３７】
非グローバル・ゾーン管理者とは反対に、適切な権利と特権を持っているグローバル・ゾーン管理者は、ＯＳ環境１００やコンピュータ・システムのすべての形態を全体的に管理することができる。したがって、グローバル・ゾーン管理者は、例えば物理デバイスにアクセスし、それを制御し、システム資源を割り当て、それを制御し、動作パラメータ等を確立することなどができる。グローバル・ゾーン管理者は、非グローバル・ゾーン１４０内のプロセスやエンティティにアクセスし、これを制御することもできる。
【００３８】
一実施形態では、ゾーン境界の強制はカーネル１５０によって実行される。より具体的には、ある非グローバル・ゾーン１４０のプロセス１７０が別のゾーン（非グローバルまたはグローバル）のプロセス１７０、ファイル・システム１８０、ネットワーク・インターフェース１８２にアクセスし、または影響を与えることができないことを保証するのはカーネル１５０である。ゾーン境界を強制することに加え、カーネル１５０は他のサービスもいくつでも提供する。これらのサービスは、確実に限定はしないが、非グローバル・ゾーン１４０のネットワーク・インターフェース１８２をコンピュータ・システムの物理ネットワーク・デバイス１２０にマッピングすることや、非グローバル・ゾーン１４０のファイル・システム１８０をコンピュータ・システムの物理ストレージ１１０のファイル・システム全体にマッピングすることを含む。カーネル１５０のオペレーションを後の節でより詳細に説明する。
【００３９】
非グローバル・ゾーン状態
一実施形態では、非グローバル・ゾーン１４０は、（１）構成済み、（２）インストール済み、（３）準備完了、（４）実行中の４つの状態の１つを取ることができる。非グローバル・ゾーン１４０が構成済みの状態にある場合、グローバル・ゾーン１３０の管理者が、非グローバル・ゾーン１４０の構成パラメータのすべてを指定するためにオペレーティング・システムのユーティリティ（一実施形態では、ｚｏｎｅｃｆｇ（１ｍ））を既に呼び出しており、その構成を永続物理ストレージ１１０に既に保存していることを示している。非グローバル・ゾーン１４０を構成する際、管理者は複数の異なるパラメータを指定することができる。これらのパラメータは、限定はしないが、ゾーン名、ファイル・システム１８０のルート・ディレクトリへのゾーン・パス、ゾーンが作成された際にマウントされるべき１つまたは複数のファイル・システムの仕様、０または１つ以上のネットワーク・インターフェースの仕様、ゾーンが作成された際に構成されるべきデバイスの仕様、さらに０または１つ以上の資源プール関連を含む。
【００４０】
ゾーンが一度構成済み状態に入ると、グローバル管理者は、ゾーンをインストール済みの状態にするために別のオペレーティング・システム・ユーティリティ（一実施形態では、ｚｏｎｅａｄｍ（１ｍ））を呼び出す。呼び出された場合、オペレーティング・システム・ユーティリティは、必要なファイルとディレクトリのすべてをゾーンのルート・ディレクトリまたはそのサブディレクトリにインストールするためにカーネル１５０と対話する。
【００４１】
インストール済みのゾーンを準備完了状態にするために、グローバル管理者は、ｚｏｎｅａｄｍｄプロセス１６２を開始させるオペレーティング・システム・ユーティリティ（一実施形態では、再びｚｏｎｅａｄｍ（１ｍ）である）を呼び出す（各非グローバル・ゾーンに関連付けられたｚｏｎｅａｄｍｄプロセスがある）。一実施形態では、ｚｏｎｅａｄｍｄ  １６２はグローバル・ゾーン１３０内で実行され、その関連付けられた非グローバル・ゾーン１４０の管理を担当している。ｚｏｎｅａｄｍｄ  １６２は開始されると、非グローバル・ゾーン１４０を確立するためにカーネル１５０と対話する。非グローバル・ゾーン１４０を作成する際、限定はしないが、ゾーンＩＤを割り当て、ｚｓｃｈｅｄプロセス１６４を開始し（ｚｓｃｈｅｄはカーネル・プロセスだが、非グローバル・ゾーン１４０で実行され、非グローバル・ゾーン１４０に関連付けられたカーネル資源を追跡するために使用される）、ファイル・システム１８０をマウントし、ネットワーク・インターフェース１８２の深さを調べ、デバイスを構成させ、資源制御を設定することを含め、複数のオペレーションを実行する。これらおよび他のオペレーションは、通常のオペレーションに対して備えるために非グローバル・ゾーン１４０を準備完了状態にする。
【００４２】
非グローバル・ゾーン１４０を準備完了状態にすることにより、１つまたは複数のプロセスを実行することのできる仮想プラットフォームが生じる。この仮想プラットフォームは、１つまたは複数のプロセスを、他の非グローバル・ゾーン１４０のプロセスと分離して非グローバル・ゾーン１４０内で実行することを可能にするために必要なインフラストラクチャを提供する。仮想プラットフォームは、非グローバル・ゾーン１４０が仮想のスタンドアロン・コンピュータのように振舞うように、非グローバル・ゾーン１４０内でファイル・システム１８０とネットワーク・インターフェース１８２のような他のエンティティを分離させる。非グローバル・ゾーン１４０が準備完了状態にある場合に、そのゾーン内でユーザまたは非カーネル・プロセスは実行されないことに注意されたい（ｚｓｃｈｅｄはカーネル・プロセスであって、ユーザ・プロセスではないことを想起されたい）。したがって、非グローバル・ゾーン１４０によって提供された仮想プラットフォームは、非グローバル・ゾーン１４０内で実行中のいかなるプロセスからも独立している。別の方法で、ゾーンと、したがって仮想プラットフォームは、ユーザまたは非カーネル・プロセスがそのゾーン内で実行中でない場合でさえ存在する。これは、非グローバル・ゾーン１４０は、そのゾーンまたはＯＳが終了するまでそのゾーンが作成された時点から存在し続けることができるという意味である。非グローバル・ゾーン１４０の寿命を、そのゾーン内で実行中のいかなるユーザまたは非カーネル・プロセスの所要時間に限定する必要はない。
【００４３】
非グローバル・ゾーン１４０は準備完了状態に入った後、そのゾーンで１つまたは複数のユーザ・プロセスを実行することによって実行中状態に遷移することができる。一実施形態では、これは、ｚｏｎｅａｄｍｄ  １６２にその関連付けられたゾーンのｉｎｉｔプロセス１７２を開始させることによって行われる。一度開始されると、ｉｎｉｔプロセス１７２は、どのアプリケーションを実行するかを決定するために非グローバル・ゾーン１４０のファイル・システム１８０を見る。次いでｉｎｉｔプロセス１７２は、１つまたは複数の他のプロセス１７４を生じさせるためにこれらのアプリケーションを実行する。この方法で、アプリケーション環境は非グローバル・ゾーン１４０の仮想プラットフォームで開始される。このアプリケーション環境で、すべてのプロセス１７０は非グローバル・ゾーン１４０内に限定され、したがって、これらは他のゾーンのプロセス、ファイル・システム、またはネットワーク・インターフェースにアクセスし、または影響を与えることができない。アプリケーション環境は、非グローバル・ゾーン１４０内で１つまたは複数のユーザ・プロセスが実行されている限り存在する。
【００４４】
非グローバル・ゾーン１４０が一度実行中状態に入ると、それを管理するためにその関連するｚｏｎｅａｄｍｄ  １６２を使用することができる。複数のゾーン管理タスクを開始し、制御するためにｚｏｎｅａｄｍｄ  １６２を使用することができる。これらのタスクには、例えば非グローバル・ゾーン１４０を一時停止させ、再起動することを含む。非グローバル・ゾーン１４０は一度一時停止させられると、実行中状態からインストール済み状態に後退する。実際には、アプリケーション環境と仮想プラットフォームの両方が終了する。非グローバル・ゾーン１４０は、再起動されせられると、実行中状態からインストール済み状態に後退し、次いでインストール済み状態から準備完了状態を経て実行中状態に遷移する。実際には、アプリケーション環境と仮想プラットフォームの両方が終了し、再開する。正常な動作中に進行中であることを基礎として非グローバル・ゾーン１４０を管理するためにｚｏｎｅａｄｍｄ  １６２によってこれらおよび多くの他のタスクを開始し、制御することができる。
【００４５】
細粒度特権
図２Ａは、本発明の一実施形態を実装することのできる図１のオペレーティング・システム環境のプロセスの機能ブロック図である。図２Ａに示すように、実行中、オペレーティング・システム環境１００は、本明細書で非グローバル・ゾーン１４０と総称する、非グローバル・ゾーンＡ  １４０（ａ）と非グローバル・ゾーンＢ  １４０（ｂ）を含めて複数の非グローバル・ゾーンを提供する。非グローバル・ゾーン１４０は、それらに関連したプロセスのどれよりも長い寿命を持つことができるので永続環境である。さらに、非グローバル・ゾーン１４０は、非グローバル・ゾーンＡ  １４０（ａ）内で実行中のプロセスＡ１  １７４−１（ａ）、および非グローバル・ゾーンＢ  １４０（ｂ）内で実行中のプロセスＢ１  １７４−１（ｂ）のようなプロセスの分離された実行をサポートすることができるので、仮想環境を提供する。非グローバル・ゾーン１４０（ａ）、１４０（ｂ）に関連して実行されるプロセスは、単一カーネル・インスタンス１５０により制御される。プロセスＣ１  １７４−１（ｃ）も、オペレーティング・システム環境１００のグローバル・ゾーン１３０内で実行することができる。
【００４６】
さらに図２Ａを参照すると、一実施形態の細粒度特権のオペレーションが一例により説明されているが、ここで、非グローバル・ゾーンＡ  １４０（ａ）に関連して実行するプロセスＡ１  １７４−１（ａ）は、実線１１３（ａ）で示すように非グローバル・ゾーンＡ  １４０（ａ）に関連付けられたターゲット・プロセスＡ２  １７４−２（ａ）の制御権を取得するための要求を行う。図２Ａによって示されるように、プロセスＡ１  １７４−１（ａ）はユーザ識別子ＵＩＤ  Ａ１  ２４５−１（ａ）に関連付けられている。同様に、ターゲット・プロセスＡ２  １７４−２（ａ）はユーザ識別子ＵＩＤ  Ａ２  ２４５−２（ａ）に関連付けられている。場合により、ユーザ識別子ＵＩＤ  Ａ１  ２４５−１（ａ）とユーザ識別子ＵＩＤ  Ａ２  ２４５−２（ａ）は同じユーザ識別子である。また他の場合は、ユーザ識別子ＵＩＤ  Ａ１  ２４５−１（ａ）とユーザ識別子ＵＩＤ  Ａ２  ２４５−２（ａ）は異なる。
【００４７】
プロセスＡ１  １７４−１（ａ）は非グローバル・ゾーンＡ  １４０（ａ）に関連付けられているので、プロセスＡ１の特権は、非グローバル・ゾーンＡ  １４０（ａ）を作成するプロセスによって指定される一組の許容される特権に限定される。したがって、一実施形態で、プロセスＡ１  １７４−１（ａ）は、非グローバル・ゾーンＡ  １４０（ａ）でオペレーションを実行するためのオペレーティング・システム環境１００で使用可能なすべての特権を持っている必要はない。全ての特権は通常ならばグローバル・ゾーン１３０で実行するプロセスに要求される。プロセスＡ１  １７４−１（ａ）は非グローバル・ゾーン１４０（ａ）に関連付けられているので、一組の許容される特権で指定されていない特権を保持することは禁止されている。したがって、非グローバル・ゾーン１４０に関連して実行するプロセスによって実行されるオペレーションのタイプと、そのオペレーションの範囲を、特権の細粒度割り当てを使用して制御する。同様に、非グローバル・ゾーンＢ  １４０（ｂ）に関連したプロセスＢ１  １７４−１（ｂ）を、非グローバル・ゾーンＢ  １４０（ｂ）に対する一組の許容される特権によって許可されるオペレーションのタイプと範囲の一方または双方に限定することができる。一部の実施形態では、非グローバル・ゾーンＡ  １４０（ａ）に対する一組の許容される特権は、非グローバル・ゾーンＢ  １４０（ｂ）のそれと同じである。別の実施形態では、非グローバル・ゾーンＡ  １４０（ａ）に対する一組の許容される特権は非グローバル・ゾーンＢ  １４０（ｂ）の一組の許容される特権と異なっている。一実施形態では、非グローバル・ゾーン１４０の一組の許容される特権によって許可されたオペレーションは、限定はしないが、ファイル・システムをマウント（アンマウント）すること、ファイル・システムの許可を無効にすること、特権を持っているネットワーク・ポートにバインドすること、異なるユーザ識別子で他のプロセスを制御することを含む。
【００４８】
グローバル・ゾーン１３０に関連したプロセスＣ１  １７４−１（ｃ）は非グローバル・ゾーン１４０の一組の許容される特権の他にさらに他の特権が与えられており、それらには、一実施形態ではオペレーティング・システム環境１００下で使用可能なすべての特権を含む。一実施形態では、プロセスＣ１  １７４−１（ｃ）は、限定はしないが、すべてのプロセス特権を修正すること、システム管理ファイルに書き込むこと、デバイスを保持するカーネル・メモリを開くこと、オペレーティング・システム・コードを修正すること、ルート・ユーザに限定されたファイル・システムにアクセスすること、システム・クロックを設定すること、実行中プロセスのスケジュール優先順位を変更すること、アプリケーション用資源を確保すること、ネットワーク層に直接アクセスすること、カーネル・モジュールをロードすることを実行するための特権を持っていることができる。
【００４９】
一実施形態では、オペレーティング・システム環境１００は、１つまたは複数の基準に基づいてターゲット・プロセスＡ２  １７４−２（ａ）を制御することの要求を許可するか否かを判定するために、プロセスＡ１  １７４−１（ａ）によって要求された特権を決定する。一実施形態では、オペレーティング・システム環境１００は、プロセスＡ１  １７４−１（ａ）による要求を許可するか否かを判定する際に、ユーザ識別子ＵＩＤ  Ａ１  ２４５−１（ａ）とユーザ識別子ＵＩＤ  Ａ２  ２４５−２（ａ）が同じか否か、ユーザ識別子ＵＩＤ  Ａ２  ２４５−２（ａ）が、例えばスーパー・ユーザのような特別な特権を与えられたユーザ識別子か否か、プロセスＡ１  １７４−１（ａ）が、例えばＰＲＩＶ＿ＰＲＯＣ＿ＯＷＮＥＲのような他のユーザ識別子に属するプロセスを制御できる特権を所有しているか否かの１つまたは複数を評価することができる。例えば、ユーザ識別子ＵＩＤ  Ａ１  ２４５−１（ａ）とユーザ識別子ＵＩＤ  Ａ２  ２４５−２（ａ）が等しい場合、またはプロセスＡ１  １７４−１（ａ）がＰＲＩＶ＿ＰＲＯＣ＿ＯＷＮＥＲ特権を持っている場合、プロセスＡ１  １７４−１（ａ）がターゲット・プロセスＡ２  １７４−２（ａ）が持っている特権と少なくとも同じ数だけ特権を持っているならば、ターゲット・プロセスＡ２  １７４−２（ａ）に対する制御権を得るためのプロセスＡ１  １７４−１（ａ）による要求は許可される。プロセスＡ１  １７４−１（ａ）がターゲット・プロセスＡ２  １７４−２（ａ）に対する制御権を得るよう試みており、ターゲット・プロセスＡ２  １７４−２（ａ）が特別の特権を与えられたユーザ識別子に関連付けられている場合、プロセスＡ１  １７４−１（ａ）が非グローバル・ゾーンＡ  １４０（ａ）に対する一組の許容される特権のすべての特権を持っているならば、オペレーティング・システム環境１００に関連したプロセスはプロセスＡ１  １７４−１（ａ）による要求を許可する。一実施形態で、ターゲット・プロセスを制御するためのプロセスによる要求を許可するか否かを判定する際に実行される処理を、以下の図３Ａ１−３Ａ３によって示す例を使用して説明する。
【００５０】
さらに別の例では、グローバル・ゾーン１３０に関連したプロセスＣ１  １７４−１（ｃ）は、図２Ａの実線１１７によって示されるように、同様にグローバル・ゾーン１３０に関連付けられているターゲット・プロセスＣ２  １７４−２（ｃ）を制御権を得るための要求を行う。一実施形態では、ユーザ識別子ＵＩＤ  Ｃ１  ２４５−１（ｃ）とユーザ識別子ＵＩＤ  Ｃ２  ２４５−２（ｃ）が等しい場合、またはプロセスＣ１  １７４−１（ｃ）がＰＲＩＶ＿ＰＲＯＣ＿ＯＷＮＥＲ特権を持っている場合、プロセスＣ１  １７４−１（ｃ）がターゲット・プロセスＣ２  １７４−２（ｃ）が持っている特権と少なくとも同じ数だけ特権を持っているならば、ターゲット・プロセスＣ２  １７４−２（ｃ）の制御権を得るためのプロセスＣ１  １７４−１（ｃ）による要求は許可される。プロセスＣ１  １７４−１（ｃ）がターゲット・プロセスＣ２  １７４−２（ｃ）の制御権を得るよう試みており、ターゲット・プロセスＣ２  １７４−２（ｃ）が特別の特権を与えられたユーザ識別子（ＵＩＤ  ０）に関連付けられている場合、プロセスＣ１  １７４−１（ｃ）がオペレーティング・システム環境１００で使用可能な特権のすべてを持っているならば、オペレーティング・システム環境１００に関連したプロセスはプロセスＣ１  １７４−１（ｃ）による要求を許可する。
【００５１】
一実施形態では、プロセスＣ１  １７４−１（ｃ）がグローバル・ゾーン１３０に関連付けられているので、プロセスＣ１  １７４−１（ｃ）は、例えばターゲット・プロセスＡ２  １７４−２（ａ）のような非グローバル・ゾーンのオブジェクトを監視することができる。プロセスＣ１  １７４−１（ｃ）は、例えばターゲット・プロセスＡ２  １７４−２（ａ）のような非グローバル・ゾーン１４０内のターゲット・プロセスを制御することを許されるであろう。オペレーティング・システム環境１００は、ターゲット・プロセスＣ２  １７４−２（ｃ）に対する制御を要求するプロセスＣ１  １７４−１（ｃ）を参照して上記で説明した処理と類似の処理を使用して非グローバル・ゾーン１４０（ａ）内のプロセスＡ２  １７２−２（ａ）を制御するために、プロセスＣ１  １７４−１（ｃ）による要求を許可するか否かを判定する。グローバル・ゾーン常駐プロセスが非グローバル・ゾーン常駐プロセスを制御することを求める場合、オペレーティング・システム１００は、一実施形態のＰＲＯＣ＿ＺＯＮＥ特権のような他のゾーンの他のプロセスを制御するための特権をグローバル・ゾーン・プロセスが持つこと要求する。
【００５２】
図２Ｂは、本発明の一実施形態を実施することのできる図１のオペレーティング・システム環境のプロセスの機能ブロック図である。一実施形態の細粒度特権モデルのオペレーションを図２Ｂに示す一例により示すが、ここで、非グローバル・ゾーンＡ  １４０（ａ）に関連して実行するプロセスＡ１  １７４−１（ａ）は、破線１１９（ａ）で示すように、その関連を第１のユーザ識別子ＵＩＤ  Ａ１  ２４５−１（ａ）から新しいユーザ識別子ＵＩＤ  Ａ２  ２４５−２（ａ）に変更するための要求を行う。
【００５３】
一実施形態では、オペレーティング・システム環境１００は、１つまたは複数の基準に基づいてユーザ識別子ＵＩＤ  Ａ１  ２４５−１（ａ）からユーザ識別子ＵＩＤ  Ａ２  ２４５−２（ａ）にプロセスの関連を変更するための要求を許可するか否かを判定するために、プロセスＡ１  １７４−１（ａ）によって要求される特権を決定する。一実施形態では、オペレーティング・システム環境１００のプロセスは、プロセスＡ１  １７４−１（ａ）による要求を許可するか否かを判定する際に、ユーザ識別子ＵＩＤ  Ａ２  ２４５−２（ａ）が例えばスーパー・ユーザのような特別な特権を与えられたユーザ識別子であるか否か、またはプロセスＡ１  １７４−１（ａ）が、例えばＰＲＩＶ＿ＰＲＯＣ＿ＳＥＴＩＤのような他のユーザ識別子に属するプロセスを制御できる特権を所有しているか否かの１つまたは複数を判定することができる。例えば、プロセスＡ１  １７４−１（ａ）がＰＲＩＶ＿ＰＲＯＣ＿ＳＥＴＩＤ特権を持っている場合、ユーザ識別子ＵＩＤ  Ａ２  ２４５−２（ａ）が特別な特権を与えられたユーザ識別子でないならば、その関連をユーザ識別子ＵＩＤ  Ａ２  ２４５−２（ａ）に変更するためのプロセスＡ１  １７４−１（ａ）による要求は許可される。図２Ｂの非グローバル・ゾーンＢ  １４０（ｂ）が示すような場合には、要求側プロセスＢ１  １７４−１（ｂ）は、破線１１９（ｂ）で示されるように、その関連するユーザ識別子ＵＩＤ  Ｂ１  ２４５−１（ｂ）をユーザ識別子ＵＩＤ  Ｂ２  ２４５−２（ｂ）に変更するための要求を行う。この例では、ユーザ識別子ＵＩＤ  Ｂ２  ２４５−２（ｂ）は特別な特権を与えられたユーザ、ＵＩＤ０に関連付けられている。プロセスＢ１  １７４−１（ｂ）が、その関連を特別な特権を与えられたユーザ識別子を有するユーザ識別子ＵＩＤ  Ｂ２  １７４−２（ｂ）に変更することを試みているので、プロセスＢ１  １７４−１（ｂ）が非グローバル・ゾーンＢ  １４０（ｂ）に対する一組の許容される特権のすべての特権を持っているならば、オペレーティング・システム環境１００はプロセスＢ１  １７４−１（ｂ）による要求を許可する。一実施形態で、ユーザ識別子を変更するためのプロセスによる要求を許可するか否かを判定する際に実行される処理を、以下の図３Ｂ１−３Ｂ２によって示される一例を使用して説明する。
【００５４】
他の例では、ユーザ識別子ＵＩＤ  Ｃ１  ２４５−１（ｃ）とグローバル・ゾーン１３０とに関連したプロセスＣ１  １７４−１（ｃ）は、破線１１９（ｃ）で示すように、ユーザ識別子ＵＩＤ  Ｃ２  ２４５−２（ｃ）に関連付けるための要求を行う。一実施形態では、プロセスＣ１  １７４−１（ｃ）がＰＲＩＶ＿ＰＲＯＣ＿ＳＥＴＩＤ特権を持っている場合、ユーザ識別子Ｃ２  ＵＩＤ  ２４５−２（ｃ）が特別な特権を与えられたユーザ識別子でない限り、ユーザ識別子ＵＩＤ  Ｃ２  ２４５−２（ｃ）に関連付けられるプロセスＣ１  １７４−１（ｃ）による要求が許可される。図２Ｂに示す例では、プロセスＣ１  １７４−１（ｃ）は、特別な特権を与えられたユーザ識別子（ＵＩＤ０）に関連付けられたユーザ識別子ＵＩＤ  Ｃ２  ２４５−２（ｃ）に関連付けられるように要求している。プロセスＣ１  １７４−１（ｃ）はグローバル・ゾーン１３０に関連付けられているので、プロセスＣ１  １７４−１（ｃ）がオペレーティング・システム環境１００で使用可能な特権のすべてを持っている場合にのみ、オペレーティング・システム環境１００に関連したプロセスはプロセスＣ１  １７４−１（ｃ）による要求を許可する。
【００５５】
図２Ｃは、本発明の一実施形態を実施することのできる図１のオペレーティング・システム環境のためのファイル・システム例の機能ブロック図である。図２Ｃに示すように、図１のファイル・システム１８０は、階層ツリー状の構造で構成された複数のディレクトリを含んでいる。例えば、非グローバル・ゾーンＡ  １４０（ａ）では、ファイル・システム１８０（ａ）はゾーン・ルート・ディレクトリ２９０（ａ）にマウントされている。オペレーティング・システムの命名法で、ルート・ディレクトリはスラッシュ（「／」）で表される。ルート・ディレクトリ２９０（ａ）はゾーン・ルート・ディレクトリなので、これは非グローバル・ゾーンＡ  １４０（ａ）内のプロセスにはルート・ディレクトリに見える。ディレクトリ２９０（ａ）は、グローバル・ゾーン１３０内のプロセスによってアクセス可能なファイル・システム１８０の一部である／ＡＵＸ０ディレクトリ２９１のサブディレクトリである。グローバル・ゾーン１３０のプロセスの観点からすると、ディレクトリ２９０（ａ）はディレクトリ／ＡＵＸ０／ゾーンＡ  ２９０（ａ）である。
【００５６】
一実施形態では、ゾーンのルート・ディレクトリは、ゾーン内のプロセスのためにルート・ディレクトリを確立するためのシステム・コマンドであるｃｈｒｏｏｔによって設定された一組のディレクトリとは異なる。一実施形態では、プロセスがパス名構成要素をトラバースする際にどちらの制約もチェックされる。これはｃｈｒｏｏｔをゾーン内で使用できるようにするが、プロセスがそのｃｈｒｏｏｔの制約から逃れたとしても、そのプロセスは依然としてゾーン制約から逃れることはできない。
【００５７】
ゾーン・ルート・ディレクトリ２９０（ａ）は、／Ｐｒｏｃ  ２９２（ａ）、／ＵＳＲ  ２９３（ａ）、／ＥＴＣ  ２９４（ａ）などの１つまたは複数のサブディレクトリを含んでいる。これは網羅的なリストではなく、他のサブディレクトリをルート・ディレクトリ２９０（ａ）に含めることもできる。これらのサブディレクトリは、それら自体のサブディレクトリをさらに持つことができる。例えば、ディレクトリ／ＵＳＲ／ＳＢＩＮ  ２９５（ａ）はディレクトリ／ＵＳＲ  ２９３（ａ）のサブディレクトリである。プロセスＡ１  １７４−１（ａ）、プロセスＡ２  １７４−２（ａ）、プロセスＡ３  １７４−３（ａ）のような非グローバル・ゾーンＡで実行する複数のプロセスは、実線１０４（ａ）、１０６（ａ）、１０８（ａ）によって示されるディレクトリ／ＵＳＲ／ＳＢＩＮ  ２９５（ａ）に記憶されているファイルからインスタンス化される。
【００５８】
次に図２Ｃの非グローバル・ゾーンＢ  １４０（ｂ）を参照すると、分離されたファイル・システム１８０（ｂ）のインスタンスがルート・ディレクトリ２９０（ｂ）にマウントされている。ルート・ディレクトリ２９０（ｂ）は、プロセスＢ１  １７４−１（ｂ）、プロセスＢ２  １７４−２（ｂ）、プロセスＢ３  １７４−３（ｂ）のようなプロセスのデータおよび／またはファイルを記憶している１つまたは複数のサブディレクトリも含んでいる。図２Ｃによって示される実施形態では、非グローバル・ゾーンＢ  １４０（ｂ）のファイル・システム１８０（ｂ）のディレクトリとそれに関連付けられた構造は非グローバル・ゾーンＡ  １４０（ａ）のファイル・システム１８０（ａ）の一部に類似している。これは常にこのようである必要はないが、実施形態特有の代替形態が存在する。例えば、一部の実施形態では、ファイル・システム１８０（ａ）とファイル・システム（ｂ）を、ループ・バック・ファイル・システムとして知られている単一物理ストレージにマッピングすることができる。
【００５９】
グローバル・ゾーン１３０は、オペレーティング・システム環境１００のファイル・システム・ルート・ディレクトリ２９０を含む。グローバル・ゾーン１３０のファイル・システムは、例えば／ＰＲＯＣ  ２９２、／ＵＳＲ  ２９３、／ＥＴＣ  ２９４のような１つまたは複数のサブディレクトリも含む。一実施形態では、ルート・ディレクトリ／２９０はサブディレクトリ／ＡＵＸ０  ２９１を含み、このサブディレクトリは、ゾーン・ルート・ディレクトリ／２９０（ａ）と／２９０（ｂ）を実装するためにそれ自体のサブディレクトリとしてディレクトリ／ＡＵＸ０／ゾーンＡ  ２９０（ａ）とディレクトリ／ＡＵＸ０／ゾーンＢ  ２９０（ｂ）を有する。
【００６０】
一実施形態では、非グローバル・ゾーン内から発行されたマウントはそのゾーン内のプロセスしか表示しない。なぜなら、そのゾーン内のプロセスがその非グローバル・ゾーンからアクセス可能なファイル・システム階層の部分内にマウントされる必要があるからである。あらゆる準備完了または実行中のゾーンに属するファイル・システム階層の部分内にないグローバル・ゾーンから発行されたマウントは、システムのすべてのプロセスを反映する。一実施形態でファイル・システム・オブジェクトにアクセスするためのプロセスによる要求を許可するか否かを判定する際に実行される処理を、以下の図３Ｃ〜３Ｄによって示される一例を使用して説明する。
【００６１】
図２Ｃを参照して上述したように、一実施形態では、グローバル・ゾーンのプロセスは非グローバル・ゾーンのファイル・システム関連オブジェクトを参照することが許可される。これにより、このようなプロセスはシステム規模で監視することが可能になる。しかし、他のゾーンのプロセスを制御し、またはそれに信号を伝達する機能は、図２Ａ〜２Ｂを参照して上述したように特権により制限される。この特権は、一実施形態で、非グローバル・ゾーンのオブジェクトにアクセスし、またはこれを制御するために、グローバル・ゾーン内のプロセスによって取得されなければならない。
【００６２】
動作例
次に、本発明の一実施形態によるオペレーティング・システム１００の動作例を説明する。次の解説では、図２Ａ〜２Ｃの機能ブロック図と図３Ａ〜３Ｄの流れ図を参照する。
【００６３】
図３Ａ１は、本発明の一実施形態の動作を示す動作流れ図である。図３Ａ１によって示される例では、要求側プロセスＡ１  １７４−１（ａ）はターゲット・プロセス、プロセスＡ２  １７４−２（ａ）に対する制御権を得るための要求を行う。図３Ａ１によって示される実施形態では、ブロック３０１で、プロセスＡ１  １７４−１（ａ）に関連付けられるゾーンのゾーン識別子がプロセスＡ２  １７４−２（ａ）に関連付けられたゾーンのゾーン識別子と同じか否かを判定するテストが行われる。ゾーン識別子が一致しない場合、処理は図３Ａ２のブロック３２２に続く。そうでなく、ゾーン識別子が一致する場合、要求側プロセスとターゲット・プロセスは同じゾーンにあり、処理は図３Ａ１のブロック３０２に続く。
【００６４】
ブロック３０２で、要求を行うプロセスＡ１  １７４−１（ａ）のユーザ識別子ＵＩＤ  Ａ１  ２４５−１（ａ）がターゲット・プロセスＡ２  １７４−２（ａ）のユーザ識別子ＵＩＤ  Ａ２  ２４５−２（ａ）と一致するか否かを判定するテストが行われる。ユーザ識別子が一致しない場合、制御は図３Ａ２のブロック３２８に移り、プロセスＡ１  １７４−１（ａ）からの要求が図３Ａ２に示されている処理に従って処理される。一方、ユーザ識別子が一致する場合、ブロック３０３で、プロセスＡ１  １７４−１（ａ）がプロセスＡ２  １７４−２（ａ）が持っている特権のそれぞれを持っている否かを判定するテストが行われる。プロセスＡ１  １７４−１（ａ）がプロセスＡ２  １７４−２（ａ）によって処理される特権のそれぞれを持っていない場合、ブロック３０６で、要求は拒否される。
【００６５】
ブロック３０４で、特権を与えられたユーザ用のユーザ識別子にターゲット・プロセスＡ２  １７４−２（ａ）が関連付けられているか否かを判定するテストが行われる。特権を与えられたユーザは、一実施形態では、０のような特別なユーザ識別子を有するユーザである。ターゲット・プロセスが特権を与えられたユーザ識別子に関連付けられている場合、プロセスＡ１  １７４−１（ａ）からの要求は図３Ａ３に示される処理に従って処理される。一方、ターゲット・プロセスＡ２  １７４−２（ａ）のユーザ識別子が特権を与えられたユーザに関連付けられていない場合、ブロック３１２で、要求は許可される。
【００６６】
図３Ａ２は、本発明の一実施形態の動作を示す動作流れ図である。図３Ａ２によって示された例では、要求側プロセスＡ１  １７４−１（ａ）がターゲット・プロセス、プロセスＡ２  １７４−２（ａ）に対する制御権を得る要求を行っている。以前の処理で、ａ）要求側プロセスがターゲット・プロセスと同じゾーン識別子を持っていないか、ｂ）要求側プロセスがターゲット・プロセスと同じユーザ識別子を持っているかを判定している。図３Ａ２によって示される実施形態では、ブロック３２２の処理は、要求側プロセスとターゲット・プロセスが異なるゾーン識別子を有するイベントで呼び出される。ブロック３２２で、要求側プロセスＡ１  １７４−１（ａ）が非グローバル・ゾーンに関連付けられているか否かを判定するテストが行われる。要求側プロセスが非グローバル・ゾーンに関連付けられている場合、ブロック３２６で、プロセスＡ１  １７４−１（ａ）からの要求は拒否される。これに対して、要求側プロセスがグローバル・ゾーンに関連付けられている場合、ブロック３２４で、要求側プロセスがブロック３１０で有するか否かを判定するテストが行われ、要求側プロセスＡ１  １７４−１（ａ）が、プロセスＡ１  １７４−１（ａ）が他のプロセスを制御できる特権を持っているか否かを判定するテストが行われる。一実施形態では、この特権はＰＲＩＶ＿ＰＲＯＣ＿ＺＯＮＥ特権として知られている。要求側プロセスＡ１  １７４−１（ａ）が適切な特権を持っていない場合、ブロック３２６で、プロセスＡ１  １７４−１（ａ）からの要求は拒否される。そうでない場合、処理は図３Ａ１のブロック３０２に続く。
【００６７】
図３Ａ２によって示される実施形態では、ブロック３２８の処理は、要求側プロセスとターゲット・プロセスが異なるユーザ識別子を有するイベントで呼び出される。ブロック３２８で、プロセスＡ１  １７４−１（ａ）が異なる有効なユーザ識別子を備えた他のプロセスに信号を伝達したり、またはそのプロセスを制御する特権を要求側プロセスＡ１  １７４−１（ａ）が持っているか否かを判定するテストが行われる。一実施形態では、この特権はＰＲＩＶ＿ＰＲＯＣ＿ＯＷＮＥＲ特権として知られている。要求側プロセスＡ１  １７４−１（ａ）が適切な特権を持っていない場合、ブロック３３０で、プロセスＡ１  １７４−１（ａ）からの要求は拒否される。そうでない場合、処理は図３Ａ１のブロック３０３に続く。
【００６８】
本発明の一実施形態の動作を示す動作流れ図である図３Ａ３を参照する。図３Ａ３によって示される例で、要求側プロセスＡ１  １７４−１（ａ）はターゲット・プロセス、プロセスＡ２  １７４−２（ａ）に対する制御権を得るための要求を行っている。以前の処理で、ターゲット・プロセスが特権を与えられたユーザ識別子に関連付けられているか否かを既に判定している。図３Ａ３によって示される実施形態では、ブロック３３２で、要求側プロセスＡ１  １７４−１（ａ）がグローバル・ゾーン１３０に関連付けられているか否かを判定するテストが行われる。要求側プロセスがグローバル・ゾーン１３０に関連付けられていない場合、ブロック３３４で、要求側プロセスＡ１  １７４−１（ａ）が非グローバル・ゾーン１４０（ａ）の許容される組のすべての特権を持っているか否かを判定するテストが行われる。要求側プロセスＡ１  １７４−１（ａ）が許容される組の特権の全てを持っている場合、ブロック３３８で、要求は許可される。そうでない場合、ブロック３４０で、要求は拒否される。
【００６９】
ブロック３３２で、要求側プロセスＡ１  １７４−１（ａ）がグローバル・ゾーンに関連付けられていると判定された場合、ブロック３３６で、要求側プロセスＡ１  １７４−１（ａ）がすべての特権を持っているか否かを判定するテストが行われる。ブロック３３８で要求側プロセスＡ１  １７４−１（ａ）がすべての特権を持っている場合、要求は許可される。一方、要求側プロセスＡ１  １７４−１（ａ）に特権のどれかが欠けている場合、ブロック３４０で要求は拒否される。
【００７０】
図３Ｂ１は、本発明の一実施形態の動作を示す動作流れ図である。図３Ｂ１によって示される例では、要求側プロセスＡ１  １７４−１（ａ）は第１のユーザ識別子、ＵＩＤ  Ａ１  ２４５−１（ａ）から第２のユーザ識別子、ＵＩＤ  Ａ２  ２４５−２（ａ）にその関連を変更するための行っている。
【００７１】
要求側プロセスＡ１  １７４−１（ａ）が、それに関連したユーザ識別子を、特権を与えられたユーザのユーザ識別子に変更することを要求したか否かを判定するテストが行われる。特権を与えられたユーザは、一実施形態では、０のような特別なユーザ識別子を有するユーザである。要求されたユーザ識別子が特権を与えられたユーザ識別子に関連付けられている場合、プロセスＡ１  １７４−１（ａ）からの要求は図３Ｂ２に示すように処理される。それに対して、その要求のユーザ識別子が特権を与えられたユーザに関連付けられていない場合、ブロック３４４で、要求側プロセスＡ１  １７４−１（ａ）がそれ自体のユーザ識別子を設定する特権をそのプロセスＡ１  １７４−１（ａ）が持っているか否かを判定するテストが行われる。一実施形態では、この特権は、ＰＲＩＶ＿ＰＲＯＣ＿ＳＥＴＩＤ特権として知られる。要求側プロセスＡ１  １７４−１（ａ）が適切な特権を持っている場合、ブロック３４６で要求は許可される。一方、要求側プロセスＡ１  １７４−１（ａ）に適切な特権が欠けている場合、ブロック３４８で要求は拒否される。
【００７２】
本発明の一実施形態の動作を示す動作流れ図である図３Ｂ２を参照する。図３Ｂ２によって示される例では、要求側プロセスＡ１  １７４−１（ａ）はそのユーザ識別子を変更するための要求を行う。一実施形態では、ユーザがユーザ識別子を変更することを望む場合、ユーザは「ｓｕ」コマンドを呼び出すことによってそのようにすることができる。一実施形態では、ユーザがオペレーティング・システム１００下でログインする場合、ログイン・プロセスは、ユーザのログイン・セッションのプロセスに適切なユーザ識別子を割り当てるため、図３Ｂ１〜３Ｂ２によって示される処理を実行する。以前の処理で、要求側プロセスが、そのユーザ識別子を、特権を与えられたユーザの識別子、すなわち一実施形態ではユーザ識別子０に変更するための要求を行ったか否かを既に判定している。図３Ｂ２によって示される実施形態では、ブロック３５２で、要求側プロセスＡ１  １７４−１（ａ）が非グローバル・ゾーン１４０（ａ）に関連付けられているか否かを判定するテストが行われる。要求側プロセスが非グローバル・ゾーン１４０（ａ）に関連付けられている場合、ブロック３３４で、要求側プロセスＡ１  １７４−１（ａ）が非グローバル・ゾーン１４０（ａ）の許容される組のすべての特権を持っているか否かを判定するテストが行われる。要求側プロセスＡ１  １７４−１（ａ）が許容される組の特権の全てを持っている場合、ブロック３５８で要求は許可される。そうでない場合、ブロック３６０で要求は拒否される。
【００７３】
ブロック３５２で、要求側プロセスＡ１  １７４−１（ａ）が非グローバル・ゾーンに関連付けられていないと判定された場合、ブロック３５６で、要求側プロセスＡ１  １７４−１（ａ）がシステムのすべての特権を持っているか否かを判定するテストが行われる。要求側プロセスＡ１  １７４−１（ａ）がシステムのすべての特権を持っている場合、ブロック３５８で要求は許可される。一方、要求側プロセスＡ１  １７４−１（ａ）にシステムの特権のどれかが欠けている場合、ブロック３６０で要求は拒否される。
【００７４】
本発明の一実施形態の非グローバル・ゾーンのプロセスに関してチェックするアクセス許可の動作を示す動作流れ図である図３Ｃを参照すると、ブロック３６２で、オブジェクトにアクセスするために非グローバル・ゾーン１４０（ａ）に関連したプロセスＡ１  １７４−１（ａ）からの要求が受信される。ブロック３６４で、ゾーン識別子に基づいて、非グローバル・ゾーン１４０（ａ）に関連したプロセスＡ１  １７４−１（ａ）からの要求が非グローバル・ゾーン１４０（ａ）以外のゾーンに関連付けられたオブジェクトにアクセスすることを試みているか否かが判定される。ブロック３３６で、要求を行っているプロセスのゾーンＩＤがアクセスされるべきオブジェクトのゾーンＩＤと一致するか否かのテストが行われる。ゾーンＩＤが一致した場合、ブロック３６８でプロセスＡ１  １７４−１（ａ）からの要求が許可される。一方、ゾーンＩＤが一致しない場合、ブロック３７０でプロセスＡ１  １７４−１（ａ）からの要求は拒否される。
【００７５】
本発明の一実施形態のグローバル・ゾーンのプロセスに関してチェックするアクセス許可の動作を示す動作流れ図である図３Ｄを参照すると、ブロック３７２で、オブジェクトにアクセスするためにグローバル・ゾーン１３０に関連したプロセスＣ１  １７４−１（ｃ）からの要求が受信される。ブロック３７４で、ゾーン識別子に基づいて、グローバル・ゾーン１３０に関連したプロセスＣ１  １７４−１（ｃ）からの要求がグローバル・ゾーン１３０以外のゾーンに関連付けられたオブジェクトにアクセスすることを試みているか否かを判定する。ブロック３７６で、要求側プロセスのゾーンＩＤとアクセスされるべきオブジェクトのゾーンＩＤが一致するか否かを確認するためにテストが行われる。ゾーンＩＤが一致する場合、ブロック３７８で、オブジェクトにアクセスするためのグローバル・ゾーン１３０に関連したプロセスＣ１  １７４−１（ｃ）からの要求が許可される。一方、ゾーンＩＤが一致しない場合、ブロック３８０で、要求側プロセスＣ１  １７４−１（ｃ）が特権を持っているか否かを確認するためにテストが行われる。要求側プロセスが特権を持っている場合、ブロック３８２で、非グローバル・ゾーン１４０（ａ）またはゾーン１４０（ｂ）のオブジェクトにアクセスするためにグローバル・ゾーン１３０に関連したプロセスＣ１  １７４−１（ｃ）からの要求が許可される。一方、プロセスＣ１  １７４−１（ｃ）が特権を持っていない場合、ブロック３８４で、プロセスＣ１  １７４−１（ｃ）からの要求は拒否される。
【００７６】
ハードウェア概要
図４は、本発明の一実施形態を実装することのできるコンピュータ・システム４００を示すブロック図である。コンピュータ・システム４００は、情報交換に役立つバス４０２、情報処理のためにバス４０２に結合された１つまたは複数のプロセッサ４０４を含む。コンピュータ・システム４００は、ランダム・アクセス・メモリ（ＲＡＭ）のようなメイン・メモリ４０６、またはプロセッサ４０４によって実行されるべき命令と情報を記憶するためにバス４０２に結合されている他のダイナミック・ストレージ・デバイスも含む。一時的変数またはプロセッサ４０４による命令実行中の他の中間情報を記憶するためにメイン・メモリ４０６を使用することもできる。コンピュータ・システム４００は、読み出し専用メモリ（ＲＯＭ）４０８またはプロセッサ４０４のための静的情報と命令を記憶するためにバス４０２に結合されている他の静的ストレージ・デバイスをさらに含む。磁気ディスクまたは光ディスクのようなストレージ・デバイス４１０が設けられ、情報と命令を記憶するためにバス４０２に結合される。
【００７７】
コンピュータ・システム４００は、情報をコンピュータのユーザに表示するためにバス４０２を介して陰極線管（ＣＲＴ）のようなディスプレイ４１２に結合されている。英数字および他のキーを含む入力装置４１４が、プロセッサ４０４に情報とコマンド選択を通信するためにバス４０２に結合されている。別のタイプのユーザ入力装置は、プロセッサ４０４に方向情報とコマンド選択を通信するため、またディスプレイ４１２上のカーソル移動を制御するためのマウス、トラックボール、またはカーソル指示キーのようなカーソル・コントロール４１６である。この入力装置は、通常、装置が平面上の位置を指定する第１の軸（例えば、ｘ）と第２の軸（例えば、ｙ）の２つの軸で２の自由度を有する。
【００７８】
コンピュータ・システム４００で、バス４０２は、情報、信号、データなどを様々な構成要素間で交換できるいかなる機構および／または媒体であってもよい。例えば、バス４０２は、電気信号を搬送する一組の伝導体であってよい。バス４０２は、構成要素の１つまたは複数の間で無線信号を搬送する無線媒体（例えば、空気）であってもよい。バス４０２は、構成要素の１つまたは複数の間で信号が容量的に交換されることを可能にする媒体（例えば、空気）であってもよい。バス４０２はさらに、構成要素の１つまたは複数を接続するネットワーク接続であってもよい。全体的に、様々な構成要素間で情報、信号、データなどを交換することができるいかなる機構および／または媒体でもバス４０２として使用することができる。
【００７９】
バス４０２は、これら機構／媒体の組み合わせであってもよい。例えば、プロセッサ４０４は、ストレージ・デバイス４１０と無線で通信することができる。このような場合、プロセッサ４０４とストレージ・デバイス４１０の観点からすると、バス４０２は空気のような無線媒体である。さらに、プロセッサ４０４はＲＯＭ  ４０８と容量的に通信することができる。この場合、バス４０２は、この容量通信が行われることを可能にする（空気のような）媒体である。さらに、プロセッサ４０４は、ネットワーク接続を介してメイン・メモリ４０６と通信することができる。この場合、バス４０２はネットワーク接続である。さらに、プロセッサ４０４は一組のコンダクタを介してディスプレイ４１２と通信することができる。この場合、バス４０２は一組のコンダクタである。したがって、様々な構成要素が相互に通信する方法に応じて、バス４０２は異なる形式を取ることができる。バス４０２は、図４に示すように、情報、信号、データなどを様々な構成要素間で交換できる機構および／または媒体のすべてを機能的に表している。
【００８０】
本発明は、本明細書に記載の技術を実装するコンピュータ・システム４００の使用にも関する。本発明の一実施形態によれば、これらの技術は、メイン・メモリ４０６に含まれる１つまたは複数の命令の１つまたは複数のシーケンスを実行するプロセッサ４０４に応じて、コンピュータ・システム４００により実行される。このような命令は、ストレージ・デバイス４１０のような別の機械可読媒体からメイン・メモリ４０６に読み込まれる。メイン・メモリ４０６に含まれる命令シーケンスの実行によって、プロセッサ４０４が本明細書に記載のプロセス・ステップを実施する。代替形態では、本発明を実現するためにソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせてハードワイヤード回路を使用することができる。したがって、本発明の実施形態はハードウェア回路とソフトウェアのいかなる具体的な組み合わせにも限定されるものではない。
【００８１】
本明細書で使用する「機械可読媒体」という用語は、マシンを特定の方法で動作させるデータを提供するのに関与するいかなる媒体をも意味する。コンピュータ・システム４００を使用して実現される実施形態には、例えば実行するためにプロセッサ４０４に命令を提供する様々な機械可読媒体が含まれる。このような媒体は、限定はしないが、不揮発性媒体、揮発性媒体、伝送媒体を含めて多くの形式を取ることができる。不揮発性媒体は、例えばストレージ・デバイス４１０のような光または磁気ディスクを含む。揮発性媒体は、メイン・メモリ４０６のようなダイナミック・メモリを含む。伝送媒体は、バス４０２を含んでいる電線を含めて同軸ケーブル、銅線、さらには光ファイバをも含む。伝送媒体は、電波および赤外線データ通信中に生成されるようなアコースティックまたは光波の形式を取ることもできる。
【００８２】
機械可読媒体の一般的な形式は、例えばフロッピー（登録商標）・ディスク、フレキシブル・ディスク、ハードディスク、磁気テープ、またはいかなる他の磁気媒体、ＣＤ−ＲＯＭ、いかなる他の光媒体、パンチカード、ペーパーテープ、いかなる他の穴のパターンを有する物理媒体、ＲＡＭ、ＰＲＯＭ、およびＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、いかなる他のメモリ・チップまたはカートリッジ、以下で説明する搬送波、またはコンピュータが読み取ることのできるいかなる他の媒体をも含む。
【００８３】
機械可読媒体の様々な形式が、実行するためにプロセッサ４０４に１つまたは複数の命令の１つまたは複数のシーケンスを搬送する際に利用される。例えば、命令は、最初に遠隔コンピュータの磁気ディスクに格納されている。遠隔コンピュータは、そのダイナミック・メモリに命令をロードし、モデムを使用して電話回線を介して命令を送信することができる。コンピュータ・システム４００にローカルなモデムは、電話回線上のデータを受信することができ、そのデータを赤外線信号に変換するために赤外線トランスミッタを使用することができる。赤外線検出器は赤外線信号形式で搬送されたデータを受信することができ、適切な回路がバス４０２上にデータを置くことができる。バス４０２はデータをメイン・メモリ４０６に搬送し、プロセッサ４０４はメイン・メモリ４０６から命令を取り出し、実行する。メイン・メモリ４０６によって受信された命令は、任意選択で、プロセッサ４０４による実行の前または後でストレージ・デバイス４１０に記憶される。
【００８４】
コンピュータ・システム４００は、バス４０２に結合されている通信インターフェース４１８も含む。通信インターフェース４１８は、ローカル・ネットワーク４２２に接続されているネットワーク・リンク４２０に結合されている双方向データ通信を提供する。例えば、通信インターフェース４１８は、電話回線の対応するタイプにデータ通信接続を提供するために、統合デジタル通信サービス網（ＩＳＤＮ）カードまたはモデムであってよい。別の例として、通信インターフェース４１８は、対応したＬＡＮにデータ通信接続を提供するためのローカル・エリア・ネットワーク（ＬＡＮ）カードであってよい。無線リンクを実装することもできる。いかなるこのような実施形態でも、通信インターフェース４１８は、様々なタイプの情報を表すデジタル・データ・ストリームを搬送する電気信号、電磁気信号、または光信号を送信し、受信する。
【００８５】
ネットワーク・リンク４２０は、通常、他のデータ・デバイスに１つまたは複数のネットワーク経由によるデータ通信を提供する。例えば、ネットワーク・リンク４２０は、ホスト・コンピュータ４２４に、またはインターネット・サービス・プロバイダ（ＩＳＰ）４２６が運営するデータ機器にローカル・ネットワーク４２２を介した接続を提供することができる。ＩＳＰ  ４２６は、現在では一般に「インターネット」４２８と称されるワールド・ワイド・パケット・データ通信ネットワークを介してデータ通信サービスを提供する。ローカル・ネットワーク４２２とインターネット４２８はどちらもデジタル・データ・ストリームを搬送する電気信号、電磁気信号、または光信号を使用する。様々なネットワークを介した信号と、コンピュータ・システム４００に／からデジタル・データを搬送する通信インターフェース４１８を介したネットワーク・リンク４２０上の信号は、情報を移送する搬送波の形式の一例である。
【００８６】
コンピュータ・システム４００は、１つ以上のネットワーク、ネットワーク・リンク４２０、通信インターフェース４１８を介して、プログラム・コードを含むメッセージを送信し、データを受信することができる。インターネットの例では、サーバ４３０は、アプリケーション・プログラムに対して要求されたコードをインターネット４２８、ＩＳＰ  ４２６、ローカル・ネットワーク４２２、通信インターフェース４１８を介して送信することができる。
【００８７】
受信したコードは、受信された際にプロセッサ４０４によって実行することができ、かつ／または後で実行するためにストレージ・デバイス４１０または他の不揮発性ストレージに記憶される。この方法で、コンピュータ・システム４００は搬送波形式でアプリケーション・コードを入手することができる。
【００８８】
上記明細書では、一実施形態を参照して本発明を説明したが、この実施形態に限定されるものと解釈されるべきではないということに留意されたい。本発明の趣旨を逸脱せずにこの開示の特典により当業者によって様々な修正形態を行うことができる。したがって、本発明は、本発明を説明するために使用された実施形態によって限定されるべきではなく、首記の特許請求の範囲によってのみ限定されるべきである。明細書および図面は、したがって、限定を目的としたものではなく説明を目的としたものと見なされるべきである。
【図面の簡単な説明】
【００８９】
【図１】本発明の一実施形態を実施することのできる代表的オペレーティング・システム環境の機能ブロック図である。
【図２Ａ】本発明の一実施形態を実施することのできる図１のオペレーティング・システム環境のプロセスの機能ブロック図である。
【図２Ｂ】本発明の一実施形態を実施することのできる図１のオペレーティング・システム環境のプロセスの機能ブロック図である。
【図２Ｃ】本発明の一実施形態を実施することのできる図１のオペレーティング・システム環境に対するファイル・システム例の機能ブロック図である。
【図３Ａ１】本発明の一実施形態の動作を示す動作流れ図である。
【図３Ａ２】本発明の一実施形態の動作を示す動作流れ図である。
【図３Ａ３】本発明の一実施形態の動作を示す動作流れ図である。
【図３Ｂ１】本発明の一実施形態の動作を示す動作流れ図である。
【図３Ｂ２】本発明の一実施形態の動作を示す動作流れ図である。
【図３Ｃ】本発明の一実施形態の動作を示す動作流れ図である。
【図３Ｄ】本発明の一実施形態の動作を示す動作流れ図である。
【図４】本発明の一実施形態の１つまたは複数の構成要素を実施するために使用することのできる代表的コンピュータ・システムのハードウェア・ブロック図である。
【符号の説明】
【００９０】
１１０  物理ストレージ、１２０  物理ネットワーク・デバイス、１３０  グローバル・ゾーン、１４０  非グローバル・ゾーン、１５０  カーネル、１８０  ファイル・システム、１８２  ネットワーク・インターフェース
【図１】
2004334894.tif 000003
【図２Ａ】
2004334894.tif 000004
【図２Ｂ】
2004334894.tif 000005
【図２Ｃ】
2004334894.tif 000006
【図３Ａ１】
2004334894.tif 000007
【図３Ａ２】
2004334894.tif 000008
【図３Ａ３】
2004334894.tif 000009
【図３Ｂ１】
2004334894.tif 000010
【図３Ｂ２】
2004334894.tif 000011
【図３Ｃ】
2004334894.tif 000012
【図３Ｄ】
2004334894.tif 000013
【図４】
2004334894.tif 000014
【外国語明細書】
2004334894.tif 000015
2004334894.tif 000016
2004334894.tif 000017
2004334894.tif 000018
2004334894.tif 000019
2004334894.tif 000020
2004334894.tif 000021
2004334894.tif 000022
2004334894.tif 000023
2004334894.tif 000024
2004334894.tif 000025
2004334894.tif 000026
2004334894.tif 000027
2004334894.tif 000028
2004334894.tif 000029
2004334894.tif 000030
2004334894.tif 000031
2004334894.tif 000032
2004334894.tif 000033
2004334894.tif 000034
2004334894.tif 000035
2004334894.tif 000036
2004334894.tif 000037
2004334894.tif 000038
2004334894.tif 000039
2004334894.tif 000040
2004334894.tif 000041
2004334894.tif 000042
2004334894.tif 000043
2004334894.tif 000044
2004334894.tif 000045
2004334894.tif 000046
2004334894.tif 000047
2004334894.tif 000048
2004334894.tif 000049
2004334894.tif 000050
2004334894.tif 000051
2004334894.tif 000052
2004334894.tif 000053
2004334894.tif 000054
2004334894.tif 000055
2004334894.tif 000056
2004334894.tif 000057
2004334894.tif 000058
2004334894.tif 000059
2004334894.tif 000060
2004334894.tif 000061
2004334894.tif 000062
2004334894.tif 000063
2004334894.tif 000064
2004334894.tif 000065
2004334894.tif 000066
2004334894.tif 000067
2004334894.tif 000068
2004334894.tif 000069
2004334894.tif 000070
2004334894.tif 000071
2004334894.tif 000072
2004334894.tif 000073
2004334894.tif 000074
2004334894.tif 000075
2004334894.tif 000076