さよなら、愛しのFreeBSD

2019年1月末でFreeBSDに関連する開発活動を止めることにした。とても愛していたOSだけに身を切られるような思いは否めなかったが、別れが来るなら自分の自由になるうちにと思い、決断した。以下は個人的な想いを綴っている。

BSDの大元は、カリフォルニア大学バークレイ校で作られたオペレーティングシステム、今風に言えば基本ソフトだ。Berkeley Software Distributionというのがもともとの名前だ。

1985年に自分がUNIXに触れたころから憧れていたのがこのBSDだった。当時のBSDはまだオープンソースではなかったAT&TのUNIXのライセンス制限の傘下にあり、自由にソースコードが読めなかった。でもAT&TのUNIXであるSystem V(システムファイヴ)よりはずっと自由だった。その後、DECのULTRIXやSunのSunOS 4など、多くの先進的なUNIXマシンがBSDを採用していった。

転機が訪れたのは1991年のBSDのNet/2リリースだった。AT&Tのソースコードがほとんど取り除かれ、BSDがオープンソースになろうとしていた。しかし、フリーの386BSD、そして商品だがソースコードが自由に読めたBerkeley Software Design社(BSDi)のBSD/386(後のBSD/OS)が1993年にリリースされたとき、AT&TはBSDiに対して訴訟を起こす。この訴訟は1994年にBSDi側に有利な条件で決着が付くが、訴訟が起こった時点で多くのユーザがAT&Tを恐れてBSDを離れLinuxを使うようになったという、誠に残念な結果になった。この訴訟がなければ今のLinux一択の状況は変わっていたかもしれない。

その後1995年に4.4BSD-Lite Release 2が出て、FreeBSD, OpenBSD, NetBSDそして後のDragonFly BSDというオープンソースのBSDという流れができる。私も1997年からFreeBSDを本格的に使うようになった。22年ほど付き合いがあったことになる。それまでDECの4.3BSDやULTRIX、SunOS 4.1.4、BSD/OSなど使っていたのだけど、ライセンスが自由なBSDはこれが最初だった。

FreeBSDはバージョン4.11で一度開発が停滞し、バージョン5のマルチコア(SMP)サポートが不安定だったため、私はバージョン5は手元の機器にインストールしなかった。その後2コアのマルチコア環境が一般的になって、バージョン6からまた使い始めるようになり、結局バージョン12.0まで付き合ったことになる。

FreeBSDの良さはなんといってもネットワークコードが各種教科書に載っているBSDベースだったことと、ZFSやDTraceなどSun MicrosystemsのSolaris由来技術がいち早く移植されたOSであったことだ。そして決定的だったのは、(1)カーネルや基本的なユーザランドが統一されていたこと(baseキット)、(2)カーネルや基本的なユーザランドは全部最初からコンパイルして作り直せたこと、そして(3)Portsというサードパーティのソフトウェアをソースコードから作れた膨大なソフトウェア資産があったこと、という3点だったと思っている。

FreeBSDでは、ソースコードから再構築できる環境を提供することで、OSのカーネルからユーザランド、アプリケーションまですべてを通してソースコードから学ぶことができた。この文化は他のOSにはないものだと思っている。(もちろんLinuxもソースコードは開示されているが、ゼロから簡単にキットビルドできるようには作られていないと私は理解している。)

しかし、OSの機能として比較した時、もはや2019年の現在ではFreeBSDとLinuxの間には大きな差はなく、単純にコンパイル済みのバイナリコードを使って必要なところだけソースコードを検証するという用途であれば、FreeBSDの利点は薄れる。また、PortsをコンパイルするだけでもLLVMのコンパイラを3種類(4, 5, 6)用意しなければならないなど、実用的なシステムとして維持することは容易ではなかった。バイナリのpackageも結局Portsとの整合性を取らなければならないという問題があり、UbuntuのaptやmacOSのHomeBrewのような環境構築というわけにはいかなかった。

FreeBSDは今も素敵なOSだと思っているし、仕事でオファーがあればぜひまた使ってみたいOSだと思っている。ただ、今の自分の生活を鑑みるに、開発環境を維持できる状況ではないのもまた事実だ。そんなわけで、断腸の思いでFreeBSDに対するコミットをやめることにした。この敗北感と喪失感から立ち直るのは容易ではない。

さよなら、愛しのFreeBSD。

2019年3月18日追記: 「DTraceやZFSなどの機能が最初に開発実装されたOSだったことであろう。」は事実誤認であり間違いであるという指摘を以下のURLにていただきました。これは指摘の通りであり、本文中の該当記述を「ZFSやDTraceなどSun MicrosystemsのSolaris由来技術がいち早く移植されたOSであったことだ」と改めました。指摘された方に感謝します。

http://b.hatena.ne.jp/entry/4664171470879936193/comment/tomoyat1

この記事が参加している募集

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

note.user.nickname || note.user.urlname

皆様からいただいたサポートは、個人事業の研究開発活動で使わせていただきます。

押していただいてありがとうございます!
83

#エンジニア 系記事まとめ

noteに投稿されたエンジニア系の記事のまとめ。コーディングTIPSよりは、考察や意見などを中心に。
3つのマガジンに含まれています