本页使用了标题或全文手工转换

BSD

维基百科,自由的百科全书
跳转至: 导航搜索

伯克利軟件套件英语:Berkeley Software Distribution,縮寫為BSD),也被稱為伯克利UnixBerkeley Unix),是一個操作系統的名稱。衍生自Unix類Unix),1970年代由伯克利加州大學的學生比爾·喬伊(Bill Joy)開創,也被用來代表其衍生出的各種套件。

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

Unix谱系

歷史[编辑]

PDP-11開始[编辑]

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

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

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

2BSD以後的版本逐漸從PDP-11結構向VAX計算機移植。最新的2.11BSD於1992年發布,更新維護一直持續到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.1BSD。比爾·喬伊大幅度提高了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年比爾·喬伊離開前去創建Sun公司後的第一個版本,此後Mike KarelsMarshall 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中作了保留。 (參見互聯網歷史

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&TUNIX Systems Laboratories(USL)附屬公司產生了法律糾紛,後者將擁有System V版權,以及Unix商標。 1992年,USL正式對BSDi提起訴訟,這導致Net/2發布被中止,直到其源碼能夠被鑑定為符合USL版權

由於最後判決懸而未決,這樁法律訴訟將BSD後裔的開發,特別是自由軟件,延遲了兩年,這導致沒有法律問題的Linux內核獲得了極大的支持。 Linux386BSD的開發幾乎同時起步,林納斯·托瓦茲曾說,當時如果有基於386的自由Unix-like操作系統,他就可能不會創造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類Unix操作系統可應用於多種硬件構架。 政府機構中常能看到BSD的身影[來源請求]

結構[编辑]

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

註釋[编辑]

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

參見[编辑]

外部連結[编辑]

延伸閱讀[编辑]