JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... root ディレクトリ、 キー ( keyctl (2) 参照)、 ケーパビリティを分離する。 プロセスのユーザー ID とグループ ID はユーザー名前空間の内部と外部で異なる場合がある。 特に、 あるプロセスがユーザー名前空間の外部では通常の非特権ユーザー ID を持つが、 同時にユー ... ザー名前空間の内部ではユーザー ID 0 を持つという場合がある。 言い換えると、 そのプロセスはそのユーザー名前空間の内部での操作に対してすべ ... ての特権を持つが、 名前空間の外部での操作では特権を持たない。 ネストされた名前空間、名前空間のメンバー ユーザー名前空間は入れ子にすることができる。 つま ... ... これは、異なる PID 名前空間のプロセスは同じ PID を持つことができることを意味する。 PID 名前空間を使うことで、コンテナー内のプロセス群を中断、再開したり ... を保持したままコンテナーを新しいホストに移行したりするといった機能をコンテナーが提供することが可能になる。 新しい PID 名前空間の PID は、 独立したシステムであるかのように、 1 から始まる。 fork (2), vfork (2), clone (2) を呼び出すと、 その名前空間内で ... 一意な PID でプロセスが生成される。 PID 名前空間を使用するには、設定 CONFIG_PID_NS が有効になったカーネルが必要である。 名前空間の init プロセス 新しい名前空間で作成される最 ... ... 用の分離されたグローバルリソースを持っているかのように見せる仕組みである。 グローバルリソースへの変更は、 名前空間のメンバーである他のプロセスには見えるが、 それ以外のプロセスには見えない。 名前空間の一つの利用方法はコンテナーの実装である ... 。 Linux では以下の名前空間が提供される。 名前空間 定数 分離対象 IPC CLONE_NEWIPC System V IPC, POSIX メッセージキュー Network CLONE_NEWNET ネットワーク ... ロセス ID User CLONE_NEWUSER ユーザー ID とグループ ID UTS CLONE_NEWUTS ホスト名と NIS ドメイン名 このページでは、各種の名前空間と関連する /proc ファイルの説明と、名前空間とともに動作する API の概要を紹介する。 名前空間 API 後で説明する種々の /proc ファ ... ... type ); 説明 名前空間を参照するファイルディスクリプターを指定すると、 呼び出したスレッドにその名前空間を関連付けしなおす。 fd 引き数は、 /proc/[p ... id]/ns/ ディレクトリ内の名前空間エントリー のいずれかを参照するファイルディスクリプターである。 /proc/[pid]/ns/ の詳細は namespaces (7) を参照。 nstype 引き ... 数で指定された制限の範囲内で、 呼び出したスレッドに fd に対応する名前空間を関連付けしなおす。 nstype 引き数は、呼び出したスレッドがどのタイプの名前空間を 関連付けしなおすことができるかを指定する。 ... ... ジの最後の方で説明する。 fork (2) とは異なり、 clone () では、子プロセス (child process) と呼び出し元のプロセスとが、メモリー空間、ファイルディスクリプターのテーブル、シグナルハンドラーのテーブルなどの 実行コンテキストの一部を共有できる。 (このマニュアル ... clone () の主要な使用法はスレッド (threads) を実装することである: 一つのプログラムの中の複数のスレッドは共有されたメモリー空間で 同時に実行される。 clone () で子プロセスが作成された時に、作成された子プロセスは関数 fn ( arg ) を実行する。 (この点が fo ... 出し元のプロセスと同じスタックで実行することができない。 このため、呼び出し元のプロセスは子プロセスのスタックのためのメモリー空間を 用意して、この空間へのポインターを clone () へ渡さなければならない。 (HP PA プロセッサ以外の) Linux が動作する全てのプロセ ... ... ジの最後の方で説明する。 fork (2) とは異なり、 clone () では、子プロセス (child process) と呼び出し元のプロセスとが、メモリー空間、ファイルディスクリプターのテーブル、シグナルハンドラーのテーブルなどの 実行コンテキストの一部を共有できる。 (このマニュアル ... clone () の主要な使用法はスレッド (threads) を実装することである: 一つのプログラムの中の複数のスレッドは共有されたメモリー空間で 同時に実行される。 clone () で子プロセスが作成された時に、作成された子プロセスは関数 fn ( arg ) を実行する。 (この点が fo ... 出し元のプロセスと同じスタックで実行することができない。 このため、呼び出し元のプロセスは子プロセスのスタックのためのメモリー空間を 用意して、この空間へのポインターを clone () へ渡さなければならない。 (HP PA プロセッサ以外の) Linux が動作する全てのプロセ ... ... ジの最後の方で説明する。 fork (2) とは異なり、 clone () では、子プロセス (child process) と呼び出し元のプロセスとが、メモリー空間、ファイルディスクリプターのテーブル、シグナルハンドラーのテーブルなどの 実行コンテキストの一部を共有できる。 (このマニュアル ... clone () の主要な使用法はスレッド (threads) を実装することである: 一つのプログラムの中の複数のスレッドは共有されたメモリー空間で 同時に実行される。 clone () で子プロセスが作成された時に、作成された子プロセスは関数 fn ( arg ) を実行する。 (この点が fo ... 出し元のプロセスと同じスタックで実行することができない。 このため、呼び出し元のプロセスは子プロセスのスタックのためのメモリー空間を 用意して、この空間へのポインターを clone () へ渡さなければならない。 (HP PA プロセッサ以外の) Linux が動作する全てのプロセ ... ... ジの最後の方で説明する。 fork (2) とは異なり、 clone () では、子プロセス (child process) と呼び出し元のプロセスとが、メモリー空間、ファイルディスクリプターのテーブル、シグナルハンドラーのテーブルなどの 実行コンテキストの一部を共有できる。 (このマニュアル ... clone () の主要な使用法はスレッド (threads) を実装することである: 一つのプログラムの中の複数のスレッドは共有されたメモリー空間で 同時に実行される。 clone () で子プロセスが作成された時に、作成された子プロセスは関数 fn ( arg ) を実行する。 (この点が fo ... 出し元のプロセスと同じスタックで実行することができない。 このため、呼び出し元のプロセスは子プロセスのスタックのためのメモリー空間を 用意して、この空間へのポインターを clone () へ渡さなければならない。 (HP PA プロセッサ以外の) Linux が動作する全てのプロセ ... ... (やスレッド) と現在共有している 実行コンテキストの一部を分離することができる。 実行コンテキストの一部、たとえばマウント名前空間 (mount namespace) などは、新しいプロセスを fork (2) または vfork (2) を使って生成したときに、暗黙のうちに共有される。 一方 ... YS_ADMIN capability. CLONE_NEWIPC (Linux 2.6.19 以降) このフラグは clone (2) CLONE_NEWIPC フラグと同じ効果を持つ。 IPC 名前空間を共有せず、呼び出し元プロセスは 他のプロセスとは共有しない固有の IPC 名前空間のコピーを持つ。 このフラグを指定すると、 CLON ... が必要である。 CLONE_NEWNET (Linux 2.6.24 以降) このフラグは clone (2) CLONE_NEWNET フラグと同じ効果を持つ。ネット ワーク名前空間を共有せず、呼び出し元プロセスは他のプロセスとは共有しな い固有のネットワーク名前空間のコピーを持つ。 CLONE_NEWNET を使用する ... ... ウントポイントであるとか、 オープンされたファイルが存在する、などがある。 EFAULT 場所を示す引き数のひとつがユーザーのアドレス空間の外を指している。 EINVAL source に不正なスーパーブロックがある。 または、 source が target にマウントされていないのに、再マ ... ーとなった。 Linux 2.4 以降では、このような場合は set-UID ビットや set-GID ビットが 無視されるだけである。 プロセス単位の名前空間 カーネル 2.4.19 以降の Linux では、プロセス単位のマウント名前空間 (mount namespace) が提供されている。マウント名前空間とは ... 、 あるプロセスに見えているファイルシステムのマウントの集合である。 マウントポイントの名前空間は複数のプロセスで共有することができ、 普通は共有されている。 一つのプロセスによる名前空間の変更 (すなわち、マウントやアンマ ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。