伯克利軟體套件（，縮寫：BSD；也被稱為伯克利 Unix 或）是一個衍生自 Unix（類 Unix）的作業系統，1970 年代由伯克利加州大學的學生比爾喬伊開創，也被用來代表其衍生出的各種套件。 BSD 許可證非常地寬鬆，因此 BSD 常被當作工作站級別的 Unix 系統，許多 1980 年代成立的計算機公司都從 BSD 中獲益，比較著名的例子如 DEC 的，以及 Sun 公司的 SunOS。 1990 年代，BSD 大幅度被 System V 4x 版以及系統所取代，但其開源版本被用在網際網路的開發。 歷史 PDP11 開始 最初的 Unix 套件源自 1970 年代的貝爾實驗室，作業系統中包含原始碼，這樣研究人員以及大學都可以參與修改擴充。1974 年，第一個伯克利的 Unix 系統被安裝在 PDP11 機器上，電腦科學係而後將其用作擴充套件研究。 其他大學開始對伯克利的軟體感興趣，在 1977 年，伯克利的研究生比爾喬伊將程式整理到磁帶上，作為 First Berkeley Software Distribution（1BSD）發行。 1BSD 被作為第六版 Unix 系列，而不是單獨的作業系統。主要程式包括 Pascal 編譯器，以及比爾喬伊的 ex 行編輯器。 Second Berkeley Software Distribution（2BSD）於 1978 年發布，除了對 1BSD 中的軟體進行升級，還包括了比爾喬伊寫的兩個新程式：vi 文字編輯器（ex 的可視版本），以及 C Shell。這兩個新添的程式，在 Unix 系統中至今仍被使用。 2BSD 以後的版本逐漸從 PDP11 結構向 VAX 計算機移植。最新的 211BSD 於 1992 年發布，更新維護一直持續到 2003 年。 VAX 版本 1978 年，伯克利安裝了第一臺 VAX 計算機，但將 Unix 移植到 VAX 構架的 UNIX32V，並沒有利用 VAX 虛擬記憶體的能力。伯克利的學生重寫了 32V 的大部分核心，以實現虛擬記憶體的支援。1979 年，3BSD 誕生了，這個新系統完整包括了一個新核心、從 2BSD 移植到 VAX 的工具，還有 32V 原來的工具。 3BSD 的成功使得美國國防高等研究計劃署（DARPA）決定資助伯克利的計算機系統研究小組（CSRG），以開發一個 Unix 標準平臺，供 DARPA 未來研究。1980 年 10 月，該小組發布了 4BSD，此版本對 3BSD 有許多改進。 相較於 VAX 機器的主流系統 VMS，使用者對 BSD 時有批評。1981 年 6 月，41BSD 發布，比爾喬伊大幅度提高了該版本內核的效能，使之在多個平臺上與 VMS 相媲美。為了避免與 ATT 的 UNIX System V（UNIX 第五版）混淆，這個版本沒有取名為 5BSD。 42BSD 歷經兩年後才得以問世，實現了多項重大改進。之前有三個中間版本相繼推出：41a 引入了 BBN 科技預試中的 TCPIP 協議棧的修改版；41b 引入了由實現的新型檔案系統（Berkeley Fast File System，FFS）；41c 是 42BSD 開發最後幾個月的過渡版。 1983 年 8 月，42BSD 正式發布。這是 1982 年比爾喬伊離開小組、前去建立 Sun 公司後的第一個版本，自那時起馬紹爾克爾克麥庫錫克和和一直負責領導該專案。值得一提的是，這次 BSD 小惡魔正式出場，最初是馬紹爾克爾克麥庫錫克的畫作，出現在列印好的文件封面上，由 USENIX 發行。 BSD 版本 1986 年 6 月，43BSD 發布。該版本主要是將 42BSD 的許多新貢獻作效能上的提高，原來的 41BSD 沒有很好地協調。在該版本之前，BSD 的 TCPIP 實現已經跟 BBN 的官方實現有較大差異。經過數月測試後，DARPA 認為 42BSD 更合適，所以在 43BSD 中作了保留。 （參見網際網路歷史） 43BSD 後，BSD 逐漸拋開老式的 VAX 平臺。 Computer Consoles 有限公司開發的 Power 632 平臺（代號為 Tahoe），當時看來大有可為，但不久即被他們的開發員所遺棄。然後，1988 年 6 月移植的 43BSDTahoe 卻表現不俗，BSD 將依賴於機器跟不依賴於機器的程式碼分離，為未來系統的可移植性打下了良好的基礎。 到此為止，所有的 BSD 版本都混合了專屬的 ATT UNIX 程式碼，這樣繼續使用就需要從 ATT 獲得許可證。原始碼許可證當時非常地昂貴，幾個其他組織對單獨的網路程式碼版感興趣，完全獨立於 ATT，這樣就可不受許可證的支配。 1989 年 6 月，Networking Release 1（Net1）誕生了，沒有 ATT 授權也能使用，可遵照 BSD 許可證進行自由再發布。 1990 年初，推出了 43BSDReno。該版本是 44BSD 早期開發的過渡版，使用該版本被戲稱為是一種賭博，因為 Reno 就是內華達州的賭城雷諾。 Net2 以及法律問題 Net1 以後，提議，BSD 系統中應該有更多的非 ATT 部分，以 Net1 的協議發布。隨後，他開始一個專案，著手重新實現一些 Unix 標準工具，其中不使用原來的 ATT 程式碼。例如，Vi，也就是基於最初 Unix 上 ed 的編輯器，被重寫為 nvi（new vi）。 18 個月後，所有 ATT 的工具被替換，剩下的只是存留在內核的一些 ATT 檔案。殘余文件被剔除後，1991 年 6 月，Net2 誕生了，這是一個全新的作業系統，並且可以自由發布。 Net2 成為 Intel 80386 構架上兩種移植版的主要組成部分，包括由威廉喬利茨負責，自由的；以及專屬的 BSDOS，由（BSDi）負責。386BSD 本身雖然短命，但在不久之後成為了 NetBSD 和 FreeBSD 原始程式碼的基礎。 BSDi 很快就與 ATT 的 Unix 系統實驗室（Unix System Laboratories，USL）附屬公司產生了法律糾紛，後者將擁有 System V 版權，以及 Unix 商標。 1992 年，USL 正式對 BSDi 提起訴訟，這導致 Net2 發布被中止，直到其原始碼能夠被鑑定為符合 USL 的版權。 由於最後判決懸而未決，這樁法律訴訟將 BSD 後裔，特別是自由軟體後裔的開發，延遲了兩年，這導致沒有法律問題的 Linux 核心獲得了極大的支援。Linux 跟 386BSD 的開發幾乎同時起步，其作者林納斯託瓦茲曾說，當時如果有基於 80386 平臺的自由類 Unix 作業系統，他就可能不會創造 Linux。儘管無法預料這給以後的軟體業究竟造成了什麼樣的影響，但有一點可以肯定，Linux 更加豐富了這塊土壤。 44BSD 及其後裔 這樁訴訟在 1994 年 1 月了結，更多地滿足了伯克利的利益。伯克利套件的 18000 個檔案中，只有 3 個檔案被要求刪除，另有 70 個檔案被要求修改，並顯示 USL 的版權說明。這項調解另外要求，USL 不得對下面的 44BSD 提起訴訟，不管是使用者還是伯克利程式碼的分發者。 1994 年 6 月，44BSD 以兩種形式發布：可自由再發布的 44BSDLite，不包含 ATT 原始碼；另有 44BSDEncumbered，跟以前的版本一樣，遵照 ATT 的許可證。 伯克利的最終版本是 1995 年的 44BSDLite Release 2，而後 CSRG 解散，在伯克利的 BSD 開發告一段落。在這之後，幾種基於 44BSD 的套件（比如 FreeBSD、OpenBSD 和 NetBSD）得以繼續維護。 另外，由於 BSD 許可證的寬容，許多其他的作業系統，不管是自由還是專屬，都採用了 BSD 的程式碼。例如，Microsoft Windows 在 TCPIP 的實現上引入了 BSD 程式碼；經過重新編譯，在當前 Windows 版本中，還採用了許多 BSD 命令列下的網路工具。 技術 BSD 率先包含了支援網際網路協議棧（Stack）、伯克利套接字（sockets）的函式庫。透過將套接字與 Unix 作業系統的檔案描述符相整合，庫使用者透過計算機網路讀寫資料，跟直接在磁碟上操作一樣容易。ATT 最後也發布了他們的 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 家族 當前衍生自 BSD 的類 Unix 作業系統可應用於多種硬體構架。 BSDOS（已倒閉） FreeBSD Debian GNUkFreeBSD DragonFly BSD，一個由 FreeBSD 4STABLE 分支出來的專案 FireflyBSD DesktopBSD TrueOS GhostBSD PicoBSD，為在單張 144MB 軟盤執行而設計的 FreeBSD 精簡版本 TrustedBSD，非作業系統，而是為 FreeBSD 和 Darwin 構件擴充套件的一個專案 ClosedBSD pfSense FreeNAS，一個基於 FreeBSD 的輕量級 NAS 伺服器 FreeSBIE 專案，提供 FreeBSD 各個發行版本的 Live CD，類似於基於 Linux 的 Knoppix 專案 Frenzy LiveCD，基於 FreeBSD 的 Live CD 專案，主要針對俄語使用者 BSDeviant，一個 FreeBSD 的 Live CD 專案，產生可以存在一張迷你 CDR 上的系統 m0n0wall 是一個基於 FreeBSD 的防火牆專案 NetBSD Debian GNUNetBSD OpenBSD ekkoBSD（已倒閉） MicroBSD MirOS BSD HPBSD（已倒閉） RedBSD：嵌入式系統映象，使用 BSD 和 Ruby 核心 結構 跟 ATT Unix 一樣，BSD 也採用單核心，這意味著核心中的裝置驅動，在核心態下執行，從而作為作業系統的核心部分。 BSD 的早期版本被用作組建 Sun 公司的 SunOS，造就了 Unix 工作站的第一波熱潮。 註釋 參考文獻 外部連結 BSDorg 組織 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 二十年 從 ATT 獨有，到可自由發布 《Twenty Years of Berkeley Unix From ATTOwned to Freely Redistributable》（OReilly Associates ，2003 年，ISBN 7302065918 參見 Bill Joy Marshall Kirk McKusick Keith Bostic 386BSD buglv BSD 許可證 Lumina 桌面環境 BSD 小惡魔 Category1977 年軟體 Category 自由作業系統 CategoryUnix Category 已停止開發的作業系統