BSD

伯克利軟件套件（英語：Berkeley Software Distribution，縮寫：BSD；也被稱為伯克利Unix或Berkeley Unix）是一個衍生自Unix（類Unix）的操作系统，1970年代由伯克利加州大學的學生比爾·喬伊開創，也被用來代表其衍生出的各種套件。 BSD许可证非常地寬鬆，因此BSD常被當作工作站級別的Unix系統，許多1980年代成立的計算機公司都從BSD中獲益，比較著名的例子如DEC的Ultrix（英语：Ultrix），以及Sun公司的SunOS。 1990年代，BSD大幅度被System V 4.x版以及OSF/1（英语：OSF/1）系統所取代，但其開源版本被用在網際網路的開發。 最初的Unix套件源自1970年代的貝爾實驗室，操作系统中包含源碼，這樣研究人員以及大學都可以參與修改擴充。1974年，第一個伯克利的Unix系統被安裝在PDP-11機器上，計算機科學係而後將其用作擴展研究。 其他大學開始對伯克利的軟件感興趣，在1977年，伯克利的研究生比爾·喬伊將程序整理到磁帶上，作為First Berkeley Software Distribution（1BSD）發行。 1BSD被作為第六版Unix系列，而不是單獨的操作系统。主要程序包括Pascal編譯器，以及比爾·喬伊的ex行編輯器。 Second Berkeley Software Distribution（2BSD）於1978年發布，除了對1BSD中的軟件進行升級，還包括了比爾·喬伊寫的兩個新程序：vi文本編輯器（ex的可視版本），以及C Shell。這兩個新添的程序，在Unix系統中至今仍被使用。 2BSD以後的版本逐漸從PDP-11結構向VAX計算機移植。最新的2.11BSD於1992年發布，更新維護一直持續到2003年。 1978年，伯克利安裝了第一台VAX計算機，但將Unix移植到VAX構架的UNIX/32V，並沒有利用VAX虛擬內存的能力。伯克利的學生重寫了32V的大部分內核，以實現虛擬內存的支持。1979年，3BSD誕生了，這個新系統完整包括了一個新內核、從2BSD移植到VAX的工具，還有32V原來的工具。 3BSD的成功使得美國國防高等研究計劃署（DARPA）決定資助伯克利的计算机系统研究小组（CSRG），以開發一個Unix標準平台，供DARPA未來研究。1980年10月，該小组發布了4BSD，此版本對3BSD有許多改進。 相較於VAX機器的主流系統VMS，用戶對BSD時有批評。1981年6月，4.1BSD發布，比爾·喬伊大幅度提高了該版本內核的性能，使之在多個平台上與VMS相媲美。為了避免與AT&T的UNIX System V（UNIX第五版）混淆，這個版本沒有取名為5BSD。 4.2BSD歷經兩年後才得以問世，實現了多項重大改進。之前有三個中間版本相繼推出：4.1a引入了BBN科技預試中的TCP/IP协议栈的修改版；4.1b引入了由馬紹爾·克爾克·麥庫錫克（英语：Marshall Kirk McKusick）實現的新型文件系统（Berkeley Fast File System，FFS）；4.1c是4.2BSD開發最後幾個月的過渡版。 1983年8月，4.2BSD正式發布。這是1982年比爾·喬伊離開小组、前去創建Sun公司後的第一個版本，自那时起馬紹爾·克爾克·麥庫錫克和Mike Karels（英语：Mike Karels）和一直負責領導該項目。值得一提的是，這次BSD小惡魔正式出場，最初是馬紹爾·克爾克·麥庫錫克的畫作，出現在打印好的文檔封面上，由USENIX發行。 1986年6月，4.3BSD發布。該版本主要是將4.2BSD的許多新貢獻作性能上的提高，原來的4.1BSD沒有很好地協調。在該版本之前，BSD的TCP/IP實現已經跟BBN的官方實現有較大差異。經過數月測試後，DARPA認為4.2BSD更合適，所以在4.3BSD中作了保留。 （參見互聯網歷史） 4.3BSD後，BSD逐漸拋開老式的VAX平台。 Computer Consoles有限公司開發的Power 6/32平台（代號為"Tahoe"），當時看來大有可為，但不久即被他們的開發員所遺棄。然後，1988年6月移植的4.3BSD-Tahoe卻表現不俗，BSD將依賴於機器跟不依賴於機器的代碼分離，為未來系統的可移植性打下了良好的基礎。 到此為止，所有的BSD版本都混合了專屬的AT&T UNIX代碼，這樣繼續使用就需要從AT&T獲得許可證。源碼許可證當時非常地昂貴，幾個其他組織對單獨的網絡代碼版感興趣，完全獨立於AT&T，這樣就可不受許可證的支配。 1989年6月，Networking Release 1（Net/1）誕生了，沒有AT&T授權也能使用，可遵照BSD許可證進行自由再發布。 1990年初，推出了4.3BSD-Reno。該版本是4.4BSD早期開發的過渡版，使用該版本被戲稱為是一種賭博，因為Reno就是內華達州的賭城雷諾。 Net/1以後，Keith Bostic（英语：Keith Bostic）提議，BSD系統中應該有更多的非AT&T部分，以Net/1的協議發布。隨後，他開始一個項目，著手重新實現一些Unix標準工具，其中不使用原來的AT&T代碼。例如，Vi，也就是基於最初Unix上ed的編輯器，被重寫為nvi（new vi）。 18個月後，所有AT&T的工具被替換，剩下的只是存留在內核的一些AT&T文件。殘余文件被剔除後，1991年6月，Net/2誕生了，這是一個全新的操作系统，並且可以自由發布。 Net/2成為Intel 80386構架上兩種移植版的主要組成部分，包括由威廉·喬利茨負責，自由的386BSD（英语：386BSD）；以及專屬的BSD/OS，由Berkeley Software Design（英语：Berkeley Software Design）（BSDi）負責。386BSD本身雖然短命，但在不久之後成為了NetBSD和FreeBSD原始代碼的基礎。 BSDi很快就與AT&T的Unix系统实验室（Unix System Laboratories，USL）附屬公司產生了法律糾紛，後者將擁有System V版權，以及Unix商標。 1992年，USL正式對BSDi提起訴訟，這導致Net/2發布被中止，直到其源碼能夠被鑑定為符合USL的版權。 由於最後判決懸而未決，這樁法律訴訟將BSD後裔，特別是自由軟件後裔的開發，延遲了兩年，這導致沒有法律問題的Linux內核獲得了極大的支持。Linux跟386BSD的開發幾乎同時起步，其作者林納斯·托瓦茲曾說，當時如果有基於80386平台的自由类Unix操作系统，他就可能不會創造Linux。儘管無法預料這給以後的軟件業究竟造成了什麼樣的影響，但有一點可以肯定，Linux更加豐富了這塊土壤。 這樁訴訟在1994年1月了結，更多地滿足了伯克利的利益。伯克利套件的18,000個文件中，只有3個文件被要求刪除，另有70個文件被要求修改，並顯示USL的版權說明。這項調解另外要求，USL不得對下面的4.4BSD提起訴訟，不管是用戶還是伯克利代碼的分發者。 1994年6月，4.4BSD以兩種形式發布：可自由再發布的4.4BSD-Lite，不包含AT&T源碼；另有4.4BSD-Encumbered，跟以前的版本一樣，遵照AT&T的許可證。 伯克利的最終版本是1995年的4.4BSD-Lite Release 2，而後CSRG解散，在伯克利的BSD開發告一段落。在這之後，幾種基於4.4BSD的套件（比如FreeBSD、OpenBSD和NetBSD）得以繼續維護。 另外，由於BSD許可證的寬容，許多其他的操作系统，不管是自由還是專屬，都採用了BSD的代碼。例如，Microsoft Windows在TCP/IP的實現上引入了BSD代碼；經過重新編譯，在當前Windows版本中，還採用了許多BSD命令行下的網絡工具。 BSD率先包含了支持互聯網協議棧（Stack）、伯克利套接字（sockets）的函数库。通過將套接字與Unix操作系统的文件描述符相整合，庫用戶通過計算機網絡讀寫數據，跟直接在磁盤上操作一樣容易。AT&T最後也發布了他們的STREAMS庫，在軟件棧中引入類似的功能，雖然結構層有所改進，但此时套接字庫已經廣泛使用。由於STREAMS少了對開放套接字的輪詢功能（類似於伯克利庫中的select調用），使得將軟件移植到這個新的API很困難。 時至今日，BSD仍在學術機構，乃至許多商業或自由產品的高科技實驗中，繼續被用作試驗平台，甚至在嵌入式設備中，其使用也在增長。由於BSD設計出眾，代碼編寫清晰，包括它的文檔（特別是參考文檔，常被稱為“man pages”），使得這樣的系統，幾乎成為程序員眼中的樂土。[來源請求] 許多公司都使用BSD衍生出的代碼，如此便可以支持他們的知識產權。許多自由軟件，如Linux、GNU工程都遵照GNU GPL协议，與之相比，BSD許可協議要更加靈活。當然，這也導致人們的機器上運行著一些BSD軟件，但自己卻並不知情。有興趣的話，可以試著找找符號“University of California, Berkeley”，比如在產品文檔內，二進制代碼中的靜態數據段，或者ROM中，還有通過一些產品的用戶界面看看“about”（關於）內容。 有意思的是，通過一個二進制兼容層（compatibility layer），在BSD操作系统上，可以運行相同構架下其他操作系统上的原程序。這比模擬器要快得多，通過這個方法，針對Linux的應用程序，也可以在BSD上全速運行。所以，BSD不僅適合作為服務器，也可作為工作站來使用，眾所周知，現在針對Linux的商業或封閉源碼軟件越來越多。管理員也可以將一些原本只用於商業Unix變種的專屬軟件，轉移到BSD，這樣在保持原有功能的同時，操作系统更趨現代，可繼續使用這些軟件，直到有更好的替代。 結末，當前的BSD操作系统變種支持各種通用標準，包括IEEE、ANSI、ISO以及POSIX，同時保持傳統BSD的良好風範。 當前衍生自BSD的類Unix操作系统可應用於多種硬件構架。 BSD/OS（已倒閉） FreeBSD Debian GNU/kFreeBSD DragonFly BSD，一個由FreeBSD 4-STABLE分支出來的項目 FireflyBSD DesktopBSD TrueOS GhostBSD PicoBSD，為在單張1.44MB软盘執行而設計的FreeBSD精簡版本 TrustedBSD，非操作系统，而是為FreeBSD和Darwin構件擴展的一個項目 ClosedBSD pfSense（页面存档备份，存于互联网档案馆） FreeNAS，一個基於FreeBSD的輕量級NAS伺服器 FreeSBIE項目，提供FreeBSD各個發行版本的Live CD，類似於基於Linux的Knoppix項目 Frenzy LiveCD，基於FreeBSD的Live CD項目，主要針對俄語用戶 BSDeviant，一個FreeBSD的Live CD項目，產生可以存在一張迷你CD-R上的系統 m0n0wall是一個基於FreeBSD的防火牆項目 NetBSD Debian GNU/NetBSD OpenBSD ekkoBSD（已倒閉） MicroBSD MirOS BSD HPBSD（页面存档备份，存于互联网档案馆）（已倒閉） RedBSD：嵌入式系统镜像，使用BSD和Ruby內核 跟AT&T Unix一樣，BSD也採用單內核，這意味著內核中的設備驅動，在核心態下運行，從而作為操作系统的核心部分。 BSD的早期版本被用作組建Sun公司的SunOS，造就了Unix 工作站的第一波熱潮。 若无特别说明，“伯克利”均指柏克萊加州大學。 http://bxr.su/f/share/misc/bsd-family-tree. BSD.org組織（页面存档备份，存于互联网档案馆） DragonFlyBSD官方網站（页面存档备份，存于互联网档案馆） FreeBSD官方網站（页面存档备份，存于互联网档案馆） NetBSD官方網站（页面存档备份，存于互联网档案馆） OpenBSD官方網站（页面存档备份，存于互联网档案馆） BSD認證小組（页面存档备份，存于互联网档案馆） BSD以及UNIX研究年譜（页面存档备份，存于互联网档案馆） UNIX和BSD的歷史（圖表描述）（页面存档备份，存于互联网档案馆） Google對BSD Unix的搜索專頁 拉脫維亞的第一個BSD用戶組（页面存档备份，存于互联网档案馆） Marshall Kirk McKusick，《Open Sources: Voices from the Open Source RevolutionOpenSources》（页面存档备份，存于互联网档案馆）（影印版） 伯克利Unix二十年——從AT&T獨有，到可自由發布 《Twenty Years of Berkeley Unix - From AT&T-Owned to Freely Redistributable（页面存档备份，存于互联网档案馆）》（O'Reilly & Associates ，2003年，ISBN 7-302-06591-8 自由软件主题 Linux主题 Bill Joy Marshall Kirk McKusick Keith Bostic 386BSD bug.lv BSD許可證 Lumina 桌面环境 BSD小惡魔