LoginSignup
0
0

色づかないWorld Wide Webの昨日から Ep.003「1983/08 4.2BSDリリース」

Posted at

祝!4.2BSDリリース40周年

4.2BSDリリース40周年です!

覚えていますか♪あの(たぶん)暑かった夏を(?)

あの夏、日本では、「ジェダイの復讐」を見て「やっぱりEpisode.4だけでいいよな...」と思ったり、「南極物語」(BGMはヴァンゲリス)でタロとジロに涙してみたり、はたまた角川映画(「時をかける少女」「探偵物語」)が流行していたり、当時の人も、いろいろTARI TARIしていたに違いありません

4.2BSDとは?

AT&Tライセンスが必要なオリジナルUNIXの系統で、もっとも産業界にインパクトを与えた記念すべきバージョン

という紹介文は、いかがでしょうか?

ここで「産業界」は、商用UNIXだけではなく「商用インターネットに必要なエコシステム」を含めているつもりです。

1980年代には、ネットワーク機器ベンダーが登場してきます。ベンダーが欲しかったものはUNIXではなくネットワークのコードです。TCPを一から開発する必要がないのは大きいですよね。そういうわけで、(4.2の後)バークレイで開発した(つまりAT&Tライセンスに抵触しない)部分は、バークレイからNR1(Network Release 1)といった形で提供されていきました。

4.2BSDの技術的特徴

出来事史の詳細は「UNIXの1/4世紀」[Salus 1994]と「Unix考古学」[藤田 2016]を参照してください。技術詳細は、(4.2BSDの改良版にあたる)4.3BSDの解説書「4.3BSDの設計と実装」(絶版)[Leffler.et.al. 1989]とソースコードそのものが良いでしょう。

とにかく、二つの大きなウリがTCP/IPFFSです。非公式には、もっと前のマイナーバージョンから入っていますが、利用者が限定されていたため、4.2BSDをもって、これらが公式デビューしたことになります。

4.2BSDとは?その立ち位置

Arapnet接続ユーザの機材更新にあたり、DEC社VAX11購入者むけARPA推奨OSが4.2BSDという説明が良いようです。

この時点で、TCP/IP自体は、すでに10年近く研究開発してきたものでした。そして、Arpanetも10年以上運用されてきていました。そのあいだに、ミニコンが普及し、16ビットから32ビット世代ハードウエアへの移行を考える時期になっていました。

購入できる(開発させる?)お金があるサイトはメインフレームでもいいわけですが、この頃の、お求めやすい価格の32ビットハードウエアというとDECのミニコンだったでしょう。ただし、ミニコン全盛期はそろそろ終わりです。

BSDの開発を主導してきた大学院生Bill Joyは4.2BSDリリースの半年ほど前にバークレイを去り(博士課程は中途退学)、SUN(サンマイクロシステムズ社)のco-founderとなっています。4.2BSDリリースの直後、1983年11月にはBSDベースのSUN-2も発売され、本格的にUnixワークステーションの時代が始まっていきます。

TCP/IP

バークレイにARPAから提供されたBBN社のリファレンス実装がありました。リファレンス実装は「/dev/tcpを開いて、あれこれする」というUNIX風のコードです。のちのPlan 9やGo言語風と言ってもよいでしょう(注:Plan9もGo言語も主要メンバにRob PikeとKen Thompsonがいます)。今の人には、Go言語のTCP/IP生コードに近い感じという説明が伝わると思います。

このTCP/IPリファレンス実装をBSD UNIXにマージしてリリースすれば、ARPAとの契約としては十分だったはずですが、そういうことにならなかったのでした。Bill Joyが改造しまくった結果、われわれが今知っているC言語のソケットプログラミングとなりましたとさ。

FFS (Berkeley Fast File System)

AT&TオリジナルUNIXのファイルシステムは、素直というか単純で、耐障害性も低いものでした。ただ、そもそもHDDの速度も遅く容量も小さかった時代の産物なので、当初は、そんなに頑張らなくても大丈夫だったor(よくはないですが)その辺の改良は後回しだったでしょうか。

しかしながら、10年もたつと、ずいぶんハードウエアも進化します。高性能で大容量なものになったはずです。UNIXも普及してきて、ファイルシステムの不満も溜まっていたでしょう。

FFSでは、パフォーマンス改善のためにHDDの構造を考慮した書きこみ場所の決定や、重要情報の冗長化をしています。SSDが主流の今では、ピンと来てもらえない話ですが。。。

4.2BSDのリリース日はいつなのか?

素朴な疑問です。ざっくり1983年8月(たまに9月説もある?(出典不明))とされていますが、8月N日といった公式リリース日は未定なのでしょうか?

ちなみに、そもそもARPAとの契約終了日が9月30日なので[Fabry and Sequin 1983]、どんなに遅くとも、8月の終わりには、各サイトにテープを発送するくらいのダンドリのはずです。よって、8月リリースという伝承は妥当なところです。もっとも、たとえ実作業が遅れていても、書類上リリースしたと主張するとは思いますけれど(w)。

さて、それはともかく、リリース日の疑問に戻りましょう。こういうときはUNIX遺産(The Unix Heritage Society略してTUHS)を掘り返します。

まず、リリースに際して最終確認するであろう、いかにもそれっぽい名前のディレクトリをみていきます。トップディレクトリをはじめ、doc news dist(distributionの略)などですね。そこにあるREADMEの日付は次のようになっています。

Aug 11 1983 ./README
Aug 12 1983 ./news/README
Aug 14 1983 ./dist/README

ただ、ファイルの中を見てもリリース日が明言されていたりはしないのですね。でも、8月なかばに、これらのファイルを準備していることが分りました。

TUHSでは、当時のバイナリも入手可能なことが多いので、そこも見てみましょう。もちろん4.2BSDでも入手可能です。と言うより、当時のCSRGの開発機のバックアップそのものを掘り返してきて、それをそのまま寄贈してくれたものに見えますね。

GENERICカーネルをcompileするディレクトリ(現在の/usr/src/sys/arch/vax/compile/GENERICに相当する場所)を見ると、headerファイルとparams.cの日付もAug 14になっています。

ちなみに、カーネルの修正とrebuildは続いているらしく、11/3まで数度に渡りrecompileした様子が見てとれます。

そういうわけで、確信は得られませんが、8月なかばにリリースし、随時発送していきました。ただし、トラブル対応は11月くらいまで続いたようです。そんなところでしょうか。。。

参考文献

  • 4.2BSD
  • [Fabry and Sequin 1983] R.S.Fabry and C.Sequin, TECHNICAL REPORT
  • [Salus 1994] Peter Salus, "A Quarter Century of UNIX",
    (Addison-Wesley Publishing Company, 1994);
    QUIPU LLC 訳:UNIXの1/4世紀,株式会社アスキー(2000)
  • [藤田 2016] 藤田昭人, "Unix考古学 Truth of the Legend" (KADOKAWA, 2016)
  • [Leffler.et.al. 1989] Samual J. Leffler et.al. "The Design and Implementation of the 4.3Bsd Unix Operating System" (Addison-Wesley Publishing Company, 1989)

あとがき

本当は8月分 (こればっかり;-)

original site: https://technotes.fml.org/tech/history/worlds-in-mono/
(qiita版も致命的な間違いやTYPOは修正しますがupdatesはoriginalのほうだけです)

Copyright (C) 2023 Ken’ichi Fukamachi, CC BY-NC-SA 4.0

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0