国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

UNIX操作系統的二十年發展歷史

瀏覽:39日期:2024-06-17 08:16:17

早期歷史 

Thompson和RitchIE在1973年Purdue大學召開的操作系統原理研討會上,發表了第一篇關于Unix的論文。那時伯克利分校的BobFabry教授也在場,他立刻對UNIX產生興趣,并得到一份拷貝,準備在伯克利做實驗。

當時,伯克利分校僅有幾臺大型主機做批處理工作。因此,伯克利的計算機科學系、數學系和統計系聯合訂購了一臺能夠運行當時最新的第四版UNIX的PDP-11/45。1974年1月,UNIX第四版磁帶交付學校使用,并被研究生KeithStandiford安裝到這臺機器上。

那時,有太多系統需要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完成了“伯克利發行版(BerkeleySoftwareDistribution)。這個發行版本包括Pascal系統,以及存放在在Pascal源碼的晦澀的子目錄下的ex編輯器。又過了一年,作為發行組的秘書的Joy,發放了大約三十份免費的系統拷貝。

隨著提供指向顯示緩沖區指針功能的ADM-3a終端的出現,Joy最終完成了屏幕編輯器vi,給Berkeley帶來了全屏幕編輯器。他很快發現自己處在進退兩難的境地。在學校,經費不足是常有的事,舊的設備根本就沒有替換掉。他決定放棄進行代碼優化和修改幾個終端的支持工作,轉而通過使用一個小的解釋器去重畫屏幕,籍此來改善屏幕管理。這個解釋器通過描述終端的特性來驅動,這最終導致了termcap的產生。

到1978年中期,軟件的發行版已經開始過時,需要修改。對于Pascal系統,日益增長的用戶群體反饋了很多意見,根據反饋的意見修改后的系統更加穩定,同時也修改為兩遍掃描,使其可以在PDP-11/34上運行,修改的結果定名為“伯克利發行第二版(SecondBerkeleySoftwareDistribution)很快被縮寫為2BSD,它包括了增強的Pascal系統,vi編輯器和幾個終端的termcap在內。BillJoy再次獨自作了發行版軟件的集成,答復用戶的電話,并且把客戶的反饋也集中在系統中。一年后,又發行了75份系統。然而,接下來的一年Joy轉向另一個項目,而2BSD發布還在進行。其最終版本為2.11BSD,是一個至今仍運行在世界各個角落的幾百臺PDP-11上的完整的系統。

VAXUnix

1978年初,RichardFateman教授開始尋找擁有更大地址空間的機器,以繼續支持他在Macsyma上的研究工作(最初開始于PDP-10)。新發布的VAX-11/780滿足了要求,并出現在預算中。Fateman和三十個同事一同向NSF(美國國家科學基金會,譯注)提出建議,并購買了一臺VAX。

最初VAX運行DEC的VMS操作系統,但系里一直在使用Unix環境,并希望繼續用下去。因此,在VAX交付之后不久,Fateman獲得了一份貝爾實驗室JohnReiser和TomLondon移植到VAX上的Unix——32/V。

盡管32/V在VAX上提供了第七版Unix環境,但它沒有利用VAX硬件的虛擬內存功能。如同它在PDP-11上運行的先驅一樣,它是完全基于交換的系統。對于Berkeley的Macsyma研究組來說,沒有虛擬內存意味著進程的地址空間只能局限于物理內存,在新的VAX上,他的大小是一兆字節。

為了解決這一問題,Fateman找到了DomenicoFerrari教授,Berkeley系統學科部成員,來研究為Unix編寫虛擬內存支持的可能性。OzalpBabaoglu,Ferrari的學生之一,開始著手研究在VAX上實現頁面系統,由于VAX沒有引用位,他的工作遇到了難題。

在Babaoglu接近完成他的第一個實現的時候,他找到了BillJoy,以尋求在理解錯綜復雜的Unix內核中遇到的困難的幫助。Joy由于BillJoy而對這些工作產生了興趣,并加入到將這些代碼集成到32/V,以及后續的調試工作中。

不幸的是,Berkeley只有一臺VAX,同時用于系統的開發和日常工作。因此,在圣誕節假期的幾周內,富有耐心的用戶群體發現他們交替地登錄到了32/V和“VirtualVAX/Unix上。他們的工作經常在后面的系統中突然地掛起,幾分鐘之后,32/V的登錄提示再次出現。1979年1月,絕大多數問題得到了修正,而32/V正式成為歷史。

Joy認識到32-位VAX很快就會讓16-位的PDP-11果實,于是開始將2BSD的軟件移植到VAX上。當我和PeterKessler移植Pascal系統時,Joy移植了ex和vi編輯器,CShell,以及2BSD中的無數小程序。1979年年底,完整的發行版被集成到了一起。這個發行版包括了虛擬內存內核、標準的32/V實用程序,以及2BSD新增加的功能。1979年12月,Joy發行了3BSD的近百份拷貝,這是Berkeley在VAX上的第一個發行版。

貝爾實驗室發行的最后一個Unix版本是32/V;其后,所有的AT&TUnix版本,從SystemIII開始,以及其后的SystemV,轉而由一個強調穩定的商業發行版本的小組繼續維護。隨著Unix的商業化,Bell實驗室無法繼續作為Unix研究的清靜所在。隨著研究團體對Unix的繼續修改,它發現需要一個能夠制作研究性發行版本的組織。由于對Unix的早期影響,Berkeley很快進入了原先由貝爾實驗室扮演的角色。

DARPA(美國國防部高級研究局)的支持 

同時,DARPA部門的策劃人的討論對Berkeley的工作產生了重要影響。DARPA早期成功的計劃是把他們的主要研究中心連在一起,形成一個全國的計算機網絡。與此同時,他們也在這些研究中心尋找已到壽命的計算機,并且換掉它們。然而,比巨大的替換開銷還大的是把研究的軟件移植到新的計算機上。另外,由于硬件和操作系統的多樣性,使得很多主機之間不能共享軟件。

選擇一個單一硬件的賣主是不契合實際的,因為研究小組對多種類型的計算機需要和不能單一的依靠一個制造商。然而,DARPA的決策者決定最好的方案在于操作系統的統一。經過多次討論之后,由于Unix已被證實的可移植性,被選定為操作系統的標準。

1979年秋,BobFabry回應DARPA的關于移向Unix建議,向Berkeley提議,開發一個為DARPA團隊使用的3BSD增強版本。Fabry帶著他的建議去參加DARPA圖象處理的會議和約見VLSI的承包人,一同去的還有ARPAnet開發者Bolt,Beranek,以及Newman的代表。當時還為Berkeley能否開發一個工作系統心存懷疑;然而,1979年十二月3BSD的發布打消了他們的顧慮。

由于3BSD版本實現了他的承諾,3BSD聲譽也隨著大大提高,因此BobFabry和DARPA簽定了一份在1980四月生效的長約18個月的合同。在這份合同的贊助下,BobFabry組建了名為“計算機系統研究小組的組織,或者簡寫為CSRG。他很快雇傭了LauraTong處理項目的管理。Fabry把他的注意力轉向尋找一位能夠管理軟件開發的項目經理。Fabry以為已經通過Ph.D.資格考試的Joy,寧愿完成他的學位也不肯當軟件開發的職位,然而Joy又有了其他的計劃。三月上旬的一個晚上,Joy達電話往Fabry家里打電話,表示對掌管Unix進一步發展感興趣。盡管這個提議使Fabry很吃驚,但Fabry梢加考慮就答應了。

項目進展的的很順利。Tong建立一套發行系統,能夠使從Joy早先發行版處理大量的定單。Fabry開始同AT&T的BobGuffy以及加洲大學的律師合作,制定使用者需要同意使用Unix的條款。Joy將JimKulp作業控制機制,還有自動重啟動功能,1K-塊文件系統,并且支持新型VAX-11/750。到了1980年十月,優化后的系統4BSD發布,包括Pascal編譯器、Franz的Lisp系統,和增強的郵件處理系統。在它9個月的生命周期中,大約賣出150份系統拷貝。許可的管理是通過以公共機構為單位的,而不是以每臺機器來收費的;因此這個版本運行在500臺以上的機器上。

隨著發行版本大量增加,BerkeleyUnix的可見性增加。幾個評論評論家開始評論BSD。斯坦福研究院的工作人員撰寫了一篇主要關于VMS和BerkeleyUnix運行測試結果的論文,這些測試結果表明VAX運行Unix的幾個嚴重問題。Joy看到這篇論文,立刻把未來的計劃擱置了幾個月,著手調整內核。幾周以后,他基于Kashtan的測試結果回復一篇文章,表明Unix可以很好地運行在VMS機器上。

4BSD不斷發行的同時,仍然處于細微的調整階段。增加RobertElz的自動配置代碼之后的系統,于1981年6月發布,這個版本稱為4.1BSD。在它兩年多的生存周期內,大約發行了400份。原計劃稱為5BSD版本,然而,AT&T反對此事,宣稱顧客可能會把它和商業Unix——SystemV混淆。所以,為了解決這個爭端,Berkeley答應在未來版本命名計劃中,主版本號停留在4BSD,只增加次版本號。

4.2BSD

隨著4.1BSD版本的發行,很多關于性能的疑慮被解決。DARPA非常滿意合同的結果。以致于又同Berkeley簽定一份兩年期的合同,而且這次的基金很多,大約是原來的5倍。這部分資金一半用來資助Unix項目,余下的分給計算機科學系的幾個其他研究員。合同要求,主要工作放在系統研究上,以便DARPA的研究人員可以很好地進行他們的工作。

由于DARPA團隊的要求,確定了新的工作,并且開始據此對系統進改進。特別地,新系統希望包含能夠適應新的硬盤技術的快速文件系統、支持GB級的進程地址空間、提供靈活的交互處理通訊機制,以支持在分布式系統下的研究工作,并且集成網絡支持,這樣能夠使運行新系統的機器都很容易地連到ARPAnet。

為了幫助確定新系統的方案,DuaneAdams作為DARPA在Berkeley合同的監督人,組織了“籌劃指導委員會協助指導設計工作,確保研究DARPA的要求得到滿足。這個委員會在1981年4月到1983年6月,共開了兩次大會。委員會包括BobFabry、BillJoy,和Berkeley的SamLeffler、AlanNemeth和Bolt的RobGurwitz、Beranek和Newman,貝爾實驗室的DennisRitchIE,斯坦福(Stanford)大學的KeithLantz、卡內基梅隆(Carnegie-Mellon)大學的RickRashid,麻省理工(MIT)的BertHalstead、InformationSciencesInstitute的DanLynch、DuaneAdams和DARPA的BobBaker,以及加洲大學洛杉磯分校的JerryPopek。1984年初,這些會議被由更多人參加的主題討論會取代。

1981年7月,在新系統中建議包含特性的原始文檔交給“籌劃指導委員會和其他不在Berkeley的人那里,引起了很長時間的討論。這年夏天,我成為CSRG的成員,并且參與實現新的文件系統。整個夏天,Joy一直集中設計進程間通訊機制的原型。1981年秋,SamLeffler也作為全職人員加入CSRG,同BillJoy一起工作。

當RobGurwitzreleased在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版本開始,PaulineSchwartz被雇來管理發行工作。

1983年6月,BobFabry把CSRG管理權交給DomenicoFerrari和SusanGrahamturned,并開始度假,以解放他4年來瘋狂的生活節奏。Leffler繼續完成系統,實現新的信號機制,增加了網絡支持,重做了單獨的輸入/輸出系統以簡化安裝程序,整合來自RobertElz的磁盤配額機制,更新所有的文檔,修復了自4.1c版以來的bug。在1983年8月,4.2BSD發布。

當4.2BSD發布不久,Leffler離開Berkeley去了Lucasfilm,他的職務被MikeKarels取代。Karels早期發行2.9BSDPDP的經驗,給他的新工作提供理想的背景。在我完成博士學位之后,1984年12月,我作為全職工作人員參加了CSRG,同Karels一起工作。

4.2BSD的流行讓人印象深刻。在發行的18個月內,簽發了1000多份站點許可。隨后,又發行大量4.2BSD的發行版,可以說其數量超過以前發行版數量的總和。大部份Unix廠商移植4.2BSD系統到他們的硬件上,而不是移植AT&T的商用SystemV。因為SystemV既沒有網絡也沒有Berkley快速文件系統。BSD版的Unix在商用領域占優勢的地位長達幾年。4.2BSD的改進逐漸被集成到SystemV中,廠商逐漸又轉而移植SystemV,不過,后來的BSD開發成果仍然繼續被SystemV引進。

4.3BSD 

4.1BSD發行不久,很快招致多方面批評。大部份人抱怨系統運行太慢。這個問題并不令人驚訝,因為新的功能還沒有被優化,許多內核中的數據結構和新的功能不能協調工作。Karels和我的第一年完全花費優化系統上。

在花費二年時間調整系統和精煉網絡代碼之后,我們如預期的1985年夏天,6月在Usenix會議上宣布了發布4.3BSD的消息。然而我們的發行計劃被BBN突然中止。他們及時地指出我們從未用他們的最終網絡代碼修改4.2BSD,相反,我們仍然在使用他們早先給我們的初始模型,這個模型其后經過了大量的修改。他們向DARPA抱怨,預想的情況應該是Berkeley實現接口,BBN實現協議。因此Berkeley應該在4.3BSD中用BBN設計的TCP/IP代碼。

MikeKarels得到了BBN的代碼,而且做了自從代碼被傳遞到Berkeley以后的工作進行了評估。他決定最好的計劃是把BBN代碼的優秀思想結合到Berkeley代碼基礎中,但是不要替換Berkeley代碼。理由有Berkeley代碼已經在4.2BSD中廣泛地測試和進行了很大改進。然而,折中處理,他提出兩者都包括在4.3BSD的發行版本中,讓用戶在內核挑選使用那種代碼。

檢討MikeKarels的決定之后,DARPA確定發行二個代碼基礎,那會導致不必要的互操作問題,決定只發布一套代碼。為了要決定使用哪中代碼作為基礎,他們把兩者都給Ballistics研究實驗室MikeMuuse,作為第三方評估者。在一月評估之后,報告Berkeley代碼更有效率,而BBN代碼處理阻塞比較好。更重要的一點,Berkeley代碼在各種測試中都能很好地通過,BBN代碼在高負荷條件下會菪機。DARPA最后決定,4.3BSD應該使用Berkeley代碼基矗

修改一新的4.3BSD最后在1986年6月發布。就向預期的一樣,它平息了多數用戶的抱怨,就像4.1BSD平息了多數用戶對4BSD的抱怨一樣。雖然大部份廠商已經開始轉向SystemV,但是4.3BSD的大部份成果還是集成到他們的系統之內,特別是網絡子系統。

在1986年10月,KeithBostic參加了CSRG。他的任務是完成在他的早先工作之上一個項目,要把4.3BSD移植到PDP-11。雖然Karels和我都認為它不太可能,在VAX編譯成250Kbytes的系統,并且能滿足PDP-11的64KB的地址空間的要求。但是,我們還是同意Bostic可以實現他的這有設想。令我們吃驚的是,移植非常成功,他在PDP-11上使用一組復雜的疊加集合和附加處理。其結果是2.11BSD的發布。該系統由CaseyLeedom和Bostic完成,在1998年仍然在一些PDP-11遠行這個系統。

同時,顯然易見VAX體系已經達成生命的晚年,是該開始考慮在其他的機器上運行流行的BSD時候了。ComputerConsoles公司這時制造了一種叫做Power6/32的新體系的計算機。不幸的是,當公司決定改變它的策略方向的時候,該體系不被支持。然而,他們確實為CSRG提供了能夠完成我們工作的一些機器。于是BillJoy開始,從整個BSD內核中分離依賴機器的那部分代碼。這個工作的結果是,1988年6月發布4.3BSD-Tahoe。Tahoe來自ComputerConsoles開發過程中所有的一個名字,他們原本打算將它用于Power6/32機器上。雖然Power6/32機器生命周期很短,但它對BSD向其他機器移植,分離內核代碼工作有寶貴的價值。

Networking,Release1

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,Release1,首次由Berkeley發行的可自由再發布的代碼。

那許可條款很寬泛。獲得許可的人可以發行被修改的代碼,不論是以源代碼還是二進制的形式發行,Berkeley都不會計較。唯一的要求是源文件中必須包含完整的版權聲明,在產品的文檔中指明產品中包含來自來加州的大學和它的貢獻者的代碼。盡管這樣,Berkeley還是對每盤磁帶收取,000費用,任何人都可以從已經得到磁帶的人那里免費的到副本。的確,一些大的站點在其發布不久,就建立匿名ftp供人免費下載。由于許可條款很寬泛,大約有幾百個組織購買了磁帶,發行費用可以幫助進一步項目的發展,CSRG當然很高興。

4.3BSD-Reno

同時,基礎系統的發展仍在繼續。虛擬內存系統接口第一次在4.2BSD體系描述文件中出現,最終的已實現。大多數情況下,CSRG總是試著尋找存在的代碼然后整和,而不是從頭寫起。如此,并非設計一個新的虛擬存儲系統,我們四處尋找存在的替代方案。我們的第一選擇是在Sun公司的SunOS下出現的虛擬存儲系統。雖然有關Sun公司對Berkeley貢獻代碼的一些討論,但是還是不了而止。因此,我們的第二個選項,卡內基梅隆大學的Mach操作系統的虛擬存儲系統被集成到系統中。Utah大學的MikeHibler將Mach的核心技術同4.2BSD體系中的接口合并(也是被SunOS使用的接口)合并。

標簽: Unix系統
主站蜘蛛池模板: 亚洲视频精品在线 | 91国内精品久久久久影院优播 | 永久免费91桃色福利 | 国产主播精品福利19禁vip | 精品一区二区久久久久久久网站 | 国产一级免费视频 | 波多野结衣在线播放 | 亚洲欧美日韩天堂 | aaa毛片免费观看 | 国产成人精品免费视频软件 | 亚洲精品成人在线 | 久久久久久毛片免费观看 | 美女张开腿让男人桶爽动漫视频 | 亚洲欧美日韩精品久久久 | 亚洲手机视频 | 自拍小视频在线观看 | 孕妇一级片| 久久无码精品一区二区三区 | 91香蕉视 | 男人天堂久久 | 亚洲精品一区二区三区四 | 中文字幕一区二区小泽玛利亚 | 国产一国产一有一级毛片 | 国产一区二区三区久久精品小说 | 我要看欧美精品一级毛片 | 精品国产品国语在线不卡丶 | 欧美日韩在线播一区二区三区 | 天天看片欧美 | 午夜在线播放免费人成无 | 日韩免费精品一级毛片 | 俄罗斯美女在线观看一区 | 国产首页精品 | 国产三级理论 | 欧美午夜视频在线 | 中文字幕视频在线 | 在线观看日本污污ww网站 | 久久99亚洲精品久久99 | 521a久久九九久久精品 | 国产成人精品综合在线观看 | 中文字幕一区二区三区免费视频 | 成人影院欧美大片免费看 |