Berkeley Software Distribution

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

BSD
BSD wordmark.svg
デベロッパーコンピュータシステム研究グループ
で書かれているC
OSファミリー元々はUnixでしたが、後にUnixライクになりました
動作状態製造中止
ソースモデル元々はソースで利用可能でしたが、後でオープンソースになりました
初回リリース1977 ; 45年前 (1977
最終リリース4.4-Lite2 / 1995
で利用可能英語
プラットフォームPDP-11VAXIntel 80386
カーネルタイプモノリシック
ユーザーランドBSD
デフォルトの
ユーザーインターフェイス
Unixシェル
ライセンスBSD

Berkeley SoftwareDistributionまたはBerkeleyStandard Distribution [1]BSD )は、カリフォルニア大学バークレー校Computer Systems Research Group(CSRG)によって開発および配布されたResearchUnixに基づく廃止されたオペレーティングシステムです。「BSD」という用語は通常、 FreeBSDOpenBSDNetBSDDragonFlyBSDなどの子孫を指します。

BSDは、ベル研究所で開発された元のUnixのソースコードに基づいていたため、当初はBerkeleyUnixと呼ばれていました。1980年代、BSDは、パーミッシブライセンスと多くのテクノロジー企業の創設者やエンジニアに精通している ことから、DECUltrixSunMicrosystemsSunOSなどの独自のUnixバリアントの形でワークステーションベンダーに広く採用されました。

これらの独自のBSD派生物は、1990年代にUNIXSVR4およびOSF / 1に大幅に取って代わられましたが、その後のリリースでは、FreeBSDOpenBSDNetBSDDragonFly BSDDarwinTrueOSなどのいくつかのオープンソースオペレーティングシステムの基盤が提供されましたこれらは、 ApplemacOSiOSなどの独自のオペレーティングシステムで使用されており[ 2]Microsoft Windowsは(少なくとも)TCP / IPコードの一部を使用しており、これは合法でした。 。[3]FreeBSDのコードは、 PlayStation 4 [4]およびNintendoSwitchのオペレーティングシステムの作成にも使用されました[5] [6]

歴史

Unixの開発の歴史とタイムラインを示す簡単なフローチャート。フローの上部に1つのバブル、下部に13の支流から始まります。
Unixシステムの単純化された進化。JunosPlayStation 3システムソフトウェア、およびその他の独自のフォークは表示されていません。

1970年代のベル研究所からのUnix初期の配布には、オペレーティングシステムへのソースコードが含まれており、大学の研究者はUnixを変更および拡張することができました。オペレーティングシステムは、Unixが最初に発表されたオペレーティングシステム原則に関するシンポジウムのプログラム委員会に参加していたコンピュータサイエンスのボブファブリー教授の要請により、1974年にバークレーに到着しました。システムを実行するためにPDP-11 / 45が購入されましたが、予算上の理由から、このマシンは、RSTSを使用したバークレー校の数学および統計グループと共有されていました。、そのため、Unixはマシン上で1日8時間しか実行されませんでした(日中、夜間)。翌年、Ingresデータベースプロジェクトからの資金を使用して、より大きなPDP-11 / 70がバークレー校に設置されました。[7] BSDを理解するには、1969年にAT&T Bell Labsによって最初にリリースされたオペレーティングシステムであるUnixの歴史を深く掘り下げる必要があります。 、1970年代後半に開発を開始しました。

当初、BSDはUnixのクローンではなく、実質的に異なるバージョンでもありませんでした。AT&Tが所有するコードと絡み合ったいくつかの追加機能が含まれているだけです。

1975年、ケン・トンプソンはベル研究所からサバティカルを取り、客員教授としてバークレーに来ました。彼はバージョン6Unixのインストールを手伝い、システムのPascal実装に取り​​組み始めました。大学院生のチャック・ヘイリーとビル・ジョイは、トンプソンのパスカルを改良し、改良されたテキストエディタを実装しまし[7]他の大学がバークレー校のソフトウェアに興味を持ったため、1977年にジョイは1978年3月9日にリリースされた最初のバークレーソフトウェアディストリビューション(1BSD)のコンパイルを開始しました。[8] 1BSDはバージョン6のアドオンでした。それ自体が完全なオペレーティングシステムではなく、Unixです。約30部が発送されました。[7]

1979年5月にリリースされた2番目のBerkeleySoftware Distribution(2BSD)[ 9]には、 1BSDソフトウェアの更新バージョンと、今日までUnixシステムで存続するJoyによる2つの新しいプログラムが含まれていますex)とCシェル2BSDの約75のコピーがBillJoyによって送信されました。[7]

VAX-11 / 780 、初期のBSDタイムシェアリングシステムに使用される典型的なミニコンピューター

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

黒と白の4.3BSD UWiscVAXエミュレーションログインのスクリーンショット
1987年頃のウィスコンシン大学の「4.3BSDUNIX」。システムの起動とログイン。

1986年6月に4.3BSDがリリースされた後、BSDは老朽化したVAXプラットフォームから離れることが決定されました。Computer ConsolesInc。によって開発されたPower6 / 32プラットフォーム(コードネーム「Tahoe」)は、当時は有望であるように見えましたが、その後まもなく開発者によって放棄されました。それにもかかわらず、4.3BSD-Tahoeポート(1988年6月)は、システムの将来の移植性を向上させるBSDのマシン依存コードとマシン非依存コードの分離につながったため、価値があることが証明されました。

移植性に加えて、CSRGは、OSIネットワークプロトコルスタックの実装、カーネル仮想メモリシステムの改善、およびインターネットの成長に対応するための新しいTCP / IPアルゴリズムLBLのVan Jacobsonと共に)に取り組みました。[10]

それまで、BSDのすべてのバージョンは独自のAT&T Unixコードを使用していたため、AT&Tソフトウェアライセンスの対象でした。ソースコードライセンスは非常に高価になり、いくつかの外部関係者は、完全にAT&Tの外部で開発され、ライセンス要件の対象とならないネットワークコードの個別のリリースに関心を示していました。これにより、ネットワーキングリリース1Net / 1)が誕生しました。これは、AT&Tコードの非ライセンス者が利用できるようになり、 BSDライセンスの条件の下で自由に再配布できました。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は、BSDからIntel 80386アーキテクチャへの2つの別々のポートの基盤でした。WilliamJolitzによる無料の386BSDと、Berkeley Software Design(BSDi)による独自のBSD / 386(後にBSD / OSに改名)です。386BSD自体は短命でしたが、その後まもなく開始された NetBSDおよびFreeBSDプロジェクトの最初のコードベースになりました。

BSDiはすぐに、AT&TのUnix System Laboratories(USL)の子会社、そしてSystemVの著作権とUnixの商標の所有者との法的な問題に直面しました。USL対BSDi訴訟は、1992年に提起され、ソースに対するUSLの著作権主張の有効性が判断されるまで、Net / 2の配布に関する差し止め命令につながりまし訴訟は、BSDのフリーソフトウェアの子孫の開発を、その法的地位が疑問視されている間、ほぼ2年間遅らせ、その結果、 Linuxカーネルに基づくシステムを遅らせました。そのような法的な曖昧さはなかったが、より大きな支持を得た。訴訟は1994年1月に和解し、主にバークレーに有利になりました。Berkeleyディストリビューションの18,000のファイルのうち、USLの著作権表示を表示するには、3つだけを削除し、70を変更する必要がありました。和解のさらなる条件は、USLが次の4.4BSDリリースでバークレーが所有するコードのユーザーとディストリビューターに対してさらなる訴訟を起こさないことでした。[11]

バークレーからの最終リリースは1995年の4.4BSD-Liteリリース2でした。その後、CSRGは解散し、バークレーでのBSDの開発は中止されました。それ以来、4.4BSD-Liteに直接または間接的に基づくいくつかの亜種(FreeBSDNetBSDOpenBSDDragonFly BSDなど)が維持されています。

BSDライセンスの寛容な性質により、オープンソースとプロプライエタリの両方の他の多くのオペレーティングシステムにBSDソースコードを組み込むことができました。たとえば、MicrosoftWindowsはTCP / IP [12]の実装にBSDコードを使用し、 Windows2000以降のBSDのコマンドラインネットワークツールの再コンパイルされたバージョンをバンドルしています[13] AppleのmacOSおよびiOSの基盤であるDarwinは、4.4BSD-Lite2およびFreeBSDに基づいています。Solarisなどのさまざまな商用UnixオペレーティングシステムにもBSDコードが組み込まれています。

ResearchUnixとの関係

第8版以降、ベル研究所のResearchUnixのバージョンはBSDと密接な関係がありました。これは、VAX用の4.1cBSDがResearch Unix 8thEditionのベースとして使用されたときに始まりました。これは、ソースコードと4.3BSDからの改善を組み込んだ第9版などの後続のバージョンでも継続されました。その結果、Research Unixのこれらの新しいバージョンはSystemVよりもBSDに近かった。2000年のUsenetの投稿で、DennisRitchieはBSDとResearchUnixのこの関係について次のように説明している

Research Unix 8th Editionは(私が思うに)BSD 4.1cから始まりましたが、膨大な量がすくい取られ、私たち自身のものに置き換えられました。これは9日と10日まで続きました。通常のユーザーコマンドセットは、おそらくSysVishよりもBSDフレーバーでしたが、かなり折衷的でした。

SystemVとの関係

Eric S. Raymondは、 System VとBSDの長年の関係を要約し、次のように述べています。 「」[15]

1989年、David A. Curryは、BSDとSystem Vの違いについて書いています。彼は、SystemVを「標準のUnix」と見なされることが多いと特徴づけました。しかし、彼はBSDを、その高度な機能とパフォーマンスのために、大学や政府のコンピューターセンターの間でより人気があると説明しました。[16]

UNIXを使用するほとんどの大学および政府のコンピュータセンターは、SystemVではなくBerkeleyUNIXを使用しています。これにはいくつかの理由がありますが、おそらく2つの最も重要な理由は、Berkeley UNIXが最近(リリース3.0)までSystemで完全に利用できなかったネットワーキング機能を提供することです。 V、そしてそのBerkeley UNIXは、より高速なファイルシステム、より優れた仮想メモリ処理、および多種多様なプログラミング言語を必要とする研究環境にはるかに適しています

テクノロジー

バークレーソケット

黒と白の4.3BSD UWiscVAXエミュレーションLispマニュアルのスクリーンショット
4.3ウィスコンシン大学のBSD 。FranzLispのマニュアルページを表示する
SunOS 4.1.1 P12707501 / 4インチテープ
4.3BSD派生物であるSunOS4.1.1用のテープ
BSDベースのNEWS-OSオペレーティングシステムを実行しているSonyNEWSワークステーション

BerkeleyのUnixは、インターネットプロトコルスタックをサポートするライブラリを含む最初のUnixでした: BerkeleyソケットIPの前身であるARPAnetのNCPのUnix実装は、FTPおよびTelnetクライアントを使用して、1975年にイリノイ大学で作成され、バークレー校で利用可能でした。[17] [18]しかし、PDP-11のメモリ不足により、複雑な設計とパフォーマンスの問題が発生しました。[19]

ソケットをUnixオペレーティングシステムのファイル記述子と統合することにより、ディスクにアクセスする場合とほぼ同じように、ネットワークを介したデータの読み取りと書き込みが容易になりました。AT&T研究所は、最終的に独自のSTREAMSライブラリをリリースしました。これは、同じ機能の多くを異なるアーキテクチャのソフトウェアスタックに組み込んでいますが、既存のソケットライブラリが広く配布されているため、新しいAPIの影響は少なくなりました。BSDの初期バージョンは、Sun MicrosystemsSunOSを形成するために使用され、人気のあるUnixワークステーションの最初の波を創設しました。

バイナリ互換性

一部のBSDオペレーティングシステムは、バイナリ互換性レイヤーを使用して、同じアーキテクチャ上で他のいくつかのオペレーティングシステムの多くのネイティブソフトウェアを実行できますこれにより、エミュレーションよりもはるかにシンプルで高速になります。たとえば、Linux向けのアプリケーションを実質的にフルスピードで実行できます。これにより、BSDはサーバー環境だけでなく、ワークステーション環境にも適したものになります。これは、Linux専用の商用またはクローズドソースソフトウェアの可用性が高まっているためです。これにより、管理者は、商用Unixバリアントのみをサポートしている可能性のあるレガシー商用アプリケーションをより新しいオペレーティングシステムに移行し、より優れた代替アプリケーションに置き換えることができるまで、そのようなアプリケーションの機能を保持できます。

標準

現在のBSDオペレーティングシステムの亜種は、従来のBSDの動作のほとんどを保持しながら、一般的なIEEEANSIISO、およびPOSIX標準の多くをサポートしています。AT&T Unixと同様に、BSDカーネルはモノリシックです。つまり、カーネル内のデバイスドライバーは、オペレーティングシステムのコアの一部として 特権モードで実行されます。

BSDの子孫

FreeBSDOpenBSDNetBSDMidnightBSDGhostBSDDarwinDragonFly BSDなど、いくつかのオペレーティングシステムはBSDに基づいていますNetBSDとFreeBSDはどちらも1993年に作成されました。最初は386BSD( "Jolix"とも呼ばれます)から派生し、1994年に4.4BSD-Liteソースコードをマージしました。OpenBSDは1995年にNetBSDからフォークされ、DragonFlyBSDは2003年のFreeBSD。

BSDは、 SunSunOSSequentDYNIXNeXTNeXTSTEPDECUltrix、OSF / 1 AXP(現在はTru64 UNIX )など、Unixのいくつかの独自バージョンの基盤としても使用されていましたNeXTSTEPは、後にAppleInc。のmacOSの基盤となりまし

も参照してください

参考文献

  1. ^ 「オープンソースプロジェクトにBSDスタイルのライセンスを使用する必要がある理由」FreeBSDプロジェクトBSD(Berkeley Standard Distribution)2021年8月3日取得
  2. ^ 「Appleカーネルプログラミングガイド:BSDの概要」2021年3月27日取得
  3. ^ 「実際には、WindowsはいくつかのBSDコードを使用します」2018年3月25日にオリジナルからアーカイブされました2018年3月24日取得
  4. ^ 「PlayStation4で使用されるオープンソースソフトウェア」2017年12月12日にオリジナルからアーカイブされました2019年10月3日取得
  5. ^ 「任天堂からそのソフトウェアはオープンソースのソースコードwww.nintendo.co.jp2020年7月26日にオリジナルからアーカイブされました2020年7月26日取得
  6. ^ Cao(2017年3月8日)。「NintendoSwitchはFreeBSDを実行しています」FreeBSDNews.com2020年7月26日にオリジナルからアーカイブされました2020年7月26日取得
  7. ^ a b c d Salus、Peter H.(2005)。「第7章BSDとCSRG」デーモン、Gnu、ペンギンGroklaw2020年6月14日にオリジナルからアーカイブされました2017年9月6日取得
  8. ^ Salus(1994)、p。142
  9. ^ Toomey、ウォーレン。「PUPSアーカイブの詳細」tuhs.orgUnixヘリテージソサエティ。2006年7月9日にオリジナルからアーカイブされました2010年10月6日取得
  10. ^ MK McKusick、MJ Karels、Keith Sklower、Kevin Fall、Marc Teitelbaum、Keith Bostic(1989)。バークレーのコンピュータシステム研究グループによる現在の研究。Proc。ヨーロッパのUnixユーザーグループ。
  11. ^ エリックS.レイモンド。「TheArtof Unix Programming:Origins and History of Unix、1969–1995」2014年10月5日にオリジナルからアーカイブされました2014年7月18日取得
  12. ^ バー、アダム(2001年6月19日)。「Microsoft、TCP / IP、オープンソース、およびライセンス」2005年11月14日にオリジナルからアーカイブされました2019年6月7日取得
  13. ^ 「WindowsのBSDコード」every2.com2001年3月20日。2008年8月25日のオリジナルからアーカイブ2009年1月20日取得
  14. ^ デニスリッチー(2000年10月26日)。"alt.folklore.computers:BSD(Dennis Ritchie)"2014年7月14日にオリジナルからアーカイブされました2014年7月3日取得
  15. ^ レイモンド、エリックS.Unixプログラミングの芸術。2003.p。38
  16. ^ カレー、デビッド。UNIXシステムでのCの使用:システムプログラミングのガイド。1989. pp。2–3
  17. ^ Chesson、GL(1976)。「ネットワークUnixシステム」。ACMSIGOPSオペレーティングシステムレビュー9(5):60–66。土井10.1145 /1067629.806522
  18. ^ RFC 681 
  19. ^ クォーターマン、ジョンS。; シルバーシャッツ、アブラハム; Peterson、James L.(1985年12月)。「Unixシステムの例としての4.2BSDと4.3BSD」。コンピューティング調査17(4):379–418。CiteSeerX10.1.1.117.9743_ 土井10.1145 /6041.6043S2CID5700897_  

参考文献

外部リンク