LinuxにはどのようなコアカーネルレベルのIPCメカニズムがありますか?

LinuxにはどのようなコアカーネルレベルのIPCメカニズムがありますか?

私の頭の上には次のものがあることを知っています。

  • 管路
  • FIFOファイル/名前付きパイプ
  • メッセージキュー
  • 共有メモリ
  • シグナル
  • シグナル

これは完全なリストですか?ちょっと調べてみた結果、私の考えではおそらく、でも確かにやりたいです。

答え1

~からLinuxのIPCメカニズム - はじめに:

Linuxカーネルは、次のIPCメカニズムを提供します。

Signals
Anonymous Pipes
Named Pipes or FIFOs
SysV Message Queues
POSIX Message Queues
SysV Shared memory
POSIX Shared memory
SysV semaphores
POSIX semaphores
FUTEX locks
File-backed and anonymous shared memory using mmap
UNIX Domain Sockets
Netlink Sockets
Network Sockets
Inotify mechanisms
FUSE subsystem
D-Bus subsystem

共有ファイル記述子をリストに追加します。

答え2

pseudo-ttyも含まれますか?これは/dev/ptsLinux上の魔法の特殊ファイルです。私は以前のUnixが特別に名前付きデバイスファイルとして固定された数の疑似ttyを持っていると思います。

擬似ttyはパイプやソケットのペアと非常に似ていますが、他のioctl()呼び出しに応答します。

ソケットペアについて言えば、システムコールの特別なファイル記述子がsocketpair()含まれていますか?

また、共有メモリは2つの形式で提供されることに注意してください。一般的には使用できなくなり、フラグ付きのよく知られてmmap()いるファイルを使用するより古い、難解なSystem V IPC共有メモリがありますMAP_SHARED

関連情報