FreeBSDについて

ここでは、FreeBSDの特徴を素人がまとめてみました。
主な情報源は、みんな大好きWikipedia!

誤りがあれば、コメントからご指摘お願い致します。

BSDの歴史

まずは、BSD系UNIXの歴史を少し覗いてみましょう。

そもそもUNIXは、1969年、AT&Tのベル研究所で開発がはじまりました。
中心の開発者は、C言語の開発者でお馴染みのケン・トンプソン、デニス・リッチー。
C言語は、UNIXを開発するために作られた言語です。

BSD系UNIXは、ベル研究所が公開した、1970年代初期のUNIXのソースコードを元に、カリフォルニア大学のバークレー校で開発がはじまりました。

Version(*1) 初版リリース ターゲット 備考(主な変更点や追加機能/コンポーネントなど)
1BSD 1978/3 PDP-11 Pascalコンパイラ, ex
2BSD 1979/5 PDP-11,VAX vi, csh
3BSD 1979/12 VAX 仮想記憶機能
4BSD 1980/1 VAX cshの改良, delivermail(sendmail前身), curses
4.1BSD 1980/6 VAX VMSに対抗して性能UP
4.2BSD 1983/8 VAX TCP/IP,Fast File System(UFSのこと?)
4.3BSD 1986/6 VAX,? 移植性UP, 性能UP(TCP/IPなど)
(BSD Net/1) 1989/6 VAX,? AT&Tの高価なライセンスからの脱却を目指し、ネットワーク関連をAT&Tのライセンスが不要なコードでまとめた
4.3BSD-Reno 1990 i386? POSIX準拠を目指し肥大化, NFS
(BSD Net/2) 1991/6 i386 AT&T由来のコードをほぼ(*2)置換もしくは削除し、自由に再配布可能なOSを目指す
(386BSD) 1992/2 i386 Net/2に欠けている機能を補い完全なOSとしてリリース
(BSD/386) 1992/? i386 後のBSD/OS。BSDiが商用として開発
4.4BSD-Encumbered 1994/6 i386 従来通りのライセンス版
4.4BSD-Lite 1994/6 i386 AT&Tライセンスに抵触しない版。
バークレーは1995年 4.4BSD-Lite2をもってBSD開発を終了

*1 ... ()内はバークレーの本流からは外れた開発

*2 ... いくつかAT&T由来のコードが残っており、後にNet/2をベースにして開発を行っていたBSDiがAT&TのUSL(UNIX Systems Laboratories)から訴訟を起こされた

長い歴史があるものですね。

1BSD〜4.2BSDの途中までは、ビル・ジョイが中心に開発していたそうです。
この方は、viエディタを作った人で、僕にとっては神様みたいな人です。
今はなき、サン・マイクロシステムズ(Java作った会社)の共同創業者でもあります。

やはり、歴史的分岐点は、BSDiとUSLの訴訟問題でしょうか。

この訴訟から和解までの約2年間、BSD系のPC-UNIX開発にはブレーキがかかります。
その間、ユーザーの支持を集めたのがLinux(1992年リリース)だそうです。
Linuxを開発したリーナス・トーヴァルズは、もしこの訴訟問題がなくて、手元にi386で使えるOSがあれば、Linuxを作ることはなかったかもとか。
もしそうであれば、今頃、BSDの天下だったかもしれませんね。
なんとも歴史とは面白いものです。

そして、この訴訟問題中に、386BSDをベースにしてFreeBSDの開発がはじまります。

BSD系OSを含めた、UNIX系OSの派生についてはWikipediaのUNIX系統図がとても分かりやすいです。

FreeBSDの場合、BSD系OSの派生図(ascii)を/usr/share/misc/bsd-family-treeで確認できます。

特徴

特徴と言っても、比較対象がないと素人の僕には何も語れません。

そこで、比較対象としてLinuxとNetBSDを挙げたいと思います。

比較項目 Linux NetBSD FreeBSD
重視するもの 多様性 移植性 安定性
ライセンス GNU GPL BSDライセンス BSDライセンス
ユーザー数 BSD系に比べると多い FreeBSDに比べると少ない Linuxに比べると少ない

以降では、上記について補足します。

重視するもの

正直、僕にはLinuxが重視するものはよく分からないです。
Linuxと言っても、本当に多種多様。乱世です。
しかし、その結果からすると、Linuxが重視しているのは多様性なのかな、と思っています。
Linuxは、Linuxディストリビューション(カーネル+周辺ソフトのセット)という形で配布されています。
各Linuxディストリビューションには、それぞれ違った目標・ビジョンがあります。
デスクトップ向け/サーバー向けなどの用途から、シンプルであることや、ユーザーがすぐに使い始められることなどのコンセプトを持っています。
多種多様なディストリビューションがあることもLinuxの多様性の理由の1つでしょう。
そして様々な選択肢があるということが、Linuxの強みでもあるのかな、と思います。

NetBSDは、移植性を重視しています。
様々なアーキテクチャでの動作実績があり、58以上のアーキテクチャ向けのビルドが1つのソースから可能とのこと。
NetBSDの設計は柔軟でソースが綺麗という話を、どこかで聞いたことがあります。

FreeBSDは、安定性を重視しています。
用途としてはサーバー向けを意識しており、高負荷がかかった状態でも安定して動作することを重視しているようです。
ソフトのアップデートも、比較的慎重で保守的とのこと。
また、多くのLinuxのディストリビューションのように、最初から色々なソフトがインストールされるということはありません。
僕としては、シンプルで精神衛生上とても良いことに感じます。

ライセンス

Linux, FreeBSD、NetBSDのいずれも、オープンソースと呼ばれるソースコードを公開するスタイルで、世界中の様々な人の協力によって開発されています。

割と大きな違いはライセンスかと思います。

LinuxはGNU GPLというライセンスを採用しています。
GNU GPLのバージョンによって違いもあるようですが、『ソフトの改良や再配布は自由。ただし、必ずベースにしたソフトの著作権を表示し、改変したソースコードは公開してね』という感じです。

一方、FreeBSDやNetBSDは、BSDライセンスを採用しています。
こちらは、『無保証・免責を宣言し、再配布する際は著作権を表示してね』という感じです。
ソースを公開する必要はありません。
FreeBSDでも、アプリケーションではGPLのものは利用できるのですが、カーネルにはGPLのコードは含まないとのこと。

このライセンスの違いから、BSD系OSはカスタマイズする必要がありそうな商用組み込み機器で採用しやすそうです。

とはいえ、最近は製品の説明書にGPLの条文が載ったものを度々見るので、Linuxも結構商用で利用されていそうですが。

参考までに、FreeBSDを採用している有名なサービスや製品が下記に載っています。
McAfeeやNetflixの他、僕らのNintendo Switchなんかもあるようです。

ユーザー数

デスクトップ用途の話ですが、下記サイトを見る限り、BSDに比べてLinuxが多いです。
しかし、そのLinuxも全体の2〜3%です。Windows強い。

上記サイトのデータに、どれくらいの信用性があるか分かりません。
それに、デスクトップ以外の用途では結果は大きく変わってきそうです。

そこで、調べものに利用する人がきっと多いであろうGoogleさんの、検索ヒット数で比較してみました。
2019.6.20現在、下記のようになりました。

キーワード 検索ヒット数 比率
Windows 約 3,790,000,000 件 79.9
macOS OSX 約 262,000,000 件 5
Linux 約 671,000,000 件 15
FreeBSD 約 18,300,000 件 0.38
NetBSD 約 2,150,000 件 0.04

macOS OSXは、ホントはmacで検索しよう思いましたが、OS以外に色々引っかかってそうなので、省きました。。

いずれにしても、Linuxのユーザー数は、FreeBSD/NetBSDに比べると圧倒的に多そうですね。
ユーザー数が多いということは、利用者も開発者も多そうです。
これは、開発速度やそのOSに関する情報量に影響します。
そういった点で、Linuxユーザーに比べてBSDユーザーは苦労しそうですネ。

最後に

以上、僕に分かる範囲で、BSDの歴史と、FreeBSDと他のOSの簡単な比較をしてみました。
結果からすると、デスクトップ用途ならLinuxが楽そうですね。。。

最後に、FreeBSDに少しでも興味を持ってもらうため、僕の考えを述べて終わりたいと思います。

僕としては、FreeBSDは、UNIXの入門OSに向いているのではないか、と考えています。
FreeBSDには、初期状態ではあまり余計なソフトが入っていません。
つまり、必要なものは自分でインストールして設定するしかないです。
これはには手間がかかりますが、ソフトの役割や仕組みを理解しながら、自分で自分に合った環境を整えていく習慣が自然と身につきます。
これぞUNIXスタイル。

また、Linuxのように目まぐるしくアップデートが行われることもありません。
様々なディストリビューション間の違いを気にする必要もありません。
得た知識が長く使えるというのは、学習者からすると安心です。

そして、portsというソフトを簡単にビルドするための仕組みが標準で用意されています。
開発に興味がある初心者には、大きなメリットではないでしょうか。

ついでに、サーバーやネットワークに興味があるなら、FreeBSDはそっち方面に強いらしいです。
これはもう、使ってみるっきゃないですね!

さて、どうでしょう。
少しはFreeBSDに触ってみようかな、と思って頂けましたでしょうか。

そんなところ残念なお知らせですが、実際に使ってみると、FreeBSD向けの日本語情報は思った以上に少ないです。
僕は今のところ、デスクトップ(または仮想コンソール)環境の構築について調べることが多いのですが、Linux向けの情報を参考にすることが多いです。

これはやはり前述のユーザー数が少ないことの影響が大きいのかと。

なので僕は、自分が欲しかった情報をまとめようと思った次第。
ちょっとだけ大変ですけど、その分、愛着もわきますし、結構楽しいですよ。

あなたも一緒に、FreeBSDを通してUNIXの世界で遊んでみませんか?

その他参考

以上。