BSD Socket誕生の経緯

概要

本記事はBerkley Socket の歴史や開発当初の設計に興味を持ち調べた際のメモです。

調べたこと

Berkley SocketはBSD4.2のタイミングでBill Joyにより設計・実装されたようです。Bill Joyが開発に至るまでの経緯は『Unix考古学』で詳しく解説されています。

時はBSD4の時代に遡ります。Bolt Beranek and Newman (BBN) 社のRob GurwitzはBSD4.1向けのTCPの実装を開発し、BBN VAX TCP/IPとして配布しました。この実装は当時「公式のTCP実装」として認識されていましたが、現在のLinuxで動作するSocket機能は含まれておらず、またパフォーマンス面で改善の余地がありました。(同書 P166)

Rob GurwitzのTCP実装が持つパフォーマンス問題を改善するため、BerkleyのBill JoyはBBN BSD TCPの実装を流用しつつ、プロセス間通信の部分についてSocket Interfaceを利用する独自の実装に置き換えました。この機能がBSD4.2に採用され、今に至るまで使用され続けているようです。(同書 P176-177)

BSD4.2時点でのSocket Interfaceの実装の詳細は、以下資料の「6.1. Socket layer」に詳細に記載されています。 4.2BSD Networking Implementation Notes

/* https://sunrise033.com/entry/hatena-blog-how-to-hierarchicalize-categories */