バークレーソフトウェアディストリビューション(BSD ) [a]は、カリフォルニア大学バークレー校のコンピュータシステム研究グループ(CSRG)によって開発・配布されていた、現在は廃止されたUnixオペレーティングシステムです。1978年に初めてリリースされ、 AT&TのオリジナルUnix (ベル研究所で開発)のソースコードに基づいて改良された派生版として始まりました。時を経てBSDは独自のオペレーティングシステムへと進化し、コンピューティングやUnix系システムの開発・普及において重要な役割を果たしました。[2] [3]
BSDの開発は当初ビル・ジョイが主導し、VAX-11コンピュータ上で動作するUnixに仮想メモリ機能を追加した。[3] 1980年代、BSDは、その寛容なライセンスと技術者の間での馴染み深さから、DECのUltrixやサン・マイクロシステムズの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の基礎も形成し、DarwinはmacOSやiOSなどのAppleの独自OSに組み込まれています。[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の派生版として開発を始めた。BSDには追加機能が含まれており、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版バークレー・ソフトウェア・ディストリビューション(2BSD)[10]には、 1BSDソフトウェアのアップデート版に加え、ジョイによる2つの新しいプログラムが含まれていました。これらは現在もUnixシステムに存在し、viテキストエディタ(exのビジュアル版)とCシェルです。ビル・ジョイは約75部の2BSDを配布しました。[8]

1978年、バークレーにVAXコンピュータが導入されましたが、VAXアーキテクチャへのUnixの移植版であるUNIX/32Vは、VAXの仮想記憶機能を活用していませんでした。32Vのカーネルは、バークレーの大学院生オザルプ・ババオグルによる仮想記憶実装を組み込むように大幅に書き換えられ、新しいカーネル、2BSDユーティリティのVAXへの移植版、そして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のVan Jacobsonと共同で)インターネットの成長に対応するための新しいTCP/IPアルゴリズムの開発に取り組みました。[11]
それまで、BSDのすべてのバージョンはAT&T独自のUnixコードを使用していたため、AT&Tのソフトウェアライセンスの対象となっていました。ソースコードライセンスは非常に高額になり、複数の外部団体が、AT&Tの外部で完全に開発され、ライセンス要件の対象外となるネットワークコードの別リリースに関心を示しました。これがNetworking Release 1(Net/1)につながり、AT&Tコードのライセンスを持たない人にも利用可能となり、BSDライセンスの条件の下で自由に再配布可能となりました。Net/1は1989年6月にリリースされました。
Net/1の後、BSD開発者のキース・ボスティックは、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 つの別々の移植版の基礎となりました。ウィリアム・ジョリッツとリン・ジョリッツによるフリーの386BSDと、Berkeley Software Design (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のファイルのうち、USLの著作権表示を表示するために削除する必要があったのはわずか3つ、修正されたのは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コードを組み込んでいます。
ベル研究所のResearch Unixは、第8版以降、BSDと密接な関係を築いてきました。これは、VAX用の4.1cBSDがResearch Unix第8版のベースとして使用されたことに始まります。この関係は、4.3BSDのソースコードと改良点を組み込んだ第9版などの後続バージョンにも引き継がれました。その結果、これらのResearch Unixの後期バージョンは、System VよりもBSDに近いものとなりました。 2000年のUsenetへの投稿で、デニス・リッチーはBSDとResearch Unixの関係について次のように述べています。[14] [より適切な出典が必要]
Research Unix 8th Editionは(確か)BSD 4.1cから始まりましたが、膨大な量の機能が削除され、独自の機能に置き換えられました。この流れは9th、10thでも続きました。一般ユーザー向けのコマンドセットは、SysVishというよりはむしろBSD寄りだったと思いますが、かなり折衷的でした。
エリック・S・レイモンドは、 System VとBSDの長年にわたる関係を次のように要約している。「その関係は、大まかに言って長髪派と短髪派に分かれた。プログラマーや技術者はバークレーとBSDに肩入れする傾向があり、ビジネス志向の強い人はAT&TとSystem Vに肩入れする傾向があった。」[15]
1989年、デイビッド・A・カリーはBSDとSystem Vの違いについて執筆した。彼はSystem Vがしばしば「標準的なUnix」と見なされていると指摘した。しかし、高度な機能と性能を持つBSDは、大学や政府のコンピュータセンターでより普及していると述べた。[16]
UNIX を使用する大学や政府のコンピュータ センターのほとんどは、System V ではなく Berkeley UNIX を使用しています。これにはいくつかの理由がありますが、最も重要な 2 つの理由は、Berkeley UNIX が、最近まで (リリース 3.0) System V ではまったく利用できなかったネットワーク機能を提供していることと、Berkeley UNIX がより高速なファイル システム、より優れた仮想メモリ処理、およびより多様なプログラミング言語を必要とする研究環境に適していることです。



バークレーのUnixは、インターネットプロトコルスタック(バークレーソケット)をサポートするライブラリを搭載した最初のUnixでした。IPの前身であるARPAnetのNCPのUnix実装は、FTPとTelnetクライアントを備え、1975年にイリノイ大学で開発され、バークレーでも利用可能でした。[17] [18]しかし、PDP-11のメモリ不足により、設計が複雑化し、パフォーマンスの問題も発生しました。[19]
ソケットをUnixオペレーティングシステムのファイル記述子に統合することで、ネットワーク経由でのデータの読み書きは、ディスクへのアクセスとほぼ同じくらい容易になりました。AT&T研究所は最終的に独自のSTREAMSライブラリをリリースしました。これは、異なるアーキテクチャのソフトウェアスタックに多くの同じ機能を組み込んでいましたが、既存のソケットライブラリが広く普及していたため、新しいAPIの影響は小さくなりました。BSDの初期バージョンは、サン・マイクロシステムズのSunOSの形成に使用され、普及したUnixワークステーションの第一波の礎となりました。
一部の BSD オペレーティングシステムでは、バイナリ互換レイヤーを使用することで、同じアーキテクチャ上で他の複数のオペレーティングシステムのネイティブソフトウェアを実行できます。これはエミュレーションよりもはるかに単純かつ高速です。たとえば、Linux用のアプリケーションを事実上フルスピードで実行できます。そのため、BSD はサーバー環境だけでなく、Linux 専用の商用ソフトウェアやクローズドソースソフトウェアが増えていることを考えると、ワークステーション環境にも適しています。また、これにより管理者は、商用 Unix バリアントしかサポートしていなかった古い商用アプリケーションをより新しいオペレーティングシステムに移行し、より優れた代替手段に置き換えられるまで、そのようなアプリケーションの機能を保持することができます。
現在のBSDオペレーティングシステムの派生版は、従来のBSDの動作の大部分を維持しながら、 IEEE、ANSI、ISO、POSIXといった一般的な標準規格の多くをサポートしています。AT &T Unixと同様に、BSDカーネルはモノリシックであり、カーネル内のデバイスドライバはオペレーティングシステムの中核部分として 特権モードで実行されます。
BSDをベースにしたオペレーティングシステムには、FreeBSD、OpenBSD、NetBSD、MidnightBSD、MirOS BSD、GhostBSD、Darwin、DragonFly 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の基盤となりました。