procfsの起源

プロセスをファイルシステムマッピングするprocfsはPlan 9で有名になったけど、その起源はawkのPeter J. Weinberger (pjw)にあった!という話。

今、LinuxBSD*1で使われている形のprocfs、つまり/proc//filesという形式はPlan 9が始まりだけど、procfs自体はそれより前にUNIX V8上で実装されていた。これに関してTom Killianは1984年のUNIXで論文「Processes as Files」を発表している。この論文を読んだことはないのだが、UNIX V8のprocfsは前述のような階層構造になっている訳ではなく、1プロセス=1ファイルだったようだ。

このへんの話題を調べていたところ、9fansの「Is /proc an Plan9 invention ?」というスレッドに目が止まった。Rob Pikeは9fansへの投稿でこう書いている。

I'm pretty sure Peter Weinberger (pjw) did the very first, which
Killian adapted and improved when pjw lost interest.

pjw*2とはもちろんawkの作者の一人であり、古くからのUNIXユーザにはおなじみの顔であろう。

*1:Linuxはプロセスに関係ないものまで/procに入れちゃうので(以前よりましになってきたと思うが)混沌としている。一方、BSDではprocfsは必須ではない感じだ。id:syuu1228さんによるとLinuxエミュレーションで必要になるぐらいだとか。実際、Mac OS Xはprocfsをサポートしていない。

*2:しかし、pjwもGoogleなのか。。。