歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 二十年來 UNIX 的發展史

二十年來 UNIX 的發展史

日期:2017/2/28 11:25:31   编辑:關於Unix


早期歷史
Thompson和Ritchie在1973年Purdue大學召開的操作系統原理研討會上,發表了第一篇關於UNIX的論文。那時伯克利分校的Bob Fabry教授也在場,他立刻對UNIX產生興趣,並得到一份拷貝,准備在伯克利做實驗。
當時,伯克利分校僅有幾台大型主機做批處理工作。因此,伯克利的計算機科學系、數學系和統計系聯合訂購了一台能夠運行當時最新的第四版UNIX的 PDP - 11/45。1974年1月,UNIX第四版磁帶交付學校使用,並被研究生Keith Standiford安裝到這台機器上。
那時,有太多系統需要Thompson維護,但在Purdue大學的Thompson還是沒有直接參與伯克利UNIX系統的安裝。由於在伯克利安裝的系統出現幾次奇怪的系統崩潰,這樣一來就需要他這樣的專家來解決問題。因為伯克利僅有一台300波特的聲頻偶合式調制解調器,且沒有應答功能, Thompson不得不先通過電話通知在機房Standiford,讓他將電話線插入調制解調器中,通過這種方法,Thompson得以在新澤西州對崩潰的系統進行遠程調試、除錯。
系統多次崩潰是由於硬盤控制器不能進行重疊性搜索引起的。相對於普通的文檔搜索不同,伯克利的PDP- 11/45是Thompson遇到的第一批在同一個控制器上有兩個硬盤的計算機。Thompson的遠程除錯也是伯克利和貝爾實驗室合作的一個例子。貝爾實驗室積極肯干的研究人員樂於助人,同時也和伯克利分享工作成果,這在很大程度上促進伯克利軟件的改進工作。
盡管Unix很快能夠運行,並且比較穩定。但計算機系、數學系和統計系開始出現矛盾——數學系和統計系想要運行DEC的RSTS系統。爭論之後,他們達成協議:每個系可以每班運行8小時的計算機系統;Unix可以在運行RSTS系統16小時後,再運行8小時。為公平起見,運行的時間段為每天輪換。因此,第一天Unix運行從上午 8點到下午4點,然後是第二天的下午4點到午夜,而後是第三天的凌晨到上午8點。盡管有這樣離奇的時間安排,參加學習操作系統課程的學生仍然喜歡在 Unix而不是批處理機上做項目。
早期的發行版本
此間,對Pascal編譯器的錯誤恢復工作的興趣使得這一工作被引入了對系統的需求。1977年初, Joy完成了“伯克利發行版(Berkeley Software Distribution)”。這個發行版本包括Pascal系統,以及存放在在Pascal源碼的晦澀的子目錄下的ex編輯器。又過了一年,作為發行組的秘書的Joy,發放了大約三十份免費的系統拷貝。
隨著提供指向顯示緩沖區指針功能的ADM-3a終端的出現,Joy最終完成了屏幕編輯器vi,給Berkeley帶來了全屏幕編輯器。他很快發現自己處在進退兩難的境地。在學校,經費不足是常有的事,舊的設備根本就沒有替換掉。他決定放棄進行代碼優化和修改幾個終端的支持工作,轉而通過使用一個小的解釋器去重畫屏幕,籍此來改善屏幕管理。這個解釋器通過描述終端的特性來驅動,這最終導致了termcap的產生。
到1978年中期,軟件的發行版已經開始過時,需要修改。對於Pascal系統,日益增長的用戶群體反饋了很多意見,根據反饋的意見修改後的系統更加穩定,同時也修改為兩遍掃描,使其可以在PDP-11/34上運行,修改的結果定名為“伯克利發行第二版(Second Berkeley Software Distribution)”很快被縮寫為2BSD,它包括了增強的Pascal系統,vi編輯器和幾個終端的termcap在內。Bill Joy再次獨自作了發行版軟件的集成,答復用戶的電話,並且把客戶的反饋也集中在系統中。一年後,又發行了75份系統。然而,接下來的一年Joy轉向另一個項目,而2BSD發布還在進行。其最終版本為2.11BSD,是一個至今仍運行在世界各個角落的幾百台PDP-11上的完整的系統。
VAX Unix
1978年初,Richard Fateman教授開始尋找擁有更大地址空間的機器,以繼續支持他在Macsyma上的研究工作(最初開始於PDP-10)。新發布的VAX- 11/780滿足了要求,並出現在預算中。Fateman和三十個同事一同向NSF(美國國家科學基金會,譯注)提出建議,並購買了一台VAX。
最初VAX運行DEC的VMS操作系統,但系裡一直在使用Unix環境,並希望繼續用下去。因此,在VAX交付之後不久,Fateman獲得了一份貝爾實驗室John Reiser和Tom London移植到VAX上的Unix——32/V。
盡管32/V在VAX上提供了第七版Unix環境,但它沒有利用VAX硬件的虛擬內存功能。如同它在PDP-11上運行的先驅一樣,它是完全基於交換的系統。對於Berkeley的Macsyma研究組來說,沒有虛擬內存意味著進程的地址空間只能局限於物理內存,在新的VAX上,他的大小是一兆字節。
為了解決這一問題,Fateman找到了Domenico Ferrari教授,Berkeley系統學科部成員,來研究為Unix編寫虛擬內存支持的可能性。Ozalp Babaoglu,Ferrari的學生之一,開始著手研究在VAX上實現頁面系統,由於VAX沒有引用位,他的工作遇到了難題。
在Babaoglu接近完成他的第一個實現的時候,他找到了Bill Joy,以尋求在理解錯綜復雜的Unix內核中遇到的困難的幫助。Joy由於Bill Joy而對這些工作產生了興趣,並加入到將這些代碼集成到32/V,以及後續的調試工作中。
不幸的是,Berkeley只有一台VAX,同時用於系統的開發和日常工作。因此,在聖誕節假期的幾周內,富有耐心的用戶群體發現他們交替地登錄到了 32/V和“Virtual VAX/Unix”上。他們的工作經常在後面的系統中突然地掛起,幾分鐘之後,32/V的登錄提示再次出現。1979年1月,絕大多數問題得到了修正,而 32/V正式成為歷史。
Joy認識到32-位VAX很快就會讓16-位的PDP-11果實,於是開始將2BSD的軟件移植到VAX上。當我和Peter Kessler移植Pascal系統時,Joy移植了ex和vi編輯器,C Shell,以及2BSD中的無數小程序。1979年年底,完整的發行版被集成到了一起。這個發行版包括了虛擬內存內核、標准的32/V實用程序,以及 2BSD新增加的功能。1979年12月,Joy發行了3BSD的近百份拷貝,這是Berkeley在VAX上的第一個發行版。
貝爾實驗室發行的最後一個Unix版本是32/V;其後,所有的AT&T Unix版本,從System III開始,以及其後的System V,轉而由一個強調穩定的商業發行版本的小組繼續維護。隨著Unix的商業化,Bell實驗室無法繼續作為Unix研究的清靜所在。隨著研究團體對 Unix的繼續修改,它發現需要一個能夠制作研究性發行版本的組織。由於對Unix的早期影響,Berkeley很快進入了原先由貝爾實驗室扮演的角色。
DARPA(美國國防部高級研究局)的支持
同時,DARPA部門的策劃人的討論對Berkeley的工作產生了重要影響。DARPA早期成功的計劃是把他們的主要研究中心連在一起,形成一個全國的計算機網絡。與此同時,他們也在這些研究中心尋找已到壽命的計算機,並且換掉它們。然而,比巨大的替換開銷還大的是把研究的軟件移植到新的計算機上。另外,由於硬件和操作系統的多樣性,使得很多主機之間不能共享軟件。
選擇一個單一硬件的賣主是不契合實際的,因為研究小組對多種類型的計算機需要和不能單一的依靠一個制造商。然而,DARPA的決策者決定最好的方案在於操作系統的統一。經過多次討論之後,由於Unix已被證實的可移植性,被選定為操作系統的標准。
1979年秋,Bob Fabry回應DARPA的關於移向Unix建議,向Berkeley提議,開發一個為DARPA團隊使用的3BSD增強版本。Fabry 帶著他的建議去參加DARPA圖象處理的會議和約見VLSI的承包人,一同去的還有ARPAnet開發者Bolt,Beranek,以及Newman的代表。當時還為Berkeley能否開發一個工作系統心存懷疑;然而,1979年十二月3BSD的發布打消了他們的顧慮。
由於3BSD 版本實現了他的承諾,3BSD聲譽也隨著大大提高,因此Bob Fabry和DARPA簽定了一份在1980四月生效的長約18個月的合同。在這份合同的贊助下,Bob Fabry組建了名為“計算機系統研究小組”的組織,或者簡寫為CSRG。他很快雇傭了Laura Tong處理項目的管理。Fabry把他的注意力轉向尋找一位能夠管理軟件開發的項目經理。Fabry以為已經通過Ph.D.資格考試的Joy,寧願完成他的學位也不肯當軟件開發的職位,然而Joy又有了其他的計劃。三月上旬的一個晚上,Joy達電話往Fabry家裡打電話,表示對掌管Unix進一步發展感興趣。盡管這個提議使 Fabry很吃驚,但Fabry梢加考慮就答應了。
項目進展的的很順利。Tong建立一套發行系統,能夠使從Joy早先發行版處理大量的定單。Fabry開始同AT&T的Bob Guffy以及加洲大學的律師合作,制定使用者需要同意使用Unix的條款。Joy將Jim Kulp作業控制機制,還有自動重啟動功能,1K-塊文件系統,並且支持新型VAX-11/750。到了1980年十月,優化後的系統4BSD發布,包括 Pascal編譯器、Franz的Lisp系統,和增強的郵件處理系統。在它9個月的生命周期中,大約賣出150份系統拷貝。許可的管理是通過以公共機構為單位的,而不是以每台機器來收費的;因此這個版本運行在500台以上的機器上。
隨著發行版本大量增加,Berkeley Unix的可見性增加。幾個評論評論家開始評論BSD。斯坦福研究院的工作人員撰寫了一篇主要關於VMS和Berkeley Unix運行測試結果的論文,這些測試結果表明VAX運行Unix的幾個嚴重問題。Joy看到這篇論文,立刻把未來的計劃擱置了幾個月,著手調整內核。幾周以後,他基於Kashtan的測試結果回復一篇文章,表明Unix可以很好地運行在VMS機器上。
4BSD不斷發行的同時,仍然處於細微的調整階段。增加Robert Elz的自動配置代碼之後的系統,於1981年6月發布,這個版本稱為4.1BSD。在它兩年多的生存周期內,大約發行了400份。原計劃稱為5BSD版本,然而,AT&T反對此事,宣稱顧客可能會把它和商業Unix——System V混淆。所以,為了解決這個爭端,Berkeley答應在未來版本命名計劃中,主版本號停留在4BSD,只增加次版本號。
4.2BSD
隨著4.1BSD版本的發行,很多關於性能的疑慮被解決。DARPA非常滿意合同的結果。以致於又同Berkeley簽定一份兩年期的合同,而且這次的基金很多,大約是原來的5倍。這部分資金一半用來資助Unix項目,余下的分給計算機科學系的幾個其他研究員。合同要求,主要工作放在系統研究上,以便 DARPA的研究人員可以很好地進行他們的工作。
由於DARPA團隊的要求,確定了新的工作,並且開始據此對系統進改進。特別地,新系統希望包含能夠適應新的硬盤技術的快速文件系統、支持GB級的進程地址空間、提供靈活的交互處理通訊機制,以支持在分布式系統下的研究工作,並且集成網絡支持,這樣能夠使運行新系統的機器都很容易地連到 ARPAnet。
為了幫助確定新系統的方案,Duane Adams作為DARPA在Berkeley合同的監督人,組織了“籌劃指導委員會”協助指導設計工作,確保研究DARPA的要求得到滿足。這個委員會在 1981年4月到1983年6月,共開了兩次大會。委員會包括Bob Fabry、Bill Joy,和Berkeley的Sam Leffler、Alan Nemeth和Bolt的Rob Gurwitz、Beranek和Newman,貝爾實驗室的Dennis Ritchie,斯坦福(Stanford)大學的Keith Lantz、卡內基梅隆(Carnegie-Mellon)大學的Rick Rashid,麻省理工(MIT)的Bert Halstead、Information Sciences Institute的Dan Lynch、Duane Adams和DARPA的Bob Baker,以及加洲大學洛杉矶分校的Jerry Popek。1984年初,這些會議被由更多人參加的主題討論會取代。
1981年7月,在新系統中建議包含特性的原始文檔交給“籌劃指導委員會”和其他不在Berkeley的人那裡,引起了很長時間的討論。這年夏天,我成為 CSRG的成員,並且參與實現新的文件系統。整個夏天,Joy一直集中設計進程間通訊機制的原型。1981年秋,Sam Leffler也作為全職人員加入CSRG,同Bill Joy一起工作。
當Rob Gurwitz released在Berkeley發布早期的TCP/IP協議,而Joy則把它集成到系統中並優化了其性能。在這項工作中,Joy和Leffler發現新系統不應該只針對DARPA的標准網絡協議,還應該支持更多協議。因此,他們重新設計了軟件的內部結構,精煉了多個網絡協議的接口,以便這些網絡協議可以同時使用。
隨著內部結構重建的完成,和TCP/IP被集成到IPC功能的原型中,還寫了幾個簡單的程序,讓本地用戶可以存取遠程資源。它們是熟知的rcp、 rsh、 rlogin和rwho。它們是作為暫時性工具設計的,以至日後可以被其他更合理的工具替換(所以在命令前加了一個”r”)。這個系統,稱為4.1a,初次發行是在1982年4月,且僅供內部用戶使用,也沒有期望它廣泛應用,然而它卻加速人們對4.2 版本的渴望。
系統4.1a在它完成之前就過時了。但是,用戶提供反饋有價值的信息,被用來建立一個修訂計劃“4.2BSD系統使用手冊”。這份文檔在1982年2月發行,其中包含將在4.2BSD中實現的為系統調用功能提供的接口的簡要描述。
4.1a開發的同時,我完成了新文件系統。在1982年6月,我把它完整地集成到4.1a的內核中。新系統稱為4.1b,只運行在 Berkeley 選定的幾台用於開發的機器上。Joy感覺一個面臨較大改動的系統連內部發行都應盡量避免,特別是這個變動需要將每台機器的文件系統轉儲並恢復,以完成 4.1a 到 4.1b的轉換。在證實新的文件系統能夠穩定運行之後,Leffler立即著手進行增加有與新的文件系統有關的系統調用的工作,而Joy主要完成交互通訊機制的修訂。
1982年暮春,Joy宣布他將參加Sun公司。夏天過後,他將工作分開,一部分時間為Sun工作,另一部分時間為 Berkeley工作,他花費大量時間對交互通訊機制進行修訂,而且重新組織Unix核心以減小對機器的依賴問題。Joy離開後,Leffler接管整個項目的開發工作。開發的最後截止期限已經被確定,而且Berkeley已經答應DARPA團隊1983年春天完成發行版本。由於時間緊迫,對剩余的工作進行了完成評估,而且而且設置優先級別。特別地,增強交互通訊機制和虛擬內存中最復雜的部份都降低優先級(後來完全被擱置)。同時,由於Unix團體的期望高漲,Berkeley認為在最終版本發行之前,有必要分布一個過渡版本。這個系統被稱為4.1c,於1983年4月發布;許多廠商准備將4.2BSD移植到他們的硬件上。從4.1c版本開始,Pauline Schwartz被雇來管理發行工作。
1983年6月,Bob Fabry把CSRG管理權交給Domenico Ferrari和Susan Grahamturned,並開始度假,以解放他4年來瘋狂的生活節奏。Leffler繼續完成系統,實現新的信號機制,增加了網絡支持,重做了單獨的輸入/輸出系統以簡化安裝程序,整合來自Robert Elz的磁盤配額機制,更新所有的文檔,修復了自4.1c版以來的bug。在1983年8月,4.2BSD發布。
當4.2BSD發布不久,Leffler離開Berkeley去了Lucasfilm,他的職務被Mike Karels取代。Karels早期發行2.9BSD PDP的經驗,給他的新工作提供理想的背景。在我完成博士學位之後,1984年12月,我作為全職工作人員參加了CSRG,同Karels一起工作。
4.2BSD的流行讓人印象深刻。在發行的18個月內,簽發了1000多份站點許可。隨後,又發行大量4.2BSD的發行版,可以說其數量超過以前發行版數量的總和。大部份Unix廠商移植4.2BSD系統到他們的硬件上,而不是移植AT&T的商用System V。因為System V既沒有網絡也沒有Berkley快速文件系統。BSD版的Unix在商用領域占優勢的地位長達幾年。4.2BSD的改進逐漸被集成到System V中,廠商逐漸又轉而移植System V,不過,後來的BSD開發成果仍然繼續被System V引進。
4.3BSD
4.1BSD發行不久,很快招致多方面批評。大部份人抱怨系統運行太慢。這個問題 並不令人驚訝,因為新的功能還沒有被優化,許多內核中的數據結構和新的功能不能協調工作。Karels和我的第一年完全花費優化系統上。
在花費二年時間調整系統和精煉網絡代碼之後, 我們如預期的1985年夏天,6月在Usenix會議上宣布了發布4.3BSD的消息。然而我們的發行計劃被BBN突然中止。他們及時地指出我們從未用他們的最終網絡代碼修改4.2BSD,相反,我們仍然在使用他們早先給我們的初始模型,這個模型其後經過了大量的修改。他們向DARPA抱怨,預想的情況應該是Berkeley實現接口,BBN實現協議。因此Berkeley應該在4.3BSD中用BBN設計的TCP/IP代碼。
Mike Karels得到了BBN的代碼,而且做了自從代碼被傳遞到Berkeley以後的工作進行了評估。他決定最好的計劃是把BBN代碼的優秀思想結合到 Berkeley代碼基礎中,但是不要替換Berkeley代碼。理由有Berkeley代碼已經在4.2BSD中廣泛地測試和進行了很大改進。然而,折中處理,他提出兩者都包括在4.3BSD的發行版本中,讓用戶在內核挑選使用那種代碼。
檢討Mike Karels的決定之後,DARPA確定發行二個代碼基礎,那會導致不必要的互操作問題,決定只發布一套代碼。為了要決定使用哪中代碼作為基礎,他們把兩者都給Ballistics研究實驗室Mike Muuse,作為第三方評估者。在一月評估之後,報告Berkeley代碼更有效率,而BBN代碼處理阻塞比較好。更重要的一點,Berkeley 代碼在各種測試中都能很好地通過,BBN代碼在高負荷條件下會菪機。DARPA最後決定,4.3BSD應該使用Berkeley代碼基矗
修改一新的4.3BSD最後在1986年6月發布。就向預期的一樣,它平息了多數用戶的抱怨,就像4.1BSD平息了多數用戶對4BSD的抱怨一樣。雖然大部份廠商已經開始轉向System V,但是4.3BSD的大部份成果還是集成到他們的系統之內,特別是網絡子系統。
在1986 年10月,Keith Bostic參加了CSRG。他的任務是完成在他的早先工作之上一個項目,要把4.3BSD移植到PDP-11。雖然Karels和我都認為它不太可能,在VAX編譯成250 Kbytes的系統,並且能滿足PDP-11的64 KB的地址空間的要求。但是,我們還是同意Bostic 可以實現他的這有設想。令我們吃驚的是,移植非常成功,他在PDP-11上使用一組復雜的疊加集合和附加處理。其結果是2.11BSD的發布。該系統由 Casey Leedom和Bostic完成,在1998年仍然在一些PDP-11遠行這個系統。同時,顯然易見VAX體系已經達成生命的晚年,是該開始考慮在其他的機器上運行流行的BSD時候了。Computer Consoles公司這時制造了一種叫做Power 6/32的新體系的計算機。不幸的是,當公司決定改變它的策略方向的時候,該體系不被支持。然而,他們確實為CSRG提供了能夠完成我們工作的一些機器。於是Bill Joy開始,從整個BSD內核中分離依賴機器的那部分代碼。這個工作的結果是,1988年6月發布4.3BSD-Tahoe。Tahoe來自 Computer Consoles開發過程中所有的一個名字,他們原本打算將它用於Power 6/32機器上。雖然Power 6/32 機器生命周期很短,但它對BSD向其他機器移植,分離內核代碼工作有寶貴的價值。
Networking, Release 1
4.3BSD-Tahoe的發布時,所有的BSD用戶必須事先得到AT&T的一份源代碼的許可,因為Berkeley從來沒有只發行二進的 BSD 系統;發行版本完全包含系統每個部分的原代碼。Unix系統和BSD系統的歷史顯示原代碼具有強大的威力。用戶不是消極地使用系統, 而是積極地修改臭蟲,改良性能和完善功能,甚至完全地增加新的特征。
隨著AT&T原代碼許可費用逐漸增加,那些想要用BSD 代碼為PC市場開發僅以TCP/IP為基礎的網絡產品的廠商,發現為每個二進制版本付費是不可能的。因此,他們要求Berkeley把網絡代碼和實用工具分離出來,在許可條款下,提供該他們,而不再需要AT&T的原代碼許可。顯然易見,TCP/IP 網絡代碼不包含在32/V中,完全由Berkeley和它的支持者開發。BSD早期的網絡代碼和支持工具在1989年6月開始發布,即 Networking, Release 1,首次由Berkeley 發行的可自由再發布的代碼。
那許可條款很寬泛。獲得許可的人可以發行被修改的代碼,不論是以源代碼還是二進制的形式發行,Berkeley都不會計較。唯一的要求是源文件中必須包含完整的版權聲明,在產品的文檔中指明產品中包含來自來加州的大學和它的貢獻者的代碼。盡管這樣,Berkeley還是對每盤磁帶收取$1,000 費用,任何人都可以從已經得到磁帶的人那裡免費的到副本。的確,一些大的站點在其發布不久,就建立匿名ftp供人免費下載。由於許可條款很寬泛,大約有幾百個組織購買了磁帶,發行費用可以幫助進一步項目的發展,CSRG當然很高興。
4.3BSD-Reno
同時,基礎系統的發展仍在繼續。虛擬內存系統接口第一次在4.2BSD體系描述文件中出現,最終的已實現。大多數情況下,CSRG總是試著尋找存在的代碼然後整和,而不是從頭寫起。如此,並非設計一個新的虛擬存儲系統,我們四處尋找存在的替代方案。我們的第一選擇是在Sun公司的SunOS下出現的虛擬存儲系統。雖然有關Sun公司對Berkeley貢獻代碼的一些討論,但是還是不了而止。因此,我們的第二個選項,卡內基梅隆大學的Mach操作系統的虛擬存儲系統被集成到系統中。Utah大學的Mike Hibler將Mach的核心技術同4.2BSD體系中的接口合並(也是被SunOS使用的接口)合並。
那時,在系統中,另一個主要附加的是同Sun公司兼容的網絡文件系統(NFS)。CSRG再一次得以避免實際編寫NFS代碼,這次集成工作是由加拿大的Geulph大學的Rick Macklem完成的。
雖然我們仍然沒有完成預發行版本4.4BSD的所有性能,但是CSRG決定發行一個過渡版本,目的是得到新系統的反饋和經驗。這個許可過渡版本被叫做 4.3BSD-Reno,在1990年初發行。版本的名字來自內華達州一座大的賭博城市中的一個斜的記念物,提醒用戶運行這個版本是一場賭博。
Networking, Release 2
在我們一次每周的團體會議上,Keith Bostic提出可再發布網絡版本的普及性的主題,建議發行包含更多BSD代碼的擴充版本。Mike Karels和我指出,發行系統的大部份是一件艱巨的工作,但是我們同意,如果他能夠重新分類實現幾百個實用程序和龐大的C語言庫函數,那麼我們會處理內核。事實上Karels和我私下裡感覺討論已經結束。
不過,這並沒有阻礙Bostic在技術上的探索和大量網絡基礎上的開發工作。他還要求其他成員依據新發布的Unix實用程序。作為補償,他們僅要求他們的名字和Berkeley貢獻者的名字同時在實用程序中列出。工作進展很慢,而且大部分是一些瑣細的實用程序。但是同樣完成實用程序列表不斷變大,而且 Bostic繼續尋找貢獻者(例如Usenix的公開場合),貢獻者的人數繼續增長。很快列表超過過了100多個公用程序,而且在18個月內幾乎所有重要的使用程序都被完全重寫。
後來,Bostic帶著實用程序列表進入Mike Karels和我的辦公室,想要知道我們正在核心上的工作進展。我們重新分配工作,Karels,Bostic和我花費以後的幾個月詳細察檢查整個發行版本,一個文件一個文件地刪除來自32/V版本的代碼。當工作將近結束的時候,我們發現還有六個核心文件,且沒有必要重寫。我們考慮重寫那六個文件,以便我們可以發行一個完全的系統。我們決定改為發行現有的系統,然而,我們需要得到大學行政部門高層人員的許可。經過內部討論之後,並驗證了我們對代碼的所有權問題,我們提前發行了新版本。
我們起初的想法是,為我們的的第二個可自由再發行的系統起個全新的名字。然而,我們看到大學律師寫的新版許可證,那樣完全沒有必要,而且可能浪費時間。因此,我們決定對Networking Release 1的許可證進行修訂,並且以Networking Release 2來發行我們的系統。就這樣,我們在1991年六月發行了擴展後的系統。這個版本的費用同第一版的一樣。與以往相同,幾百個個人和組織以每份拷貝 $1,000的費用從Berkeley得到它的副本。
Networking Release 2和完整系統的差別不斷減小,在發行的六月內,Jolitz已經重寫了六個不太重要的文件。他隨後就發行了完全編譯基於PC體系,可啟動的系統。 Jolitz的386/BSD完全在網絡上發行。他搭建了匿名FTP,以便用戶可以免費下載。在幾個星期內,他有了大量的追隨者。
FreeBSD團體在 NetBSD團體成立幾個月之後成立,其宗旨是僅支持個人計算機體系,並追求數量更多(較少技術化)的改進,同Linux作法十分相象。他們精心的設計安裝腳本,以低廉的價格的CD-ROM發行他們的系統。易於安裝和瘋狂的網絡促銷、以及在Comdex大會的表演導致快速的,大量的發行。不可否認, FreeBSD是所有Networking Release 2分支中發行最多的系統。
FreeBSD也曾為Linux的流行而苦惱,因此FreeBSD平台加入Linux模擬模式。這個特征允許FreeBSD使用者運行大量的 Linux程序。同時,也促進FreeBSD系統向更加健壯,高兼容性和高性能方向發展。最近,團體開設了一個FreeBSD商城,把FreeBSD社區的許多部份連接起來,包括商業服務、產品、書籍和新聞報道。
訴訟
BSDI開始他們的銷售戰之後不久,他們就收到了來自Unix系統實驗室(USL, 一個基本上屬於AT&T的,開發和銷售Unix的機構)。這封信要求他們停止以“Unix”的名義推廣他們的產品,包括他們“欺騙性的”電話號碼。雖然電話號碼很快被停用,而且他們的公告也解釋了他們的產品和Unix只見的區別,USL仍然不滿意,並且撰寫了起訴書,要求禁止BSDI出售他們的產品。起訴書宣稱BSDI出售的產品中含有屬於USL的代碼。USL同時要求在訴訟宣判之前,中止BSDI的銷售,聲稱BSDI繼續銷售會給USL造成不可挽回的損失。
調查聽證會中,BSDI指出他們只是簡單地使用了來自加州大學的免費發行的代碼,以及六個附加的文件。他們願意就這六個文件展開調查,但不希望承擔加州大學發行的代碼的責任。法官同意了BSDI的主張,並通知USL他們需要修改他們的起訴書,否則將駁回起訴。認識到針對六個文件的起訴將沒有意義, USL決定重新撰寫起訴書,起訴BSDI和加州大學。和他們先前作的一樣,USL要求加州大學停止發布Networking Release 2,當然,也包括BSDI公司的商業產品。
由於禁令的迫近,人們開始積極地准備。CSRG的所有成員和BSDI幾乎所有的雇員都宣誓作證。律師們針鋒相對,互不相讓。Keith Bostic和我不得不親自撰寫材料,我自己也不得不為各種陳詞寫上幾百頁的材料。
1992年12月,美國眾議院新澤西州選區法官Dickinson R. Debevoise受理了關於發布禁令的要求。盡管法官通常會立即發布禁令,但他認為這樣的禁令需要經過深思熟慮。六周後的一個星期五,他簽署了一份四十頁的意見,表示他拒絕禁令,並駁回除兩條之外的其他主張。余下的兩條訴求被局限於最近的版權和可能洩漏商業機密的問題。他建議這一案件應當在聯邦法院之前被州立法院系統受理。
加州大學根據這一決定,立即在周一提出對USL的反訴。除了加利福尼亞州之外,大學還為聯邦法庭的訴訟進行了准備。憲法要求所有州的文件必須在一個州准備,以防止訴訟者自己帶著厚重的提包為准備50份材料——每州一份。其結果是,如果USL希望在聯邦法庭對大學提起訴訟,他們必須在加州,而不是新澤西做同樣的事情。
大學的訴訟聲稱USL沒有盡到作為BSD代碼作者盡到的責任,因為System V中BSD代碼的署名權已經在先前的許可證中規定了。如果這項主張被證明是有效的,那麼大學要求USL重印他們所有的手冊,並在主要出版物,如華爾街時報、財富雜志刊登整夜的廣告以通知整個商業界。
其後不久,USL被Novell從AT&T買走。Novell的CEO, Ray Noorda,公開表示他寧可在市場上,而不是在法庭上進行較量。1993年夏談判開始,然而不幸的是,雙方都已經陷得很深,以至於談判進行的異常緩慢。最後,USL一邊在Ray Noorda的領導下在一些關鍵問題上做出了讓步,最終於1994年1月達成了協議,其結果是組成Networking Release 2的18,000個文件中的3個被刪除,並對其他一些文件進行了細微的修改。同時,加州大學同意在大約70個文件中加入USL的版權,盡管他們仍然被免費分發。
4.4BSD
曲折之後,一個新版本4.4BSD-Lite在1994年6月發布。其許可條款同 Networking releases一樣。特別地,條款允許以源代碼和二進制的形式自由發行,只要完整保留加洲大學版權聲明,並且其他人使用時也能得到這個版權聲明。同時,發行完全的系統4.4BSD-Encumbered版本, 仍然需要使用者有一份USL源代碼許可。
糾紛結果還規定:USL不得控告任何使用4.4BSD-Lite作為他們系統的基礎的組織。如此,那時所有發行BSD的團體,包括BSDI, NetBSD 和FreeBSD,必須以4.4BSD-Lite作為他們的代碼來源,然後整合系統,提高系統性能。雖然這次重新以4.4BSD-Lite為基礎延誤了各個團體開發系統的時間,但更幸運的是,Networking Release 2發行三年內,如同CSRG一樣,各個分支團體的開發工作必須重新同步。
4.4BSD-Lite, Release 2
由 4.4BSD-Encumbered 和 4.4BSD-Lite release版本發行得到的經費,用來贊助一個兼職的工作人員,來修改臭蟲和提高系統性能。這樣長達二年的工作,持續到臭蟲的比率一直下降和性能已不能提高為止。最終的改變促成4.4BSD-Lite版本在1995年6月發行。這些大多數的變化都是以後其他系統的源代碼的基矗
4.4BSD-Lite第二版的發布以後,CSRG同時也被解散。在領航BSD的二十多年中,我們感覺應該讓其在新思想和無限的熱情中生存和發展。當它可能有單一集中的權威監督系統發展像是最好的時候,用一些團體不同的特許狀的主意確定那許多不同的接近將會被嘗試。因為系統被以來源代碼形式發行, 最好的結果就是它能夠容易地被其他團體接受。如果某些改變特別地有效,他們可能最後變成占優勢的系統。
今天,開源軟件運動正在得到更多的注意和尊敬。雖然Linux系統非常有名,但是其中大約一半以上的程序都來自BSD的發行版本。Linux發布很嚴重地依賴編譯器、調試器以及其他由自由軟件基金會所寫的開發工具。
總而言之,CSRG,自由軟件基金會(Free Software Foundation)和Linux內核開發者已經投身開源軟件運動,並以此建立了基礎平台。我很驕傲有機會提倡開源軟件運動。我盼望有一天,無論身處何處的用戶和公司在開發和購買軟件的時候都願意采取這種方式。
Copyright © Linux教程網 All Rights Reserved