跳转到内容

BSD

本页使用了标题或全文手工转换
维基百科,自由的百科全书
BSD
开发者计算机系统研究小组
编程语言C
作業系統家族Unix
運作狀態停止
源码模式最初可获得源代码,后来开放源代码
首次发布1977年,​47年前​(1977
当前版本
  • 4.4-Lite2 (1995年6月)[1]
編輯維基數據鏈接
支持的语言English
支援平台PDP-11, VAX, Intel 80386
内核类别单体内核
使用者空間BSD
默认用户界面Unix shell
许可证BSD

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

BSD许可证非常地寬鬆,因此BSD常被當作工作站級別的Unix系統,許多1980年代成立的計算機公司都從BSD中獲益,比較著名的例子如DECUltrix英语Ultrix,以及Sun公司SunOS。 1990年代,BSD大幅度被System V 4.x版以及OSF/1英语OSF/1系統所取代,但其開源版本被用在網際網路的開發。

歷史

[编辑]
Unix谱系

PDP-11開始

[编辑]

最初的Unix套件源自1970年代的貝爾實驗室,操作系统中包含源碼,這樣研究人員以及大學都可以參與修改擴充。1974年,第一個伯克利[註 1]的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年。

VAX版本

[编辑]

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&TUNIX 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發行。

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英语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本身雖然短命,但在不久之後成為了NetBSDFreeBSD原始代碼的基礎。

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更加豐富了這塊土壤。

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率先包含了支持互聯網協議棧(Stack)、伯克利套接字(sockets)的函数库。通過將套接字與Unix操作系统的文件描述符相整合,庫用戶通過計算機網絡讀寫數據,跟直接在磁盤上操作一樣容易。AT&T最後也發布了他們的STREAMS庫,在軟件棧中引入類似的功能,雖然結構層有所改進,但此时套接字庫已經廣泛使用。由於STREAMS少了對開放套接字的輪詢功能(類似於伯克利庫中的select調用),使得將軟件移植到這個新的API很困難。

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

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

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

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

BSD家族

[编辑]

當前衍生自BSD的類Unix操作系统可應用於多種硬件構架。

結構

[编辑]

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

注释

[编辑]
  1. ^ 若无特别说明,“伯克利”均指柏克萊加州大學

参考文献

[编辑]

外部連結

[编辑]

延伸閱讀

[编辑]

參見

[编辑]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy