Berkeley Software Distribution [ a ] ( BSD )、別名Berkeley Unix は、カリフォルニア大学バークレー校のコンピュータシステム研究グループ(CSRG)によって開発および配布された、現在は開発が終了しているUnixオペレーティングシステムです。1978 年に初めてリリースされた BSD は、ソースコードに基づいてベル研究所で開発されたAT&Tのオリジナルの Unixの改良版として始まりました。時を経て、BSD は独自のオペレーティングシステムへと進化し、コンピューティングや Unix ライクなシステムの開発と普及において重要な役割を果たしました。[ 2 ] [ 3 ]
BSD の開発は当初、ビル・ジョイが主導し、オザルプ・ババオグルと共に、VAX-11コンピュータ上で動作する Unix に仮想メモリ機能を追加しました。[ 3 ] 1980 年代には、BSD は、その寛容なライセンスとエンジニアの間での馴染みやすさから、 DECのUltrixやSun MicrosystemsのSunOSなどの独自のUnix ディストリビューションの形でワークステーションベンダーに広く採用されました。BSD はまた、オペレーティングシステムの研究に使用された学術機関で最も広く使用されている Unix の派生版になりました。[ 2 ] BSD プロジェクトは1988 年までDARPAから資金提供を受け、[ 3 ]その間に BSD はARPANET のサポートを組み込み、後にTCP/IPプロトコル スイートを実装し、1988 年に BSD NET/1 の一部としてリリースしました。[ 4 ]その時点で、コード ベースは元の AT&T Unix から大きく乖離しており、AT&T のコードは 5% 未満しか残っていないと推定されています。その結果、NET/1はAT&Tのソースライセンスを必要とせずに配布された。[ 3 ] [ 4 ]
バークレーは、資金の削減とUnix著作権訴訟から生じた複雑な問題により、1992年にUnixの研究を終了しました。[ 3 ]オリジナルのBSDが時代遅れになると、「BSD」という用語は主にFreeBSD、OpenBSD、NetBSD、DragonFly BSDなどのオープンソースの子孫、およびTrueOSなどのこれらのプロジェクトの派生を指すようになりました。BSD由来のコードは、 MachコードとともにDarwinの基礎を形成し、それがmacOSやiOSなどのApple独自のオペレーティングシステムに組み込まれています。[ 5 ] Windows NT 3.1のネットワークスタックはBSD由来のTCP/IP実装を使用しており、そのスタック用のBSDベースのネットワークユーティリティの一部もWindows NTに付属しています。[ 6 ] BSDのオープンソースの子孫のコード自体も、 PlayStation 5のシステムソフトウェアやその他の組み込み機器や商用機器を含む、さまざまな現代のプラットフォームに統合されています。[ 7 ]

1970年代のベル研究所による初期のUnix配布版には、オペレーティングシステムのソースコードが含まれており、大学の研究者がUnixを修正および拡張できるようになっていました。このオペレーティングシステムは、Unixが初めて発表されたオペレーティングシステム原理シンポジウムのプログラム委員会のメンバーであったコンピュータ科学教授ボブ・ファブリーの要請により、1974年にバークレーに導入されました。システムを実行するためにPDP-11/45が購入されましたが、予算上の理由から、このマシンはRSTSを使用していたバークレーの数学および統計グループと共有され、Unixは1日に8時間(日中または夜間)しかマシン上で実行されませんでした。翌年、Ingresデータベースプロジェクトの資金を使用して、より大型のPDP-11/70がバークレーに設置されました。[ 8 ]
BSDは、カリフォルニア大学バークレー校のプログラマーたちが、当初はビル・ジョイをリーダーとして、1970年代後半に開発を始めたUnixの派生版として誕生した。AT&Tが所有するコードと密接に結びついた追加機能が含まれていた。
1975年、ケン・トンプソンはベル研究所から休暇を取り、客員教授としてバークレーにやってきた。彼はUnixバージョン6のインストールを手伝い、システムのPascal実装に取り組み始めた。大学院生のチャック・ヘイリーとビル・ジョイはトンプソンのPascalを改良し、改良されたテキストエディタを実装した。[ 8 ]他の大学もバークレーのソフトウェアに興味を持ち、1977年にジョイは最初のBerkeley Software Distribution(1BSD)のコンパイルを開始し、1978年3月9日にリリースした。[ 9 ] 1BSDはそれ自体で完全なオペレーティングシステムではなく、Unixバージョン6のアドオンだった。約30部が配布された。[ 8 ]
1979年5月にリリースされた第2版Berkeley Software Distribution(2BSD)[ 10 ]には、 1BSDソフトウェアの更新版に加え、Joyによる2つの新しいプログラムが含まれており、これらは今日でもUnixシステム上で使われ続けている。viテキストエディタ(exのビジュアル版)とCシェルである。Bill Joyは2BSDを約75部配布した。[ 8 ]

1978年にバークレーにVAXコンピュータが設置されましたが、VAXアーキテクチャへのUnixの移植であるUNIX/32Vは、VAXの仮想メモリ機能を活用していませんでした。32Vのカーネルは、バークレーの大学院生Özalp Babaoğluの仮想メモリ実装を含めるように大幅に書き直され、新しいカーネル、VAXへの2BSDユーティリティの移植、および32Vのユーティリティを含む完全なオペレーティングシステムが、1979年末に3BSDとしてリリースされました。3BSDは、Virtual VAX/UNIXまたはVMUNIX(Virtual Memory Unixの略)とも呼ばれ、BSDカーネルイメージは通常4.4BSDまでそう呼ばれていました。/vmunix

1986年6月に4.3BSDがリリースされた後、BSDは老朽化したVAXプラットフォームから脱却することが決定されました。当時、Computer Consoles Inc.が開発したPower 6/32プラットフォーム(コードネーム「Tahoe」)は有望視されていましたが、その後まもなく開発者によって放棄されました。しかしながら、 4.3BSD-Tahoe移植版(1988年6月)は、BSDにおけるマシン依存コードとマシン非依存コードの分離につながり、システムの将来的な移植性を向上させるという点で、非常に価値のあるものとなりました。
CSRGは移植性に加えて、OSIネットワークプロトコルスタックの実装、カーネル仮想メモリシステムの改善、そして(LBLのヴァン・ヤコブソンと共に)インターネットの成長に対応するための新しいTCP/IPアルゴリズムの開発に取り組んだ。[ 11 ]
それまで、BSDのすべてのバージョンはAT&T独自のUnixコードを使用していたため、AT&Tのソフトウェアライセンスの対象となっていました。ソースコードのライセンス料が非常に高額になったため、複数の外部関係者が、AT&Tとは全く関係なく開発されたネットワークコードの別バージョンをリリースすることに関心を示しました。このネットワークコードはライセンス要件の対象とはなりませんでした。こうして、AT&Tコードのライセンスを持たないユーザーにも利用可能で、BSDライセンスの条件に基づいて自由に再配布できるNetworking Release 1(Net/1 )が誕生しました。Net/1は1989年6月にリリースされました。
Net/1 の後、BSD 開発者のKeith Bostic は、 BSD システムの AT&T 以外の部分を Net/1 と同じライセンスでリリースすることを提案しました。この目的のために、彼は AT&T のコードを使わずに標準 Unix ユーティリティのほとんどを再実装するプロジェクトを開始しました。18 か月以内に、すべての AT&T ユーティリティが置き換えられ、カーネル内に残っている AT&T ファイルはごくわずかであることが判明しました。これらのファイルは削除され、その結果、1991 年 6 月に Networking Release 2 (Net/2) がリリースされました。これは、ほぼ完成されたオペレーティングシステムであり、自由に配布することができました。
Net/2は、 Intel 80386アーキテクチャへのBSDの2つの移植版の基盤となった。1つはウィリアム・ジョリッツとリン・ジョリッツによるフリーの386BSD、もう1つはバークレー・ソフトウェア・デザイン(BSDi)によるプロプライエタリなBSD/386(後にBSD/OSと改名)である。386BSD自体は短命に終わったが、その後すぐに開始されたNetBSDおよびFreeBSDプロジェクトの初期コードベースとなった。
BSDiは間もなく、当時System Vの著作権とUnixの商標を所有していたAT&Tの子会社であるUnix System Laboratories (USL)との間で法的トラブルに巻き込まれた。USL対BSDi訴訟は1992年に提起され、 USLのソースコードに対する著作権主張の有効性が確定するまでNet/2の配布が差し止められた。この訴訟により、BSDのフリーソフトウェアの子孫の開発は、その法的地位が不明確な間、約2年間停滞し、結果として、そのような法的曖昧さのないLinuxカーネルをベースとしたシステムがより多くの支持を得ることになった。訴訟は1994年1月に和解したが、その内容は概ねバークレーに有利なものだった。バークレー配布版に含まれる18,000個のファイルのうち、削除する必要があったのはわずか3個で、USLの著作権表示を表示するために修正が必要だったのは70個だけだった。和解のさらなる条件として、USLは今後リリースされる4.4BSDにおいて、バークレー所有のコードのユーザーや配布者に対して訴訟を起こさないことになっていた。[ 12 ]
バークレー校からの最後のリリースは1995年の4.4BSD-Lite Release 2であり、その後CSRGは解散し、バークレー校でのBSDの開発は終了した。それ以来、4.4BSD-Liteを直接的または間接的にベースとしたいくつかの派生版( FreeBSD、NetBSD、OpenBSD、DragonFly BSDなど)が維持されている。
BSD ライセンスの寛容な性質により、オープンソースとプロプライエタリの両方の多くのオペレーティングシステムがBSD ソース コードを取り込むことが可能になりました。たとえば、Windows NT 3.1 はTCP/IP の実装に BSD コードを使用しており[ 6 ] 、 Windows 2000以降はBSD のコマンドラインネットワーク ツールの再コンパイル バージョンをバンドルしています[ 13 ]。AppleのmacOSとiOSのベースであるDarwin は、 4.4BSD-Lite2 と FreeBSD をベースにしています。Solaris などのさまざまな商用 Unix オペレーティングシステムもBSD コードを取り込んでいます。
第 8 版以降、ベル研究所のResearch UnixのバージョンはBSD と密接な関係を持つようになりました。これは、VAX 用の 4.1cBSD が Research Unix 第 8 版のベースとして使用されたことから始まりました。これは、4.3BSD のソース コードと改良点を取り入れた第 9 版などの後続バージョンでも継続されました。その結果、これらの後期バージョンの Research Unix は System V よりも BSD に近くなりました。2000年のUsenet の投稿で、Dennis Ritchie は BSD と Research Unix の関係について説明しています。[ 14 ]
Research Unix 第8版は(確か)BSD 4.1cをベースにしていましたが、膨大な量のコードが抜き出され、独自のコードに置き換えられました。これは第9版、第10版でも継続されました。一般ユーザーのコマンドセットは、SysVishというよりはBSD色が強かったと思いますが、かなり多様なものでした。
エリック・S・レイモンドは、 System VとBSDの長年にわたる関係を次のように要約している。「その分裂は、おおよそ長髪派と短髪派に分けられるものであった。プログラマーや技術者はバークレーとBSDに、よりビジネス志向の人々はAT&TとSystem Vに傾倒する傾向があった。」[ 15 ]
1989年、David A. CurryはBSDとSystem Vの違いについて書いた。彼はSystem Vを「標準Unix」とみなされることが多いと特徴づけた。しかし、BSDは高度な機能とパフォーマンスのため、大学や政府のコンピュータセンターでより人気があると述べている。[ 16 ]
UNIXを使用する大学や政府機関のコンピュータセンターのほとんどは、System VではなくBerkeley UNIXを使用しています。これにはいくつかの理由がありますが、おそらく最も重要な2つの理由は、Berkeley UNIXが、最近(リリース3.0まで)System Vでは全く利用できなかったネットワーク機能を提供していること、そして、より高速なファイルシステム、より優れた仮想メモリ処理、そしてより多様なプログラミング言語を必要とする研究環境に、Berkeley UNIXがはるかに適していることです。



バークレーのUnixは、インターネットプロトコルスタックをサポートするライブラリであるBerkeleyソケットを含む最初のUnixでした。IPの前身であるARPAnetのNCPのUnix実装は、 FTPおよびTelnetクライアントを備え、1975年にイリノイ大学で作成され、バークレーで利用可能でした。[ 17 ] [ 18 ]しかし、PDP-11のメモリ不足により、複雑な設計とパフォーマンスの問題が生じました。[ 19 ]
ソケットをUnixオペレーティングシステムのファイルディスクリプタと統合することで、ネットワークを介したデータの読み書きが、ディスクへのアクセスとほぼ同じくらい容易になった。AT&T研究所は最終的に独自のSTREAMSライブラリをリリースしたが、これは異なるアーキテクチャのソフトウェアスタックにほぼ同じ機能を組み込んだものであった。しかし、既存のソケットライブラリが広く普及していたため、新しいAPIの影響は限定的だった。初期のBSDバージョンは、 Sun MicrosystemsのSunOSの構築に使用され、最初の人気Unixワークステーションの波を生み出した。
一部のBSD系オペレーティングシステムは、バイナリ互換レイヤーを使用することで、同じアーキテクチャ上の他の複数のオペレーティングシステムのネイティブソフトウェアを実行できます。これはエミュレーションよりもはるかにシンプルで高速です。例えば、Linux向けに設計されたアプリケーションを実質的にフルスピードで実行できます。このため、BSD系OSはサーバー環境だけでなく、Linux専用の商用ソフトウェアやクローズドソースソフトウェアの入手性が向上しているワークステーション環境にも適しています。また、これにより、商用Unix系OSのみをサポートしていた従来の商用アプリケーションを、より新しいオペレーティングシステムに移行し、より優れた代替システムに置き換えられるまで、その機能を維持することができます。
現在のBSDオペレーティングシステムは、一般的なIEEE、ANSI、ISO、POSIX規格の多くをサポートしつつ、従来のBSDの動作の大部分を維持しています。AT &T Unixと同様に、BSDカーネルはモノリシック構造であり、カーネル内のデバイスドライバはオペレーティングシステムのコア部分として特権モードで実行されます。
FreeBSD、OpenBSD、NetBSD、DragonFly BSD、MidnightBSD、MirOS BSD、GhostBSDなど、BSDをベースとしたオペレーティングシステムは数多く存在する。NetBSDとFreeBSDはどちらも1993年に開発された。当初は386BSD(別名「Jolix」)から派生し、1994年に4.4BSD-Liteのソースコードを統合した。OpenBSDは1995年にNetBSDから、DragonFly BSDは2003年にFreeBSDからそれぞれフォークされた。
BSDは、Sun社のSunOS、Sequent社のDYNIX、NeXT社のNeXTSTEP、DEC社のUltrix、OSF/1 AXP(現在のTru64 UNIX )など、いくつかの独自バージョンのUnixの基盤としても使用されました。NeXTSTEPは後にApple社のmacOSや、 BSDベースのDarwinをコアオペレーティングシステムとして共有するiOSなどの後継オペレーティングシステムの基盤となりました。