図1●プロセス同士の通信
図1●プロセス同士の通信
[画像のクリックで拡大表示]

 LinuxなどのUNIX系OSでは、各種デバイスへのアクセス(入出力)に「デバイスファイル」というファイルインタフェースを利用します。これによりプロセスは、一般のファイルを読み書きするのと変わらない手順で周辺機器を操作できます。
 しかし、プロセス同士が、それもネットワーク経由で通信する場合、「ファイル」という概念をそのまま適用できません。ファイル・インタフェースを拡張した「ソケット」(Socket)というインタフェースを用います。
 プロセスは、お互いのソケットをネットワーク経由で接続し、そのソケットを通して通信します(図1)これは、ネットワーク経由ではない、ローカルマシン上のプロセスでも同様です。ローカルマシン上のプロセスが利用するソケットが「UNIXドメイン・ソケット」です。