386BSD 2.0登場
2016年7月3日あたりからGitHubに386BSDのソースコードのコミットが行われました。2016年8月5日に実施されたコミット(dc8b130e648dff87e8863d7ac5c903fbb63fc313 )で「Upgrade to 386BSD 2.0」というメッセージが書き込まれ、このソースコードが386BSD 2.0として位置づけられていることが明らかになりました。
図 Upgrade to 386BSD 2.0
現在は次のサイトから386BSDのまとまった情報にアクセスできるようになっています。
図 Welcome to 386BSD!
図 386BSD on GitHub
掲載されているデータによるとソースコードとしては386BSD 0.1、386BSD 1.0、386BSD 2.0のソースコードが取得できるようになっているようです。
なぜこのタイミングで?
Innovation, Not Renovation|About|Welcome to 386BSD! に掲載されている説明によると、Dr. Dobb's Journalに掲載された論文「Porting Unix to the 386」と同時に1993年に「386BSD 0.0」が公開され、公開後には世界中から寄せされたコントリビューションを取り込んだ「386BSD 0.1」が公開されたそうです。
Jolixとして知られている「386BSD 1.0」はモジュラーアーキテクチャを利用して初期のバークレーUNIXより分岐しとされています。さらに今回GitHubに登録された「386BSD 2.0」はモジュラーフレームワーク上に構築されており、セルフヒーリングコンポーネントが開発できるようになっていると説明があります。どちらのリリースもロールベースセキュリティからポルモーフィックプロトコルまで新しいメカニズムを導入したと説明があります。
図 Jolix 1.0/2.0 - High-Speed Networking
図 Jolix 1.0/2.0 - Polymorphic Protocols
386BSD 0.0、386BSD 0.1、386BSD 1.0、386BSD 2.0でそれぞれどのような違いがあるかはGitHubから履歴を追うか、またはWelcome to 386BSD! に解説文書が公開されているので、ここからざっくり内容を把握することができます。
説明によれば386BSD 1.0および386BSD 2.0ではカーネルがモジュール構造へ変更されており、特権処理、ネットワークアーキテクチャ、セキュリティなどにより新しい手法を取り込んでいるとされています。今回GitHubに386BSD 2.0までの成果物がコミットされた理由はよくわかりませんが、簡単にアクセスできるようになったことは喜ばしいことといえると思います。また、GitHubに追加された386BSD 2.0が実際には何年に開発されたものであるかはよくわかりません。
386BSD 2.0のソースコードを読む
GitHubに公開されましたので、386BSD 2.0のソースコードを簡単に読めるようになりました。git(1)コマンドを使って次のようにダウンロードしてくることができます。クローン時のチェックアウトファイル数は12,959個です。
図 386BSD 2.0のソースコードをダウンロード
git clone https://github.com/386bsd/386bsd.git
内容物はcloc換算で次のようになっています。
図 386BSD 2.0の内容物 cloc分析
386BSDはNetBSDやFreeBSDに大元になったディストリビューションです。つまりOpenBSD、DragonFly BSD、FreeNAS、TrueOS、PC-BSD、pfSense、OPNsenseなどの大元にあるディストリビューションとも言えます。
FreeBSDやNetBSDが独自のプロジェクトとして歩み始めてからもうかなり時間が経っています。FreeBSD 11.0-RELEASEの段階でcloc換算のユニークファイル数は66,468と7倍以上、総コード行数は15,173,727と14倍近くと、386BSD 2.0のソースコードを比較してかなり大きなものになっています。
386BSD 2.0と今のNetBSDやFreeBSD、OpenBSDのカーネルソースコードを見比べて見るというのもなかなかおもしろいところです。