官术网_书友最值得收藏!

  • Linux操作系統(tǒng)
  • 邵國金主編
  • 5628字
  • 2019-01-09 15:20:06

1.1 UNIX系統(tǒng)簡介

1.1.1 UNIX系統(tǒng)的發(fā)展歷史

1.Multics與星際旅行

在20世紀(jì)60年代,大部分操作系統(tǒng)為批處理系統(tǒng),交互性差。1965年,AT&T貝爾電話實驗室、通用電氣公司、麻省理工學(xué)院MAC課題組一起聯(lián)合為美國國防部研制開發(fā)一個稱為Multics(MULTiplexed Information and Computing Service)的新操作系統(tǒng)。Multics項目的設(shè)計規(guī)模宏大,可謂“完美”,但是受當(dāng)時計算機軟/硬件水平的影響,最終未能完成設(shè)計目標(biāo)。Multics系統(tǒng)的核心內(nèi)容是能夠很漂亮地支持大群用戶對大型計算機的交互式分時使用。當(dāng)時,用戶與計算機交互表現(xiàn)為用戶在鍵盤上輸入,計算機通過電傳打字機響應(yīng)(因為在當(dāng)時還沒有顯示器)。

Multics項目中止后,當(dāng)貝爾實驗室從Multics研究聯(lián)盟中退出時,Ken Thompson留了下來,寫出一個名叫“星際旅行(Space Travel)”的游戲程序。Ken Thompson找到了一臺廢棄的DEC PDP-7計算機運行他的程序,這臺DEC PDP-7成為“星際旅行”的游戲平臺和Ken Thompson關(guān)于操作系統(tǒng)設(shè)計思路的試驗場。為了使這臺機器運行起來,Ken Thompson把注意力從游戲轉(zhuǎn)向操作系統(tǒng)。

Ken Thompson和Dennis Ritchie一起著手開發(fā)DEC PDP-7上的操作環(huán)境,為支持游戲開發(fā)而在DEC PDP-7上編制的實用程序成為UNIX的核心。這個初期的操作系統(tǒng)只有和現(xiàn)在的UNIX比較之后才能勉強被認出來。它的文件系統(tǒng)很原始,也沒有實行現(xiàn)在這樣的標(biāo)準(zhǔn),沒有分時使用能力。UNIX最初的名字是“UNICS”(Uniplexed Information and Computing Service),在1970年,貝爾實驗室的另一位研究員Brian Kernighan提出UNIX這個名字,UNIX中的UNI與Multi相對應(yīng),意為沒有那么復(fù)雜,而X則是CS的諧音。

當(dāng)時的計算機軟/硬件環(huán)境給UNIX帶來了永久地影響。當(dāng)時計算機硬件的水平相當(dāng)原始,最強大的機器所擁有的計算能力和內(nèi)存還不如現(xiàn)在一個普通的手機。所謂的大硬盤容量不超過1M。視頻顯示終端才剛剛起步,六年以后才得到廣泛應(yīng)用。最早分時系統(tǒng)的標(biāo)準(zhǔn)交互設(shè)備就是ASR-33電傳打字機。因此,只要有可能,UNIX開發(fā)者就使用最短的命令名稱和最短的信息。例如,列目錄命令ls,它本來該是list,雖然只有4個字符,但也被簡化為ls,只剩2個字符。如果UNIX命令執(zhí)行成功了,它通常不給出任何信息,而是給出一個可被查詢的返回碼。UNIX命令簡潔、“少說多做”的傳統(tǒng)正是從這里開始的。

即使在早期,PDP-7 UNIX已經(jīng)擁有現(xiàn)今UNIX的諸多共性,它提供的編程環(huán)境比當(dāng)時讀卡式批處理大型機的環(huán)境要舒服得多。因此,UNIX可以稱得上是第一個能讓程序員直接坐在機器旁,一邊編程一邊測試的聯(lián)機系統(tǒng)。

最初的UNIX用匯編語言寫成,應(yīng)用程序用匯編語言和解釋型語言B混合編寫。B語言小巧、實用,但作為系統(tǒng)編程語言還不夠強大,所以在Dennis Ritchie給它增加了數(shù)據(jù)類型和結(jié)構(gòu)后,于1971年起從B語言演化成為C語言。

1973年11月,Thompson和Ritchie等人用C語言重寫了UNIX,這是UNIX操作系統(tǒng)邁向成功之路的關(guān)鍵一步,也成為“可移植操作系統(tǒng)”的開端。有了C語言之后,可移植操作系統(tǒng)變成現(xiàn)實,使UNIX幾乎可以被移植所有的硬件平臺。1979年,Ritchie評價說:“UNIX的成功在很大程度上源自其以高級語言作為表述方式所帶來的可讀性、可改性和可移植性”。

2.UNIX與黑客文化

與UNIX傳統(tǒng)的歷史交織在一起的有一種隱性文化,一種更難歸類的文化,這是一種傳達著有關(guān)美和優(yōu)秀設(shè)計的價值體系的文化,人們把這種文化稱為“黑客文化”。這里的黑客(hacker)不是現(xiàn)在意義的壞人或搗亂分子,而是水平極高的,熱衷于編程和計算機事業(yè)的優(yōu)秀人士。

1974年,Thompson和Ritchie在《美國計算機通信》(Communications of the ACM)上發(fā)表的一篇論文中第一次公開展示了UNIX。文中作者描述了UNIX前所未有的簡潔設(shè)計,并報告了600多例UNIX應(yīng)用,極大地吸引了黑客和計算機愛好者。

但是,根據(jù)1958年為解決反托拉斯案例達成的和解協(xié)議,AT&T公司不允許從事除“公用通信服務(wù)”外的任何商業(yè)活動,因此,AT&T公司被禁止進入計算機相關(guān)的商業(yè)領(lǐng)域,所以UNIX不能夠成為一種商品。為了滿足黑客和計算機愛好者的需要,AT&T公司在簽署簡單協(xié)議的前提下,將UNIX系統(tǒng)無償?shù)靥峁┙o大學(xué),以供教學(xué)與研究,或通過Ken Thompson默默回應(yīng)請求者,將磁帶和磁盤一包包地寄送出去。

UNIX的發(fā)展迅速籠罩在一層反傳統(tǒng)文化的氛圍中,沒有版權(quán)和費用約束,源代碼可以自由交流,UNIX黑客沉浸在共同編織未來和編寫系統(tǒng)的狂歡中。在當(dāng)時,大部分UNIX程序以源代碼形式配送,由最終用戶把它編譯成可執(zhí)行程序,黑客不僅使用UNIX系統(tǒng),而且還編寫UNIX程序,并交流、修改和共享源代碼。由于眾多黑客的參與,UNIX得到了快速發(fā)展,許多大學(xué)都對UNIX做出過貢獻,多倫多大學(xué)計算機系發(fā)明了200dpi的打印機/繪圖儀,并且開發(fā)了相關(guān)軟件;耶魯大學(xué)的計算機專家和學(xué)生改進了UNIX的shell;普度大學(xué)的電子工程系對UNIX的性能做了重要改進,推出了支持大量用戶的UNIX版本,還推出了最早的UNIX網(wǎng)絡(luò)之一;加州大學(xué)伯克利分校的學(xué)生開發(fā)了新shell和許多小型實用工具。

在UNIX的發(fā)展過程中,加州大學(xué)伯克利分校很早就成為最重要的學(xué)術(shù)熱點,它從1974年就開始研究UNIX,尤其Ken Thompson于1975—1976年年休期間在此教學(xué),更對UNIX的研究注入了強勁活力。1977年,加州大學(xué)伯克利分校畢業(yè)生Bill Joy管理的實驗室發(fā)布了第1版BSD(Berkeley Software Distribution)。1980年,加州大學(xué)伯克利分校成為為這個UNIX變種做積極貢獻的高校子網(wǎng)的核心。從此UNIX走向了以AT&T和加州大學(xué)伯克利分校兩者為主的開發(fā)道路,兩者相互學(xué)習(xí)、相互批評,促進了UNIX的發(fā)展。System V和BSD UNIX成為UNIX的兩大主流,現(xiàn)在大部分的UNIX是它們的衍生品。

3.System V和BSD UNIX

AT&T公司與美國司法部的法律大戰(zhàn)終于在1982年達到終點,AT&T公司被重新允許進

入計算機市場。貝爾實驗室先后在1983年發(fā)行了System V和幾種微處理機上的UNIX;1984年發(fā)行了System V Release2(SVR2);1986年,UNIX System V發(fā)展到了它的修訂版Res2.1和Res3.0;1987年發(fā)行了SVR3。System V引入了許多新特征、新設(shè)施,最有代表性的就是進程間通信機制(IPC)。

UNIX系統(tǒng)的另外一個最重要的分支BSD UNIX的大部分特點(如C Shell、vi編輯器、作業(yè)控制、動態(tài)安裝文件系統(tǒng)和快速文件系統(tǒng))與System V UNIX差不多,但是促使其迅速流行的原因是加州大學(xué)伯克利分校的計算機系統(tǒng)研究小組(CSRG)最早發(fā)表的一個包括頁式內(nèi)存管理的UNIX版本。

FreeBSD是UNIX眾多分支中相當(dāng)優(yōu)秀的一支,是著名的BSD UNIX的一個繼承者,SUN OS和Solaris也是在DSB上發(fā)展起來的。

4.UNIX與TCP/IP

1980年,美國國防部高級研究計劃局(Defense Advanced Research Projects Agency,DARPA)需要請人在UNIX環(huán)境下的VAX機上實現(xiàn)全新的TCP/IP協(xié)議棧。加州大學(xué)伯克利分校在虛存、開放源代碼方面做的工作及其擁有最強大的開發(fā)工具的優(yōu)勢促使美國國防部高級研究計劃局選擇了伯克利分校的UNIX作為平臺,決定支持伯克利分校的UNIX系統(tǒng)開發(fā)。BSD與美國國防部一起成為用UNIX系統(tǒng)實現(xiàn)網(wǎng)絡(luò)互連的推動力量,該項目促進了UNIX的發(fā)展,也促進了TCP/IP的發(fā)展。

1983年夏天,支持TCP/IP協(xié)議版本的UNIX—BSD 4.2公開發(fā)行,宣布TCP/IP的誕生,這具有劃時代意義。有了TCP/IP,一切都變了,它造就了1994年以后的互聯(lián)網(wǎng)大爆炸?,F(xiàn)在網(wǎng)絡(luò)無處不在,無處不有。

在1983年TCP/IP實現(xiàn)隨Berkeley 4.2版發(fā)布之前,UNIX對網(wǎng)絡(luò)的支持一直是薄弱的。早期的以太網(wǎng)實驗不盡如人意,貝爾實驗室開發(fā)了一個難看但能用的工具UUCP,可在普通電話線上通過調(diào)制解調(diào)器來傳送軟件,可以在分布很廣的機器之間轉(zhuǎn)發(fā)郵件,支持Usenet,但是,沒有FTP,沒有telnet,只有限制重重的遠程作業(yè)執(zhí)行和很慢的連接。其他的網(wǎng)絡(luò)方案也在發(fā)展,AT&T和SUN Microsystems都發(fā)表了網(wǎng)絡(luò)文件系統(tǒng),從而把所有網(wǎng)絡(luò)機器的文件系統(tǒng)結(jié)合成一個單獨的大文件系統(tǒng),其中RFS(Remote File System)和NFS(Network File System)至今仍在使用。

5.UNIX向GUI發(fā)展

圖形用戶接口(GUI)在20世紀(jì)70年代或者更早就開始流傳,大部分GUI是從Xerox公司的Palo A1to研究中心的工作中演變而來的。GUI是一個用圖形(稱為圖標(biāo))表示操作系統(tǒng)的組成部分,GUI的最初設(shè)想是創(chuàng)建一個友好的用戶環(huán)境并以一致的隱喻來理解操作系統(tǒng)。GUI使用方便,不是因為容易理解,而是因為使用的—致性,當(dāng)用戶學(xué)會在一種GUI環(huán)境下運行—個程序后,就可以容易地運行相同環(huán)境中的其他程序。

20世紀(jì)80年代初,計算機技術(shù)的發(fā)展使GUI產(chǎn)生了—個大飛躍。DEC和麻省理工合作的Athena計劃,合并了—個基于斯坦福大學(xué)的W窗口系統(tǒng)的窗口系統(tǒng)。沿襲B語言和C語言規(guī)定,新系統(tǒng)命名為X,也稱為X窗口系統(tǒng)。

X很受歡迎,部分原因是其公開的源代碼,更重要的是X窗口現(xiàn)在可以在很多機型和操作系統(tǒng)上運行,而不僅僅是UNIX。然而,X窗口只提供了顯示窗口、圖形和文本的方法,卻沒有定義外觀。開放軟件基金會(OSF)決心建立一個標(biāo)準(zhǔn)的GUI,他們的GUI(稱為Motif)是使用X窗口創(chuàng)建的。另一個流行的GUI是Open Look,由SUN Microsystems提供。

1985年,X窗口系統(tǒng)的創(chuàng)始人發(fā)布了X窗口的源碼,無須版稅、約束和授權(quán)。這項決策的直接結(jié)果就是X窗口成為不同UNIX廠商之間合作的安全中立區(qū),成為UNIX的圖形引擎。

6.UNIX系統(tǒng)的商業(yè)化

UNIX系統(tǒng)的不斷發(fā)展吸引了許多計算機公司,它們開始將UNIX商業(yè)化,出售自己的UNIX產(chǎn)品。每一家都是以AT&T或BSD的系統(tǒng)為藍本,將它們移植到自己的硬件上,并加上一些自己的“增值”功能:SUN Microsystems公司基于BSD開發(fā)、發(fā)行了SUN OS,后來又基于SVR4發(fā)行了Solaris系統(tǒng);微軟與SCO公司合作開發(fā)并發(fā)行了XENIX系統(tǒng);SCO公司將SVR3移植到386上,并將其命名為SCO UNIX;IBM公司開發(fā)了AIX操作系統(tǒng);HP公司開發(fā)了HP-UX;Digital公司開發(fā)了Digital UNIX;還有著名教授Andrew S. Tanenbaum為了教學(xué)開發(fā)的MINIX系統(tǒng),以及可愛的小企鵝——Linux操作系統(tǒng)。

每種商業(yè)變化都增加了許多新特征,這些功能中的許多后來又被加入到主線系統(tǒng)中,逐步推動UNIX系統(tǒng)向前發(fā)展。

7.UNIX系統(tǒng)的標(biāo)準(zhǔn)化

隨著UNIX的商業(yè)化,UNIX的源代碼開始枯竭,各大UNIX廠商也都想通過個性發(fā)展來謀取優(yōu)勢,各種UNIX變種的泛濫造成了許多不兼容問題,這使開發(fā)應(yīng)用的程序員不得不花費大量的精力來保證它們的程序可以運行于各種不同的UNIX系統(tǒng)中。在這種局面下,美國IEEE(Institute of Electrical and Electronics Engineers,美國電氣及電子工程師學(xué)會)組織成立了POSIX(Portable Operation System Interface,可移植操作系統(tǒng)接口標(biāo)準(zhǔn))委員會專門從事UNIX的標(biāo)準(zhǔn)化工作。

POSIX標(biāo)準(zhǔn)是基于現(xiàn)有的UNIX實踐和經(jīng)驗,描述了操作系統(tǒng)的系統(tǒng)調(diào)用接口,用于保證編制的應(yīng)用程序可以在源代碼一級上在多種操作系統(tǒng)上移植運行。UNIX標(biāo)準(zhǔn)意味著一個可以運行UNIX應(yīng)用軟件的平臺,它為用戶提供一個標(biāo)準(zhǔn)的開發(fā)界面,而不在于系統(tǒng)內(nèi)部如何實現(xiàn)。POSIX委員會完成了UNIX系統(tǒng)標(biāo)準(zhǔn)化,各UNIX廠商要按其定義重新實現(xiàn)UNIX。

1.1.2 UNIX系統(tǒng)的特點

對用戶和程序員來說,UNIX操作系統(tǒng)極富個性,它有許多其他實用操作系統(tǒng)所沒有的特點。由于UNIX的多用戶多任務(wù)能力、設(shè)備無關(guān)性及其提供的很多附加工具,有經(jīng)驗的UNIX用戶往往比其他系統(tǒng)的用戶有更高的收益。UNIX的錯誤處理功能可以在程序運行出錯時減少數(shù)據(jù)損失。UNIX使用方便,為用戶、管理人員、顧客及商業(yè)決策人員提供了更大的選擇范圍。

1.多任務(wù)

UNIX是一個多任務(wù)操作系統(tǒng),即可以同時運行多個任務(wù)。通過一個時間分享處理程序,UNIX實現(xiàn)了多任務(wù)。表面上看起來計算機同時為多個程序服務(wù),實際上是在多個進程間很快地切換,由于這些處理發(fā)生很快,所以用戶通常察覺不到。

2.多用戶

除了多任務(wù)能力以外,UNIX還可以同時為多個用戶服務(wù)。UNIX的多用戶主要體現(xiàn)在,允許很多用戶同時在不同的終端工作,使用操作系統(tǒng),執(zhí)行相關(guān)或不相關(guān)的任務(wù),就像每個終端用戶自己擁有一臺單獨的機器。

終端和PC很相似,僅有一個鍵盤和一個顯示器,并用一條電纜連到主機上,但一般來說它不包含處理器。這種終端被人們更形象地稱為啞終端。終端僅能接收鍵盤輸入,并發(fā)送給主機,以及接收主機送來的字符,再將其顯示到顯示器上。某些終端也包含處理器,用以輔助用戶和主機之間轉(zhuǎn)遞數(shù)據(jù),如X終端擁有圖形處理器,可以顯示窗口和其他圖形。

3.并行處理能力

與其他常見的操作系統(tǒng)相比,UNIX是最早支持多處理機的操作系統(tǒng),而且它所支持的處理器數(shù)目也一直處于領(lǐng)先水平。例如,Windows NT能支持1~4個CPU;Windows 2000,最多能支持16個CPU,而UNIX在20世紀(jì)90年代中期就已經(jīng)能支持32~64個CPU。UNIX可以管理數(shù)百個乃至成千上萬個CPU組成的巨型機系統(tǒng)。

4.設(shè)備無關(guān)性

UNIX把設(shè)備作為特殊文件來處理,并分別命名,這樣,在任何使用文件名的地方都可以使用設(shè)備名,通過文件操作可以實現(xiàn)對設(shè)備的操作,并且屏蔽對設(shè)備操作的細節(jié)。由于大部分設(shè)備除共性外還有其獨有的功能,如可以格式化磁盤、回繞磁帶、調(diào)整終端設(shè)置等,因此UNIX提供了專門的命令和函數(shù)執(zhí)行這些操作。

但是,這種靈活性并不意味著可對任何文件或設(shè)備執(zhí)行任意操作,還要考慮設(shè)備的特殊性,如打印機只能用于輸出而不能用于輸入。

5.工具

UNIX在其發(fā)展的最初階段就已采用“工具法”解決問題。每一個“工具”只完成一個簡單任務(wù)。通過工具組合,就可以完成某個工具無法完成的更大的、更復(fù)雜的任務(wù)。

為了組合工具,UNIX提供了管道。管道可以讓數(shù)據(jù)從一個程序流到另一程序,每個程序都可以用某種方式修改數(shù)據(jù)。管道在UNIX命令行中以豎線“|”表示,它看起來確實像一條管道。

工具法在處理更加復(fù)雜的程序集合方面有很多優(yōu)勢:

(1)靈活性??梢越M合實用的工具來完成最復(fù)雜的任務(wù)。

(2)速度快。可以快速完成任務(wù),因為基本的工具程序塊已經(jīng)存在了。

(3)結(jié)構(gòu)化。由于UNIX都使用相同的程序塊,因此鼓勵用戶使用相似的方式解決問題。

工具法也可能會使UNIX的新手感到困惑,因為它可以使用很多種方法進行同一處理,這使習(xí)慣使用圖形接口來解決問題的用戶難以體驗工具法的威力。

6.錯誤處理

由于UNIX是一個多用戶系統(tǒng),所以它必須有很強大的錯誤處理能力。在單用戶系統(tǒng)中,錯誤引起的不便只是關(guān)機和重啟動,而多用戶系統(tǒng)的關(guān)機和重啟動會引起很多的用戶不便,甚至造成嚴(yán)重后果和經(jīng)濟損失。所以,UNIX盡力防止危險性的錯誤也就不足為怪了。

UNIX防止應(yīng)用程序不合理地改寫內(nèi)存,防止用戶有意或偶然刪除不屬于自己的文件;還提供了強大的中斷處理功能以防止“越界”、死循環(huán)等事件的發(fā)生。當(dāng)出現(xiàn)嚴(yán)重錯誤時,UNIX系統(tǒng)保存所有當(dāng)前狀態(tài)的信息然后退出,供熟練的管理和程序人員查找出錯原因。實際上,由于錯誤處理得當(dāng),UNIX系統(tǒng)極少出現(xiàn)失控的情況。

7.強大的網(wǎng)絡(luò)功能

UNIX系統(tǒng)提供了豐富的網(wǎng)絡(luò)功能,是真正的網(wǎng)絡(luò)操作系統(tǒng)。作為Internet網(wǎng)絡(luò)技術(shù)基礎(chǔ)的TCP/IP就是在UNIX上開發(fā)出來的,已經(jīng)成為UNIX系統(tǒng)不可分割的重要組成部分,也為網(wǎng)絡(luò)技術(shù)的發(fā)展可在其他操作系統(tǒng)的應(yīng)用起到了推動和榜樣作用。UNIX系統(tǒng)還提供眾多常用的通信協(xié)議軟件和網(wǎng)絡(luò)服務(wù),通過這些軟件或服務(wù),用戶可輕松實現(xiàn)自己所需的功能或在不同操作系統(tǒng)間實現(xiàn)互連互通。

8.開放性

UNIX系統(tǒng)的本質(zhì)特征是它的開放性,它是目前開放性最好的操作系統(tǒng),是目前唯一能穩(wěn)定運行在從微機、小型機到中型機、大型機的操作系統(tǒng)。所謂開放性是指它遵循統(tǒng)一的國際標(biāo)準(zhǔn)和規(guī)范。開放性已成為20世紀(jì)90年代計算機技術(shù)的核心問題,也是一個系統(tǒng)或軟件是否具有生命力的重要因素。

主站蜘蛛池模板: 花垣县| 富裕县| 绥江县| 凤冈县| 隆尧县| 南靖县| 大足县| 当雄县| 土默特右旗| 伊川县| 平凉市| 巴彦县| 东阿县| 鹤峰县| 遵义县| 衡南县| 越西县| 枞阳县| 会昌县| 分宜县| 泌阳县| 娄底市| 临邑县| 襄汾县| 清涧县| 德保县| 河曲县| 高台县| 镇平县| 普兰店市| 孟连| 日喀则市| 耿马| 武穴市| 盖州市| 卢龙县| 嫩江县| 孟村| 和龙市| 南华县| 宜都市|