Berkeley Software Distribution は、1977年から1995年までカリフォルニア大学バークレー校 (University of California, Berkeley, UCB) のComputer Systems Research Group (CSRG) が開発・配布したソフトウェア群、およびUNIX オペレーティングシステム (OS) を言う。略称はBSD (ビーエスディー)。なお、今日「BSD」という名称は同OSを元に開発されたBSDの子孫 の総称として使われることもあるが、この項では主に前述のUCBによるソフトウェア群およびOSについて述べる。
元となったコードベースと設計はAT&T のUNIXと共通であるため、歴史的にはBSDはUNIXの支流 "BSD UNIX" とみなされてきた。1980年代、ワークステーション クラスのシステムベンダーがプロプライエタリなUNIXとしてBSDを広く採用していた。例えば、DEC のUltrix 、サン・マイクロシステムズ のSunOS などである。これは、ライセンス条件の容易だったためと、当時の多くの技術系企業の創業者がBSDを熟知していたためである。
それらプロプライエタリ(proprietary:非公開)なBSD派生OSは、1990年代にはUNIX System V Release 4 とOSF/1 に取って代わられ(どちらもBSDのコードを取り入れており、他の現代のUnixシステムの基盤となった)、後期のBSDリリースはいくつかのオープンソース 開発プロジェクトの基盤となった。例えば、FreeBSD 、NetBSD 、OpenBSD 、DragonFly BSD などが今も開発中である。さらにそれら(の全部あるいは一部)が最近のプロプライエタリなOSにも採用されている。例えば、Windows のTCP/IP コード(IPv4のみ)やApple のmacOS である。
UNIX系統図 ベル研究所 は1970年代に初期のUnixをソースコード も含めて配布し、大学 の研究者らがUnixを修正・拡張できるようにした。バークレーでの最初のUnixシステムはPDP-11 を使ったもので、1974年にインストールされ、計算機科学 科が様々な研究に使用した。
他の大学はバークレーで改良されたソフトウェアに関心を寄せるようになり、当時バークレーの大学院生だったビル・ジョイ が1977年、それらをfirst Berkeley Software Distribution (1BSD ) としてまとめ始め、1978年3月9日にリリースした[ 1] 。1BSDは独立した完全なOSというよりもSixth Edition Unix へのアドオンであり、その主なコンポーネントはPascal コンパイラ とジョイが開発したラインエディタ ex (英語版 ) だった。
1979年5月にリリースとなったSecond Berkeley Software Distribution (2BSD )[ 2] は、1BSDのソフトウェアの更新版だけでなくジョイが新たに開発したvi エディタ(exのスクリーンエディタ 版)とC Shell も含まれていた。
2BSDの後のリリースでは、PDP-11アーキテクチャからVAX ベースへとプラットフォームが変化している。1983年の2.9BSDには4.1cBSDからのコードを含んでおり、それまでアプリケーションとパッチの集まりだったものが初めて完全なOS(Version 7 Unix の修正版)のリリースとなった。2BSDの最終版は1992年にリリースされた2.11BSD である。2008年現在、2BSD用のパッチ447が2008年12月31日にリリースされており、ボランティアによる保守が続いている[ 3] 。
1978年、UnixをVAX アーキテクチャに移植 したUNIX/32V がバークレーのVAXにインストールされたが、これはVAXの仮想記憶 機能を生かしたものではなかった。32Vのカーネル をバークレーの学生達が大幅に書きかえて仮想記憶を実装し、2BSDのユーティリティ群をVAXに移植したものと32V由来のユーティリティ群をまとめて完全なOSとしたものが3BSD として1979年末にリリースされた。3BSDは、Virtual VAX/UNIX または VMUNIX (Virtual Memory Unix) とも呼ばれ、BSDのカーネルイメージは4.4BSDまで/vmunix と呼ばれるようになった。
3BSDに注目した国防高等研究計画局 (DARPA) は、バークレーのComputer Systems Research Group (CSRG) に資金提供することを決め、CSRGにDARPAの研究プロジェクトであるVLSI Project のための標準Unixプラットフォームを開発させることにした。1980年、CSRGは3BSDに様々な改良を加えた4BSD をリリースした。
4BSD (1980年11月)が3BSDに加えた改良としては、既にリリース済みだったcsh でのジョブコントロール (英語版 ) 、delivermail (sendmail の前身)、高信頼のシグナル 、curses ライブラリなどがある。
4.1BSD (1981年6月)は、VAXの主要OSであるVMS に比べてBSDの性能が悪いという批判に応えたものだった。ビル・ジョイ は4.1BSDカーネルがVMSといくつかのベンチマーク で互角になるまで体系的に性能強化を施した。当初 5BSD と呼ぶ予定だったが、AT&T がUNIX System V との混同を恐れて異議を唱えたため、4.1BSD となった[ 4] 。
4.2BSD はいくつかの大きな改修を行い、リリースまで2年以上かかった。4.2BSDがリリースされるまでに中間バージョンが3度リリースされている。4.1a はBBN の予備的なTCP/IP 実装を導入している。4.1b はマーシャル・カーク・マキュージック が実装したBerkeley Fast File System を導入した。4.1c は4.2BSDの数カ月前にリリースされた中間バージョンである。
4.2BSDの設計方針を決定するため、DARPA は運営委員会を立ち上げた。委員にはUCB からボブ・ファブリー、ビル・ジョイ 、サム・レフラー、BBNからアラン・ネメス、ロブ・ガーウィッツ、ベル研究所 からデニス・リッチー 、スタンフォード大学 からキース・ランツ、カーネギーメロン大学 からリチャード・ラシッド 、MIT からバート・ハルステッド、ISI からダン・リンチ、UCLA からジェラルド・J・ポペック が参加した。この委員会は1981年4月から1983年6月まで会合を開いていた。
4.2BSDは1983年8月に正式リリースされた。実は、リリース前の1982年にはビル・ジョイが大学を離れてサン・マイクロシステムズ を共同創業している。その後はマイク・カレルズ (英語版 ) とマーシャル・カーク・マキュージック がプロジェクトリーダー的役割を果たした。また、4.2BSDのリリースと同時にジョン・ラセター の描いたBSDデーモン というマスコットもデビューした。最初の登場はUSENIX で配布されたマニュアルの表紙である。
4.3BSD は1986年6月にリリースされた。主な改良点は性能であり、4.2BSDは4.1BSDほど性能をチューニングできていなかった。そのリリース前に、BSDでのTCP/IPの実装はBBNの公式実装から大幅に変更されていた。DARPAは数カ月かけてそれを試験し、BBN版より4.2BSD版が優れていると結論付け、それがそのまま4.3BSDで採用された。
4.3BSDリリース後、BSDのプラットフォームを古くなったVAXから新たなプラットフォームへ移行することが決まった。当初Computer Consoles Inc. の68kベースの Power 6/32(コード名 "Tahoe")が候補となったが、間もなく開発者らがそれをやめた。それでも4.3BSD-Tahoe という移植版(1988年6月)は貴重であり、BSDにおける機種依存コードと機種共通コードの分離をもたらし、将来の移植性向上に寄与した。
移植性以外にも、CSRGはOSI ネットワークプロトコルスタックの実装、カーネルの仮想記憶システムの改良、インターネットの成長に対応した(LBL のバン・ジェイコブソン による)TCP/IPアルゴリズムの改良といった改良も行っている[ 5] 。
それまでBSDの全バージョンでAT&TのプロプライエタリなUnixのコードが含まれており、AT&Tのソフトウェアライセンスを必要としていた。ソースコードライセンスは非常に高価で、第三者からはAT&Tとは無関係に開発されたネットワーク関連コードだけをリリースして欲しいと要望されることもあった。そこで生まれたのがNetworking Release 1 (Net/1 ) で、AT&Tのライセンスが不要なコードのみで構成されており、BSDライセンス で自由ソフトウェア として自由に再配布可能とされた。これが1989年6月にリリースされている。
4.3BSD-Reno は1990年初めにリリースされた。4.4BSDとして開発中のバージョンの中間リリース的性格のリリースであり、その使用は一種のギャンブル だという意味でギャンブルの街リノ の名を冠している。このリリースは明確にPOSIX 準拠を目指しており[ 5] 、ある面ではBSDの精神からかけ離れているとされることもある(というのも、POSIXは System V ベースとなっている部分が多く、Reno はそれまでのリリースに比べるとかなり肥大化している)。ゲルフ大学 (英語版 ) が移植したNFS も新機能として含まれていた。
2006年8月、Information Week 誌は4.3BSDを「これまでに書かれた最も偉大なソフトウェア」と評した[ 6] 。コメントには「BSD 4.3 はインターネットの単独で最大の理論的下支えを代表している」とある。
Net/1リリース後、BSD開発者キース・ボスティック (英語版 ) は、BSDのAT&Tとは無関係な部分をさらにNet/1と同じライセンスでリリースしようと提案した。そして彼はUnixの標準ユーティリティをAT&Tのコードを使わずに再実装するプロジェクトを開始。例えば、vi はAT&T由来のed をベースにしていたので、全く新たにnvi (new vi) を書いた。18カ月でAT&T由来のユーティリティを全て再実装して置換し、カーネルにもAT&T由来のファイルは数えるほどしかない状態となった。それらのファイルを削除し、1991年6月、自由に再配布可能なほぼ完全なOSであるNetworking Release 2 (Net/2) をリリースした。
Net/2はIntel 80386 アーキテクチャへの2つの独立したBSD移植プロジェクトの基盤となった。1つはウィリアム・ジョリッツ らによるフリーな386BSD で、もう1つはBerkeley Software Design (英語版 ) (BSDi) のプロプライエタリ なBSD/386 (後にBSD/OSに改称)である。386BSD自体は短命に終わったが、間もなくそれをベースとしてNetBSD とFreeBSD のプロジェクトが始まった。
BSDiは System V の著作権 と UNIX の商標 を所有する AT&T のUNIX Systems Laboratories (USL) との間で訴訟に見舞われることになった。USLとBSDiの訴訟 (en ) は1992年に始まり、この訴訟が解決するまで、Net/2の配布は差し止められる ことになった。
この訴訟問題で約2年間、BSD系のPC-Unix開発にはブレーキがかかり、Linux の急激な支持の原因を作った。リリースされたのは1992年だが、386BSD はLinuxより前から開発されていた。リーナス・トーバルズ は、386BSDかGNU Hurd が当時利用可能だったら、自分でLinuxカーネルをつくろうとはしなかっただろうと述べている[ 7] [ 8] 。
訴訟の過程ではAT&T由来のコードがNet/2にまだ含まれていることが明らかとなったが、同時にAT&Tが販売しているUNIX System V にもBSD由来のコードがライセンスに違反して使用されていたことから、ノベル がUSLを買い取った後の1994年に関係者は和解。1994年1月、訴訟は主としてバークレー側に有利な形で決着した。バークレーの配布物である18,000個のファイルのうち、3個のファイルの削除が命じられ、70個のファイルにUSLの著作権表示を加えることが命じられた。さらに和解条件として、近々リリースされる4.4BSDでのバークレーの所有するコードのユーザーやディストリビュータに対してUSLが訴訟を起こさないと約束している。
1994年6月、4.4BSD は2つの形でリリースされた。AT&Tのライセンスに抵触しない4.4BSD-Lite と従来通りのライセンスを要する4.4BSD-Encumbered である。
バークレーからの最後のリリースは1995年の4.4BSD-Lite Release 2 で、その後CSRGは解散となり、バークレーでのBSD開発は終了した。それ以降、4.4BSD-Liteを直接あるいは間接的にベースとしている派生OS(FreeBSD 、NetBSD 、OpenBSD 、DragonFly BSD など)が開発・保守されている。
さらに、BSDライセンス の許容型 の性質により、フリーなものもプロプライエタリなものも含めて様々なOSでBSDのコードが利用されている。例えば、Windows はBSD由来のコードをTCP/IP実装に使用し、BSDのコマンドライン のネットワークツールをリコンパイルしたものをWindows 2000で導入した[ 9] 。アップルのmacOS の基盤となったDarwin も4.4BSD-Lite2とFreeBSDから派生したものである。Solaris などの商用UNIXもBSDコードを含んでいる。
BSDはUNIXとして初めてTCP/IP スタック(Berkeleyソケット )を搭載した。ソケットをUnixのファイル記述子 と統合したことで、ネットワーク 経由のデータの読み書きをディスクアクセスのように容易に行えるようになった。それに対してAT&TはSTREAMS をリリース。機能的には同等でアーキテクチャはSTREAMSの方が優れていたが、ソケットの方が先に普及しており、意図的に使用するシステムコール を別の名前にしたためBSD系ではそれらシステムコールがサポートされず、結果的にAPI として普及しなかった。BerkeleyソケットをTurbo Pascal で書き直したものがのちにWindows 95 に取り込まれ、現在のWinsock 2の元となった。
今でもBSDは大学などで技術的叩き台として使われている。商用製品やフリーな製品でもよく使われており、組み込みシステム での採用もある。ソースコードの品質が一般に高く、文書(特にmanページ と言われるオンラインマニュアル)も揃っているため、様々な用途に利用可能である。
BSD系OSは、バイナリ互換レイヤー を使って同一アーキテクチャ の異なるOSのソフトウェアを動作させることができる。これはエミュレータ よりも高速で単純であり、例えばLinux 向けのアプリケーションをほぼ性能低下なく動作させることができる。
最近のBSD系OSはIEEE 、ANSI 、ISO 、POSIX などの標準に準拠しつつ、BSDの伝統的振る舞いを維持している。AT&TのもともとのUNIX と同様モノリシックカーネル であり、デバイスドライバ は特権モード でカーネルと共に動作する。
BSD系OSの利用状況の調査結果を示した棒グラフ (2005年)[ 10] 。複数回答がありうるので、合計は100%を超えている。 BSDは様々なオペレーティングシステムの基盤となった。最もよく知られているのはオープンソース のFreeBSD、NetBSD、OpenBSDであり、それらはいずれも386BSD と4.4BSD-Liteを起源としている。NetBSDとFreeBSDは1993年にプロジェクトを開始しており、当初は386BSDをベースとしていたが、1994年に4.4BSD-Liteのコードベースに移行した。OpenBSDは1995年にNetBSDからフォーク した。この3つのBSDの子孫からさらに様々な子孫が分岐しており、DragonFly BSD 、FreeSBIE 、MirOS BSD (英語版 ) 、DesktopBSD 、TrueOS などがある。これらはそれぞれターゲットとするシステムが異なり、政府機関、大学、企業などで普通に使われている。BSDまたはその子孫を起源とする商用OSもいくつかあり、サン のSunOS 、Apple のmacOS などが挙げられる。
最近のBSD系OSの多くはmacOSを除けばオープンソース であり、BSDライセンス で利用できる。macOSとDragonfly BSDはモノリシックとマイクロカーネルの中間であるハイブリッドカーネル だが、多くのBSD系OSはモノリシックカーネル である。オープンソースのBSDプロジェクトでは、カーネルとユーザーランド のプログラムやライブラリを一緒に開発していることが多く、ソースのリポジトリはそれらを共通して管理している。
BSDはかつてプロプライエタリなUNIXの基盤としても使われていた。例えば、サン のSunOS 、シークエント のDynix、NeXT のNeXTSTEP 、DEC のUltrix と OSF/1 AXP(後のTru64 UNIX )がある。例に挙げたうち、今も本来の形態でサポートされているのは最後の1つ (Tru64 UNIX) だけである。NeXTのソフトウェアの一部はmacOSの基盤の一部となった。商業的に最も成功したBSDの子孫はmacOSといえる。
以下にBSDの子孫であるUnix系 OSの例を挙げる。
^ Peter H. Salus,A Quarter Century of UNIX (Addison Wesley, June 1, 1994;ISBN 978-0-201-54777-1 ), p. 142 ^ Toomey, Warren. “Details of the PUPS archives ”. tuhs.org . The Unix Heritage Society. 2010年10月6日閲覧。 ^ Mueller, Walter (2009年1月4日). “2.11BSD Patch 446+447; fixes for ulrem,umount,tar,tcsh,ps,vmstat,apropos,pstat,rk ”. www.classiccmp.org . 2009年1月20日閲覧。 ^ M.K. McKusick inOpen Sources , O'Reilly. ^a b M.K. McKusick, M.J. Karels, Keith Sklower, Kevin Fall, Marc Teitelbaum and Keith Bostic (1989). Current Research by The Computer Systems Research Group of Berkeley. Proc. European Unix Users Group. ^ Babcock, Charles (2006年8月14日). “What's The Greatest Software Ever Written? ”. InformationWeek . 2009年1月20日閲覧。 ^ Linksvayer, Mike (1993年). “The Choice of a GNU Generation - An Interview With Linus Torvalds ”. Meta magazine . 2009年1月20日閲覧。 ^ L. Torvalds (29 January 1992).“Re: LINUX is obsolete” .Newsgroup : comp.os.minix .Usenet: 1992Jan29.231426.20469@klaava.Helsinki.FI . 2006年5月11日閲覧 . ^ “BSD Code in Windows ”. everything2.com (2001年3月20日). 2009年1月20日閲覧。 ^ “BSD Usage Survey ”. BSD Certification Group (2005年10月31日). 2009年1月20日閲覧。 Samuel J. Leffler; Marshall K. McKusick; Michael J. Karels; John S. Quarterman (1989年11月).The Design and Implementation of the 4.3BSD UNIX Operating System . Addison Wesley.ISBN 978-0-201-06196-3 . J. Leffler, Samuel; K. McKusick, Marshall; J. Karels, Michael; S. Quarterman, John (1990年10月) [Jan 1989].The Design and Implementation of the 4.3BSD UNIX Operating System (reprinted with corrections ed.). Addison Wesley Publishing Company.ISBN 0-201-06196-1 . S.J.Leffler、M.K.McKusick、M.J.Karels、J.S.Quarterman(著)『UNIX 4.3BSDの設計と実装』中村 明、相田 仁、計 宇生、小池 汎平(訳)、丸善、1991年。 (邦訳)Marshall K. McKusick; Keith Bostic; Michael J. Karels; John S. Quartermain (1996年).The Design and Implementation of the 4.4BSD Operating System . Addison Wesley.ISBN 978-0-201-54979-9 . 砂原 秀樹、石井 秀治、植原 啓介、林 周志『改訂版 プロフェッショナルBSD』ASCII、2001年。 Marshall K. McKusick; George V. Neville-Neil (2004年8月2日).The Design and Implementation of the FreeBSD Operating System . Addison Wesley.ISBN 978-0-201-70245-3 . Chris DiBona, Mark Stone, Sam Ockman, Open Source (Organization), Brian Behlendorf and J. Scott Bradner,Open Sources: Voices from the Open Source Revolution .O'Reilly & Associates , 1999. Trade paperback, 272 pages.ISBN 978-1-56592-582-3 . Onlineversion ;Marshall Kirk McKusick , chapter on BSD,"Twenty Years of Berkeley Unix - From AT&T-Owned to Freely Redistributable" Peter H. Salus,The Daemon, the GNU & The Penguin (Reed Media Services, September 1, 2008;ISBN 978-0-9790342-3-7 ) Peter H. Salus,Casting the Net (Addison-Wesley, March 1995;ISBN 978-0-201-87674-1 )