FreeBSD的起源最早可以追溯到貝爾實驗室的第一版UNIX。1969年,Ken Thompson,Dennis Ritchie和其他成員在一臺PDP7計算機(jī)上完成了UNIX的早期版本。
Ritchie先前一直從事于MULTICS計劃,MULTICS對以后的新操作系統(tǒng)有很大的影響。甚至名稱UNIX也不過是MULTICS的雙關(guān)語。基本的文件系統(tǒng)組織,命令行接口,對每個命令使用分離的進(jìn)程,最早的行編輯字符(#用于刪除最后一個字符,@用于刪除整個一行),和其他很多特性直接源自于 MULTICS。其他一些操作系統(tǒng)像MIT的CTSS和XDS-940系統(tǒng)也吸收了很多MULTICS的思想。后來UNIX又被移植到了PDP- 11/45和11/70上,添加了多道程序設(shè)計和其他很多新特性。
在UNIX開發(fā)完后,它在貝爾實驗室內(nèi)部被廣泛使用,漸漸地又把它分發(fā)給了幾個大學(xué)。1976年發(fā)布了貝爾實驗室以外被廣泛使用的版本6。
1978年,版本7發(fā)布了。這個UNIX系統(tǒng)可以運行在PDP-11/70和Interdata 8/32上,實際上也是絕大多數(shù)現(xiàn)代UNIX系統(tǒng)的祖先。特別是,它又被移植到了其他PDP-11系列機(jī)和VAX計算機(jī)上。VAX上可用的版本叫做 32V。此后,研究工作仍然在繼續(xù)。
在1978年發(fā)布了版本7后,UNIX支持組(USG)在AT&T(貝爾實驗室的母公司)內(nèi)部擔(dān)負(fù)起了UNIX發(fā)布的管理控制工作。
UNIX逐步地變成了一個產(chǎn)品,而不是先前的一個研究工具。UNIX的研究組為了支持他們自己內(nèi)部的計算機(jī),繼續(xù)開發(fā)著他們自己版本的UNIX。接著,就發(fā)布了版本8,它包含了一個叫做stream I/O system的工具,允許對內(nèi)核IPC模塊進(jìn)行靈活地配置。它也包含了RFS,與Sun的NFS很相似的一個遠(yuǎn)程文件系統(tǒng)。
接著,又發(fā)布了版本9和版本10(是1989年發(fā)布的最后版本,只能用在貝爾實驗室內(nèi)部)。
USG主要在貝爾實驗室內(nèi)部提供UNIX的支持。來自USG的第一個外部發(fā)行版是1982年的System III。System III合成了版本7和32V的特性,在它里面包含了一個實時UNIX系統(tǒng)UNIX/RT。1983年USG發(fā)布了System V,它主要源自于System III。
1984年,USG被改組為UNIX系統(tǒng)開發(fā)實驗室(USDL),它發(fā)布了UNIX System V Release 2 (V.2)。UNIX System V Release 2,Version 4 (V.2.4)添加了用于頁面調(diào)度和共享內(nèi)存的虛擬內(nèi)存的執(zhí)行機(jī)制。USDL接著由AT&T信息系統(tǒng)所替換(ATTIS),它在1987年發(fā)布了 System V Release 3 (V.3)。V.3調(diào)整了stream I/O system的執(zhí)行機(jī)制,使它可用作STREAMS。它也包含了RFS,一個類似NFS的遠(yuǎn)程文件系統(tǒng)。
早期UNIX系統(tǒng)的模塊化和干凈的設(shè)計使得很多計算機(jī)科學(xué)組織都基于UNIX進(jìn)行工作,像Rand,BBN,Illinois,Harvard,Purdue大學(xué),甚至DEC公司。最有影響力的UNIX開發(fā)組是加州大學(xué)伯克萊(Berkeley)分校。
最早的Berkeley VAX UNIX版本是在1978年發(fā)布的,它加入了虛擬內(nèi)存,自請求頁面調(diào)度和對32V的頁面替換特性。這個工作由Bill Joy和Ozalp Babaoglu完成,最終形成了3BSD UNIX。3BSD巨大的虛擬內(nèi)存空間允許開發(fā)非常巨大的程序,如Berkeley自己的Franz LISP。優(yōu)秀的內(nèi)存管理工作使得國防部高級研究項目署(DARPA)確信應(yīng)該資助Berkeley來開發(fā)一個政府使用的標(biāo)準(zhǔn)UNIX系統(tǒng),這最終導(dǎo)致了 4BSD UNIX的出現(xiàn)。
4BSD從1979年發(fā)布最初版本以來一直是VAX機(jī)的操作系統(tǒng),直到出現(xiàn)Ultrix,這是DEC的BSD執(zhí)行版本。4BSD仍是很多研究機(jī)構(gòu)和網(wǎng)絡(luò)裝置的最好選擇。許多組織會購買一個32V的許可,然后從Berkeley訂購4BSD。
針對DARPA的4BSD工作由一個策劃指導(dǎo)委員會領(lǐng)導(dǎo),它包括了許多著名的UNIX和網(wǎng)絡(luò)社區(qū)中的任務(wù)。這個計劃的目標(biāo)之一是為DARPA提供Internet網(wǎng)絡(luò)協(xié)議(TCP/IP)。
然而,當(dāng)時的UNIX系統(tǒng)已經(jīng)不僅僅限于貝爾實驗室(當(dāng)時已經(jīng)成為朗訊科技的實驗室)內(nèi)部和Berkeley。Sun Microsystems也在他們的工作站上銷售BSD UNIX。由于UNIX的廣泛流行,它已經(jīng)被移植到了許多不同的計算機(jī)系統(tǒng)上。而且創(chuàng)建了許多UNIX和UNIX類操作系統(tǒng)。DEC支持它自己的UNIX (叫做Ultrix),又用另一個源于UNIX的操作系統(tǒng)(OSF/1)替換了Ultrix。Microsoft改寫了Intel 8088系列上的UNIX,把它叫做XENIX,它的新的Windows NT操作系統(tǒng)也深受UNIX的影響。IBM在他的PC,工作站和主機(jī)上使用UNIX(AIX)。事實上,UNIX幾乎可以用在所有通用的計算機(jī)上。它可以運行在個人計算機(jī),工作站,微型計算機(jī),主機(jī)和超級計算機(jī)上,從Apple Macintosh II到Cray II。由于它的廣泛可用性,就被廣泛使用在從學(xué)校到軍事方面進(jìn)行過程控制。絕大多數(shù)這些系統(tǒng)是基于版本7,System III,4.2BSD或SystemV。
由于計算機(jī)廠商的廣泛使用,使得UNIX成為最容易移植的操作系統(tǒng),對用戶來講,它已經(jīng)成為了一個獨立于任何特定計算機(jī)廠商的UNIX環(huán)境。但是,各個廠商之間出現(xiàn)了許多不同的程序變化和用戶接口。
對于獨立的廠商來說,應(yīng)用程序開發(fā)人員需要一致的接口。這樣的接口使所有的UNIX應(yīng)用程序可以運行在所有的UNIX系統(tǒng)上。這個問題變得非常重要,因為 UNIX已經(jīng)成為應(yīng)用程序開發(fā)的首選平臺,被廣泛用在數(shù)據(jù)庫到圖形和網(wǎng)絡(luò)的開發(fā)上,導(dǎo)致了市場強(qiáng)烈要求出現(xiàn)一個UNIX的標(biāo)準(zhǔn)。
從那以后,出現(xiàn)了許多官方的標(biāo)準(zhǔn):IEEE和ISO(POSIX標(biāo)準(zhǔn))。X/Open組織國際協(xié)會完成了XPG3,一個普通的應(yīng)用環(huán)境,這個包含了 IEEE的接口標(biāo)準(zhǔn)。不幸的是,XPG3是以ANSI C標(biāo)準(zhǔn)草案為基礎(chǔ)的,而不是最終規(guī)范,因此需要重新制定。在1993年出現(xiàn)了XPG4。在1989年,ANSI標(biāo)準(zhǔn)化組織頒布了標(biāo)準(zhǔn)化的C編程語言,產(chǎn)生了一個ANSI C規(guī)范。由于這些計劃的繼續(xù),UNIX的不同特性將被統(tǒng)一,UNIX將產(chǎn)生一個統(tǒng)一的編程接口,使UNIX變得更加流行。事實上在這個問題上存在兩派: AT&T領(lǐng)導(dǎo)的UNIX國際(UI)和開放軟件基金會(OSF)都已經(jīng)同意遵循POSIX標(biāo)準(zhǔn)。最近,許多廠商已經(jīng)同意進(jìn)行標(biāo)準(zhǔn)化,使用 Motif窗口環(huán)境,和ONC+(包括SUN RPC和NFS)與DCE網(wǎng)絡(luò)工具(包括AFS和RPC軟件包)。
在1989年,AT&T把它的ATTIS替換成UNIX軟件組織(USO),由它來發(fā)行第一個融合多種系統(tǒng)特性的UNIX,System V Release 4。這個系統(tǒng)包含了來自System V,4.3BSD和Sun SunOS的許多特性,它包含長文件名,Berkeley文件系統(tǒng),虛擬內(nèi)存管理,符號連接,多訪問組,工作控制,和可靠的信號。它也符合POSIX標(biāo)準(zhǔn),POSIX.1。USO發(fā)布SVR4后,它變成為AT&T一個獨立部門的產(chǎn)品,這個部門被命名為UNIX系統(tǒng)實驗室(USL)。在1993 年,它又被Novell公司收購。
來自Berkeley的UNIX系統(tǒng)是由Berkeley Software Distributions(CSRG)發(fā)布的。如Berkeley VAX UNIX的后續(xù)版本3BSD和4BSD,以及一些特定的版本,特別是4.1BSD和4.2BSD。這些BSD版本主要用在PDP-11和VAX上。 4.2BSD,最早是在1983年發(fā)布的,最初的Berkeley DARPA UNIX計劃的最后一個版本。
在4BSD發(fā)展過程中,有一個非常重要的版本:4.2BSD,它可以在不同的網(wǎng)絡(luò)之間進(jìn)行通信,包括本地網(wǎng)(如以太網(wǎng)和令牌環(huán)網(wǎng)),和廣域網(wǎng)(如 NSFNET)。這個功能也是當(dāng)前這些協(xié)議流行的主要原因。它被許多UNIX計算機(jī)廠商和其他操作系統(tǒng)所使用。它使得Internet從1984年的60 個相連的網(wǎng)絡(luò)迅速發(fā)展到1993年的8000個網(wǎng)絡(luò),將近1000萬的用戶。
另外,Berkeley也添加了很多特性以提高UNIX操作系統(tǒng)的設(shè)計和執(zhí)行水平。TENEX (TOPS-20)的許多終端行編輯功能由一個新的終端驅(qū)動程序來提供。一個新的用戶接口(C Shell),一個新的文本編輯器(ex/vi),Pascal和LISP的編譯器,和許多新的系統(tǒng)程序都是由Berkeley開發(fā)的。對于 4.2BSD,一些功能的提供是從VMS操作系統(tǒng)得到了靈感。
1986年,4.3BSD發(fā)布了。它與4.2BSD非常相似。它包含了很多內(nèi)部的修正,包括錯誤修復(fù),性能提高。一些新的工具也被加入進(jìn)來,包括對Xerox網(wǎng)絡(luò)系統(tǒng)協(xié)議的支持。
接著在1988年發(fā)布了下一版4.3BSD Tahoe。它包含了很多新的東西,如提供了網(wǎng)絡(luò)擁塞控制和TCP/IP性能。而且,磁盤配置也與設(shè)備驅(qū)動相分離,現(xiàn)在可以很快地讀取磁盤。擴(kuò)展的時區(qū)支持也加入進(jìn)來。4.3BSD Tahoe事實上是為CCI Tahoe系統(tǒng)(Computer Console,Inc.,Power 6 計算機(jī))開發(fā)的,而不是通常的VAX機(jī)。相應(yīng)的PDP-11版本是2.10.1BSD,它是由USENIX Association發(fā)布的,這個組織也出版了4.3BSD的手冊。但是,所有的BSD用戶必須先得到一份AT&T的源代碼許可證,這是因為 Berkeley從來沒有僅以二進(jìn)制的方式發(fā)行過BSD系統(tǒng),發(fā)行版本總是包含了系統(tǒng)每個部分完整的源代碼。隨著AT&T源代碼許可費用的增加,一些希望能夠使用BSD代碼為PC市場制造獨立的基于TCP/IP聯(lián)網(wǎng)產(chǎn)品的廠商們發(fā)現(xiàn),按照每個二進(jìn)制拷貝交費是行不通的。于是他們要求Berkley 將聯(lián)網(wǎng)的代碼和使用程序從BSD發(fā)行版中分離出來,并且簽發(fā)他們自己的許可證條款,而不需要AT&T的源代碼許可證。所以最初的BSD聯(lián)網(wǎng)代碼和支持性應(yīng)用程序在1989年6月作為“Network Release 1”發(fā)布。
同時,開發(fā)工作仍在繼續(xù)。BSD系統(tǒng)又加入了源自于Mach系統(tǒng)的虛擬文件系統(tǒng)和與Sun兼容的網(wǎng)絡(luò)文件系統(tǒng)(NFS)。由于那時還沒有完整特性的 4.4BSD可以發(fā)布,所以發(fā)布了代號為4.3BSD Reno的過渡性版本。后來又發(fā)布了有重大改進(jìn)的“Networking Release 2”。
Bill Jolitz在Networking Release 2基礎(chǔ)上對系統(tǒng)進(jìn)行了修正和補(bǔ)充,最終發(fā)布了可以運行在386體系上的完整系統(tǒng),它稱之為386/BSD。但由于Jolitz沒有更多的時間來處理大量的臭蟲和改進(jìn)386/BSD,所以在發(fā)布了386/BSD版本發(fā)布幾個月內(nèi),一些386/BSD用戶成立了一個小組,發(fā)布叫做NetBSD的版本。在 NetBSD小組成立幾個月后,F(xiàn)reeBSD小組成立了。
為了給那些不容易訪問互聯(lián)網(wǎng)的用戶提供一個FreeBSD的發(fā)行渠道,F(xiàn)reeBSD小組開始跟Walnut Creek CDROM發(fā)行商進(jìn)行聯(lián)系。Walnut Creek CDROM發(fā)行商不僅愿意為他們發(fā)行FreeBSD光盤,而且還為他們提供開發(fā)這一計劃所需要的計算機(jī)和快速的互聯(lián)網(wǎng)接入。沒有Walnut Creek CDROM的支持,他們就沒有信心去開發(fā)這一計劃,也不可能有今天的FreeBSD。
第一張F(tuán)reeBSD光盤是在1993年12月發(fā)布的,他們把它命名為FreeBSD1.0。這一版本是以伯克萊加州大學(xué)的4.3BSD-Lite (“Net/2”)為基礎(chǔ)的,它帶有386BSD上的許多組件還有自由軟件基金會(FSF)的許多軟件。對于一個早期的產(chǎn)品來說,它還算成功。接著,在 1994年的5月份成功地發(fā)布了FreeBSD1.1版本。
在UNIX發(fā)展到比較成熟的時候,有一件很不幸的事情發(fā)生在Berkeley的CSRG身上。UNIX由于太成熟了而不能再被視為一個研究項目,整個作品被鎖在圍墻中:CSRG將被解散。許多人決定把Berkeley UNIX移植到PC上,就在幾年后SCO完成了這樣的工作。根據(jù)Berkeley的傳統(tǒng),他們決定把它貢獻(xiàn)出來。但是工業(yè)界的反應(yīng)并不友好。在1992 年,AT&T的USL(UNIX Systems Labratories)開始起訴Berkeley Software Design Inc.(BSDI)——BSD/386和BSD/OS操作系統(tǒng)的開發(fā)者,與FreeBSD很相象,聲稱違反了AT&T的源代碼發(fā)布許可。他們后來與University of California,Berkeley進(jìn)行了長期的法律訴訟。最終,進(jìn)行了庭外和解,詳細(xì)的條件并沒有被完全公布。唯一大家知道的是BSDI必須將他們產(chǎn)品的源代碼移植到比較新的4.4BSD-Lite上。雖然沒有陷入訴訟,但他們還是建議把FreeBSD移植到4.4BSD-Lite上,直到1994 年發(fā)布FreeBSD2.0版的時候才把這個工作完成。雖然系統(tǒng)很多地方還很粗糙,但是這一發(fā)行版還是很成功的。到1995年6月份發(fā)行2.0.5版的時候,它已經(jīng)變得非常強(qiáng)大和容易安裝了。
他們在1996年8月發(fā)布的FreeBSD 2.1.5版,它已經(jīng)在ISP和一些商業(yè)團(tuán)體中廣泛流傳。另外一個發(fā)行版沿著2.1-stable分支繼續(xù)發(fā)展,直到1997年2月發(fā)行2.1.7.1版后才終止了這一分支。現(xiàn)在這些分支處于維護(hù)階段,僅僅是增強(qiáng)一些安全性和修補(bǔ)一些錯誤。
1996年的11月,從主開發(fā)線(“-CURRENT”)分出來FreeBSD 2.2作為RELENG_2_2分支。作為這一分支的最早發(fā)行版是在1997年4月發(fā)布的2.2.1版,這個分支直到1998年11月的2.2.8版時才宣告結(jié)束。正式的3.0發(fā)行版是在1998年10月份出現(xiàn)的。
到了1999年1月20日又出現(xiàn)了新的分支,那就是4.0-CURRENT和3.X -STABLE分支。從3.X-STABLE開始,3.1版是在1999年的2月15日,3.2是在1999年5月15日,3.3版是在1999年的9月 16日,3.4版是在1999年的12月20日,3.5版是在2000年的6月24日發(fā)布的,幾天后又加入了一些安全性方面的修補(bǔ),這一分支最終發(fā)展到 3.5.1版本。這也是3.X分支的最后版本。
到了2000年3月13日又出現(xiàn)了另一個分支4.X-STABLE。現(xiàn)在,他們采用“current-stable”的分支方法。從這時開始,又有了好幾個發(fā)行版:4.0版在2000年3月發(fā)布,4.1版在2000年7月發(fā)布,4.2在2000年11月發(fā)布,4.3在2001年4月發(fā)布,4.4在2001 年9月發(fā)布。沿著4.X-STABLE這一分支將不斷發(fā)展到2002年。
現(xiàn)在,F(xiàn)reeBSD小組正在繼續(xù)開發(fā)著5.0-CURRENT(trunk),預(yù)計在2002年年底的時候可以發(fā)行5.0的Release版。


