差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
linux:kernel:namespace:namespaces_overview [2013/07/10 11:27] – [名前空間] tenforward | linux:kernel:namespace:namespaces_overview [2013/07/11 09:37] (現在) – [名前空間] tenforward | ||
---|---|---|---|
行 26: | 行 26: | ||
特定の PID 名前空間の視点からすると,あるプロセスは 2 つの PID を持つことになる.つまり,名前空間内の PID とホストシステム上の名前空間外の PID である.PID 名前空間はネスト可能である.あるプロセスは自身が属する PID 名前空間から root PID 名前空間に至るまでの階層構造のそれぞれ階層に対して 1 つの PID を持つ.プロセスは自身の属する PID 名前空間と,ネストした下位の PID 名前空間のプロセスからのみ見える (例えば kill() でシグナルを送ったりするなど). | 特定の PID 名前空間の視点からすると,あるプロセスは 2 つの PID を持つことになる.つまり,名前空間内の PID とホストシステム上の名前空間外の PID である.PID 名前空間はネスト可能である.あるプロセスは自身が属する PID 名前空間から root PID 名前空間に至るまでの階層構造のそれぞれ階層に対して 1 つの PID を持つ.プロセスは自身の属する PID 名前空間と,ネストした下位の PID 名前空間のプロセスからのみ見える (例えば kill() でシグナルを送ったりするなど). | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | ネットワーク名前空間は,ネットワークの視点からコンテナを便利にする.つまりコンテナはそれぞれ,自身の (仮想的な) ネットワークデバイスを持つことが可能であり,名前空間ごとのポート番号空間にバインドするアプリケーションを持つことが可能になる.ホストシステム内の適切なルーティングルールがパケットを特定のコンテナに関係するネットワークデバイスを送ることが可能になる.したがって,例えば複数のコンテナ化されたウェブサーバが同じホスト上で動くことも可能であり,それぞれのサーバは自身の (コンテナごとの) ネットワーク名前空間内でポート 80 番をバインドしているということが可能である. | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Linux 3.8 から,非特権プロセスがユーザ名前空間を作成することが可能となる.これで,アプリケーションにとって面白い新しい可能性が多数広がる.非特権プロセスがユーザ名前空間内では root 特権を保持できるので,非特権プロセスは今まで root に限られていた機能へのアクセスが可能になる.Eric Biederman はユーザ名前空間の実装を安全で正しく行うために多大な努力を払った.しかし,この作業で行われた変更は巧妙で広大な範囲に及ぶ.それゆえ,ユーザ名前空間はまだ未知のセキュリティ問題を持ち,将来的に修正が続くかもしれない. | ||
+ | |||
+ | |||
+ | ===== 最後に ===== | ||
+ | |||
+ | 最初に Linux に名前空間が実装されて 10 年余りになる.それ以来,名前空間のコンセプトは,従来はシステム全体のスコープであった様々なグローバルリソースの隔離を行うためのより一般的なフレームワークへと広がってきた.その結果名前空間は,コンテナ形式の軽量な仮想化システムを完成させるための基礎を提供するようになった.名前空間のコンセプトは広がってきたので,関連する API も拡張された.単一のシステムコール (clone()) と 1,2 の /proc ファイルから,いくつかの他のシステムコールとより多数の /proc 以下のファイルへと.この API の詳細はこの記事の後に続くテーマの記事で説明する. | ||
+ | |||
+ | ===== シリーズインデックス ===== | ||
+ | (略) | ||