BSD


BSD (简体)

BSDBerkeley Software Distribution,柏克萊軟體套件)是Unix的衍生系統,1970年代柏克萊加州大學(University of California, Berkeley)開創。BSD用來代表由此派生出的各種套件集合。

BSD 常被當作工作站級別的 Unix 系統,這得歸功於 BSD 使用授權非常地寬鬆,許多1980年代成立的計算機公司,不少都從BSD 中獲益,比較著名的例子如 DEC 的 Ultrix,以及 Sun 公司SunOS1990年代BSD 很大程度上被System V 4.x版以及 OSF/1 系統所取代,但其開源版本被採用,促進了網際網路的開發。


Unix家谱
Unix家譜

目錄

歷史

PDP-11開始

最初的 Unix 套件源自1970年代的貝爾實驗室作業系統中包含源碼,這樣研究人員以及大學都可以參與修改擴充。1974年,第一個柏克萊[1]Unix 系統被安裝在 PDP-11 機器上,計算機科學系而後將其用作擴展研究。

其他大學開始對柏克萊軟體感興趣,在1977年柏克萊的研究生 Bill Joy 將程序整理到磁帶上,作為 first Berkeley Software Distribution1BSD)發行。1BSD 被作為第六版 Unix 系列,而不是單獨的作業系統。主要程序包括Pascal編譯器,以及Joy的 ex行編輯器

Second Berkeley Software Distribution2BSD)于1978年發布,除了對 1BSD 中的軟體進行升級,還包括了 Joy 寫的兩個新程序:vi 文本編輯器(ex 的可視版本),以及 C Shell。這兩個新添的程序,在 Unix 系統中至今仍被使用。

2BSD 以後的版本逐漸從 PDP-11 結構向 VAX 計算機移植。最新的 2.11BSD1992年發布,更新維護一直持續到2003年

VAX 版本

1978年柏克萊安裝了第一台 VAX 計算機,但將 Unix 移植到 VAX 構架的 UNIX/32V,並沒有利用 VAX 虛擬內存的能力。柏克萊的學生重寫了 32V 的大部分核心,以實現虛擬內存的支持。1979年3BSD誕生了,這個新系統完整包括了一個新核心、從 2BSD 移植到 VAX 的工具,還有 32V 原來的工具。

3BSD 的成功使得 Defense Advanced Research Projects Agency(DARPA,美國國防部高級研究規劃署)決定資助柏克萊Computer Systems Research Group (CSRG,計算機系統研究組),以開發一個 Unix 標準平台,以供 DARPA 未來的研究。1980年10月CSRG 發布了 4BSD,該版本對 3BSD 有許多改進。

相較于 VAX 機器的主流系統 VMS,用戶對 BSD 時有批評,1981年6月,終於發布了 4.1BSDBill Joy 大幅度提高了 4.1BSD 核心的性能,可以跟 VMS 在多個平台上媲美。為了避免與 AT&TUNIX System V(UNIX第五版)混淆,這個版本沒有取名為 5BSD

以後 4.2BSD 歷經兩年,實現了多項重大改進後才得以問世。之前有三個中間版本相繼推出:4.1a 引入了修改版的 BBN 預試中 TCP/IP4.1b 引入了由Marshall Kirk McKusick 實現的新型 Berkeley Fast File System(FFS);4.1c4.2BSD 開發最後幾個月的過渡版。

1983年8月4.2BSD 正式發布。這是 1982年 Bill Joy 離開前去創建 Sun 公司後的第一個版本,此後 Mike Karels 和Marshall Kirk McKusick 一直負責領導該項目。值得一提的是,這次 BSD小惡魔正式出場,最初是 Marshall Kirk McKusick 的畫作,出現在列印好的文檔封面上,由 USENIX 發行。

BSD版本

1986年6月4.3BSD 發布。該版本主要是將 4.2BSD 的許多新貢獻作性能上的提高,原來的 4.1BSD 沒有很好地協調。在該版本之前,BSD 的 TCP/IP 實現已經跟 BBN 的官方實現有較大差異。經過數月測試後,DARPA 認為 4.2BSD 更合適,所以在 4.3BSD 中作了保留。(參見en:History of the Internet

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 1Net/1)誕生了,沒有 AT&T 授權也能使用,可遵照 BSD許可證進行自由再發布

1990年初,推出了 4.3BSD-Reno。該版本是 4.4BSD 早期開發的過渡版,使用該版本被戲稱為是一種賭博,因為 Reno 就是內華達州的賭城雷諾

Net/2以及法律問題

Net/1 以後,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 構架上兩種移植的主要組成,包括由 William Jolitz 負責,自由的 386BSD;以及專屬的BSD/OS,由Berkeley Software Design(BSDi)負責。386BSD 本身雖然短命,但不久即成為 NetBSDFreeBSD 原始代碼的基礎。

BSDi 很快就與 AT&T 的 UNIX Systems Laboratories(USL)附屬公司產生了法律糾紛,後者將擁有System V版權,以及UNIX商標1992年,USL 正式對 BSDi 提起訴訟,這導致 Net/2 發布被中止,直到其源碼能夠被鑒定為符合 USL 的版權

由於最後判決懸而未決,這樁法律訴訟將 BSD 後裔的開發,特別是自由軟體,延遲了兩年,這導致沒有法律問題的 Linux 核心獲得了極大的支持。Linux 跟 386BSD 的開發幾乎同時起步,林納斯·托瓦茲曾說,當時如果有自由的Unix-like作業系統,基於 386 的,他就可能不會創造 Linux。儘管無法預料這給以後的軟體業究竟造成了什麼樣的影響,但有一點可以肯定,Linux 更加豐富了這塊土壤。

4.4BSD及其後裔

這樁訴訟在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 的套件(比如 FreeBSDOpenBSDNetBSD)得以繼續維護。

另外,由於 BSD許可證的寬容,許多其他的作業系統,不管是自由還是專屬,都採用了 BSD 的代碼。例如,Microsoft WindowsTCP/IP 的實現上引入了 BSD 代碼;經過重新編譯,在當前 Windows 版本中,還採用了許多BSD命令行下的網路工具。

技術

BSD 開創了現代計算機的潮流。柏克萊Unix 率先包含了庫,以支持網際網路協議棧(Stack)、柏克萊套接字(sockets)。通過將套接字與Unix作業系統的文件描述符相整合,庫用戶通過計算機網路讀寫數據,跟直接在磁碟上操作一樣容易。AT&T 實驗室最後也發布了他們的 STREAMS 庫,在軟體棧中引入了類似的功能,雖然結構層有所改進,但由於套接字型檔已經使用廣泛,另外由於少了對開放套接字的輪詢功能(類似於柏克萊庫中的select調用),使得將軟體移植到這個新的API很困難。

時至今日,BSD 仍在學術機構,乃至許多商業或自由產品的高科技實驗中,繼續被用作試驗平台,甚至在嵌入式設備中,其使用也在增長。由於 BSD 設計出眾,代碼編寫清晰,包括它的文檔(特別是參考文檔,常被稱為「man pages」),使得這樣的系統,幾乎成了程式設計師眼中的樂土。

許多公司都使用 BSD 衍生出的代碼,如此便可以支持他們的知識產權,許多自由軟體,如 LinuxGNU 工程都遵照 GNU General Public License,與之相比,BSD 執照要更加靈活。當然,這也導致人們的機器上在跑一些 BSD 軟體,但自己卻並不知情。有興趣的話,可以試著找找符號 「University of California, Berkeley」,比如在產品文檔內,二進位代碼中的靜態數據段,或者 ROM中,還有通過一些產品的用戶界面看看 「about」(關於)內容。

有意思的是,通過一個二進位兼容層(compatibility layer),在 BSD 作業系統上,可以運行相同構架下其他作業系統上的原程序。這比模擬器要快得多,通過這個方法,針對 Linux 的應用程序,也可以在 BSD 上全速運行。所以,BSD 不僅適合作為伺服器,也可作為工作站來使用,眾所周知,現在針對 Linux 的商業或封閉源碼軟體越來越多了。管理員也可以將一些原本只用於商業UNIX 變種的專屬軟體,轉移到 BSD,這樣在保持原有功能的同時,作業系統更趨現代,可繼續使用這些軟體,直到有更好的替代。

結末,當前的 BSD 作業系統 變種支持各種通用標準,包括 IEEEANSIISO 以及 POSIX,同時保持了傳統 BSD 的良好風範。

BSD 家族

不同的 BSD 作業系統針對不同的用途及用戶,可應用於多種硬體構架。在政府機構中常能看到 BSD 的身影。雖然下面的 BSD 功能可能並非獨有,但每種 BSD 在各自的領域,都逐漸具有了良好聲譽,有的專註于性能,有的則以安全見長。

  • FreeBSDBSD 家族中以易用性與高性能而著稱,由於主要用作微處理器架構,如i386AMD's 64-bit i386 擴展(AMD64),所以 FreeBSD 非常關注眾多處理器。FreeBSDx86AMD64 伺服器上,運行得非常好,當然,它也可以在其他硬體構架上運行。
  • NetBSD 擁有出色的可移植性,能在多達54種平台上運行,小到嵌入式的掌上設備,大到伺服器群,NetBSD 甚至還在國際太空站中服務。
  • OpenBSD密碼學和安全方面特別出眾,可移植性也很好,但是略遜於 NetBSD。安全功能如 OpenSSH,是由 OpenBSD 率先開創的。以 OpenBSD 作為嚴格與高度安全的機器運行,普遍的受到好評。
  • DragonflyBSD 是一個由 FreeBSD 4-STABLE 分支出來的項目,重點在於輕量級而高效能的執行緒、多處理支持以及其它用戶工具、第三方軟體管理系統的改進。它同時是最年輕的 BSD 。提供比 FreeBSD 更優秀的對稱多處理機系統,並使核心直接支持SSI集群,以取得更好的計算效果。這個項目在此方向上,才開始數年,主要關注 x86 平台。
  • FreeSBIE 項目提供 FreeBSD各個發行版本的 live CD,類似於基於LinuxKnoppix項目
  • Frenzy 是另一個基於 FreeBSDlive CD 項目,主要針對俄語用戶。啟動中按「e」才是英文版界面
  • BSDeviant 是一個 FreeBSDlive CD 項目,目的在於產生可以存在一張迷你CD-R上的系統
  • PicoBSD 為了在單張 1.44MB磁片 執行而設計的 FreeBSD 精簡版本
  • m0n0wall 是一個基於 FreeBSD防火牆項目
  • FreeNAS 是一個基於 FreeBSDNAS 輕量級伺服器
  • PC-BSD 為桌面/個人環境設計的 BSD 分支
  • relaxBSD 為桌面/個人環境設計的 BSD分支, 由華人開發, 注重中文環境

必須注意的是,上面所羅列的,更多地是基於感性認識,並針對其開發焦點,並沒有嚴格地比較規則。實際而言,每種具體的 BSD 都可擔當許多角色任務。

結構

跟 AT&T Unix 一樣,BSD 也採用單核心,這意味著核心中的設備驅動,在核心態下運行,從而作為作業系統的核心部分。BSD 的早期版本被用作組建 Sun公司SunOS,造就了 Unix 工作站的第一波熱潮。

謠言

BSD 受到網路一些使用者的負面評價,其中最著名的是聲稱 BSD 正在死亡:有人甚至斷言,BSD 將自己把自己壓垮。某些人將FreeBSD 主要開發員的離去,當作其佐證。內容與事實似乎相違。

BSD的子孫們

當前衍生自BSD的Unix類作業系統:

  • BSD/OS (已倒閉)
  • FreeBSD
    • DragonFly BSD
      • FireFlyBSD
    • Freesbie (live CD版,光碟自啟動版)
    • DesktopBSD (採用Userland/Kernel,與FreeBSD同步)
    • PC-BSD (採用Userland/Kernel,與FreeBSD同步)
    • PicoBSD
    • TrustedBSD - (非作業系統,而是為FreeBSD和Darwin構件擴展的一個項目)
    • ClosedBSD
    • pfSense
    • m0n0wall
    • FreeNAS
  • NetBSD
    • OpenBSD
      • ekkoBSD (已倒閉)
      • MicroBSD
      • MirOS BSD
  • NeXTSTEP
    • OpenStep (已被Mac OS X和Mac OS X Server取代)
  • Darwin (Mac OS X的核心, 由FreeBSD 4.5和NeXTSTEP混合派生)
  • HPBSD (已倒閉)

註腳

  1. ^ 沒有特別說明的話,柏克萊,均指柏克萊加州大學

參見

外部連結

延伸閱讀

類Unix作業系統

A/UX | AIX | BSD | DragonFly BSD | FreeBSD | GNU | HP-UX | IRIX | Linux | LynxOS | Mac OS X | Minix | NetBSD | NEXTSTEP | OpenBSD | QNX | SCO OpenServer | Solaris | System V | Tru64 | Xenix | 更多... |

%E6%80%A7

! __







Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History