デフォルトでは、Linux システムで実行されている各プロセスには、独自のプライベート メモリ ページがあります。あるプロセスは、別のプロセスによって使用されているメモリ ページにアクセスできません。カーネルは独自のメモリ領域を維持します。セキュリティ上の理由から、どのプロセスもカーネル プロセスが使用するメモリにアクセスできません。データ共有を容易にするために、共有メモリ ページを作成できます。複数のプロセスが、共通の共有メモリ領域に対して読み書きを行うことができます。カーネルは共有メモリ領域を維持および管理し、個々のプロセスが共有領域にアクセスできるようにします。
ipcs コマンドは、現在のプロセスが読み取りアクセス権を持つプロセス間通信 (IPC) メッセージ キュー、共有メモリ セグメント、およびセマフォ配列に関するレポートを出力します。オプションを使用して、レポートするリソースのタイプとレポートの出力形式を指定できます。 ipcs コマンドを使用すると、システム上の現在の共有メモリ ページを表示できます。サンプル ipcs コマンドの出力は次のとおりです。
# ipcs -m ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x00000000 0 rich 600 52228 6 dest 0x395ec51c 1 oracle 640 5787648 6
各共有メモリ セグメントには、セグメントを作成した所有者がいます。各セグメントには、他のユーザーがセグメントを使用できるかどうかを設定する標準の Linux 権限設定もあります。キー値は、他のユーザーが共有メモリ セグメントにアクセスできるようにするために使用されます。
ipcs コマンドの例
1. 共有メモリ セグメントを表示するには:
# ipcs -m
2. メッセージ キューを表示するには:
# ipcs -q
3. セマフォ配列を表示するには:
# ipcs -s
4. すべてを見るには:
# ipcs -a
5. 出力形式を取得するには:
# ipcs -t time -p pid -c creator -l limits -u summary