一、計(jì)算機(jī)軟件與操作系統(tǒng)
功能強(qiáng)大的計(jì)算機(jī)自從走進(jìn)了人類(lèi)的生活就發(fā)揮著越來(lái)越重要的作用,隨著時(shí)代的發(fā)展,計(jì)算機(jī)已與人們的日常生活息息相關(guān)。不能不說(shuō)計(jì)算機(jī)軟件日新月異的發(fā)展在此起著關(guān)鍵作用??梢赃@么說(shuō),離開(kāi)了軟件,計(jì)算機(jī)就成了廢銅爛鐵。計(jì)算機(jī)機(jī)軟件大致可以分為兩類(lèi):系統(tǒng)軟件和應(yīng)用軟件。系統(tǒng)軟件用于管理計(jì)算機(jī)資源,并為應(yīng)用軟件提供一個(gè)統(tǒng)一的平臺(tái)。應(yīng)用軟件則在系統(tǒng)軟件的基礎(chǔ)上實(shí)現(xiàn)用戶(hù)所需要的功能。
而操作系統(tǒng)(Operation System)則是最基本的系統(tǒng)軟件,它控制計(jì)算機(jī)的所有資源關(guān)提供應(yīng)用程序開(kāi)發(fā)的基礎(chǔ)。
二、操作系統(tǒng)誕生的原因
計(jì)算機(jī)是由CPU、內(nèi)存、磁盤(pán)、顯卡、聲卡等許許多多設(shè)備組成的,而且這些設(shè)備的廠商眾多,品種繁多,而且不同廠商生產(chǎn)的同種設(shè)備雖然完成同種功能,但是具體細(xì)節(jié)卻存在千差萬(wàn)別。為了正確地管理和使用這些設(shè)備來(lái)實(shí)現(xiàn)具體的應(yīng)用,這樣程序員就得了解和掌握各種設(shè)備的工作原理。
而且對(duì)于同種設(shè)備,由于不同的硬件廠商在實(shí)現(xiàn)細(xì)節(jié)上的差異使得程序員再次陷入了復(fù)雜的硬件控制的深淵!必須找到一種方法使得程序員從苦海中脫離出來(lái)!多年的研究與發(fā)展終于使得這個(gè)愿望成為現(xiàn)實(shí)。這個(gè)解決方法就是在硬件的基礎(chǔ)上加載一層軟件來(lái)管理整個(gè)系統(tǒng)。這個(gè)軟件通過(guò)設(shè)備驅(qū)動(dòng)程序來(lái)與計(jì)算機(jī)硬件打交道,通過(guò)一系列的功能模塊將整個(gè)計(jì)算機(jī)硬件系統(tǒng)抽象成為一個(gè)公共、統(tǒng)一、開(kāi)放的接口—虛擬機(jī),從而使得程序員不必再陷入各種硬件系統(tǒng)的具體細(xì)節(jié)!這一層軟件就是操作系統(tǒng)。
三、什么是操作系統(tǒng)
操作系統(tǒng)是一個(gè)大型的軟件系統(tǒng),其功能復(fù)雜,體系龐大。從不同的角度看的結(jié)果也不同,正是“橫看成嶺側(cè)成峰”,下面我們通過(guò)最典型的兩個(gè)角度來(lái)分析一下。
1.從程序員的角度看
正如前面所說(shuō)的,如果沒(méi)有操作系統(tǒng),程序員在開(kāi)發(fā)軟件的時(shí)候就必須陷入復(fù)雜的硬件實(shí)現(xiàn)細(xì)節(jié)。程序員并不想涉足這個(gè)可怕的領(lǐng)域,而且大量的精力花費(fèi)在這個(gè)重復(fù)的、沒(méi)有創(chuàng)造性的工作上也使得程序員無(wú)法集中精力放在更具有創(chuàng)造性的程序設(shè)計(jì)工作中去。程序員需要的是一種簡(jiǎn)單的,高度抽象的可以與之打交道的設(shè)備。將硬件細(xì)節(jié)與程序員隔離開(kāi)來(lái),這當(dāng)然就是操作系統(tǒng)。從這個(gè)角度看,操作系統(tǒng)的作用是為用戶(hù)提供一臺(tái)等價(jià)的擴(kuò)展機(jī)器,也稱(chēng)虛擬機(jī),它比底層硬件更容易編程。
2.從使用者的角度看
從使用者的角度來(lái)看,操作系統(tǒng)則用來(lái)管理一個(gè)復(fù)雜系統(tǒng)的各個(gè)部分。操作系統(tǒng)負(fù)責(zé)在相互競(jìng)爭(zhēng)的程序之間有序地控制對(duì)CPU、內(nèi)存及其它I/O接口設(shè)備的分配。
比如說(shuō),假設(shè)在一臺(tái)計(jì)算機(jī)上運(yùn)行的三個(gè)程序試圖同時(shí)在同一臺(tái)打印機(jī)上輸出計(jì)算結(jié)果。那么頭幾行可能是程序1的輸出,下幾行是程序2的輸出,然后又是程序3的輸出等等。最終結(jié)果將是一團(tuán)糟。這時(shí),操作系統(tǒng)采用將打印輸出送到磁盤(pán)上的緩沖區(qū)的方法就可以避免這種混亂。在一個(gè)程序結(jié)束后,操作系統(tǒng)可以將暫存在磁盤(pán)上的文件送到打印機(jī)輸出。從這種角度來(lái)看,操作系統(tǒng)則是系統(tǒng)的資源管理者。
四、操作系統(tǒng)發(fā)展歷史
下面我們結(jié)合計(jì)算機(jī)的發(fā)展歷史來(lái)回顧一下操作系統(tǒng)的發(fā)展歷程。
1.第一代計(jì)算機(jī)(1945-1955):真空管和插件板
40年代中期,美國(guó)哈佛大學(xué)、普林斯頓高等研究院、賓夕法尼亞大學(xué)的一些人使用數(shù)萬(wàn)個(gè)真空管,構(gòu)建了世界上第一臺(tái)電子計(jì)算機(jī)。開(kāi)啟計(jì)算機(jī)發(fā)展的歷史。這個(gè)時(shí)期的機(jī)器需要一個(gè)小組專(zhuān)門(mén)設(shè)計(jì)、制造、編程、操作、維護(hù)每臺(tái)機(jī)器。程序設(shè)計(jì)使用機(jī)器語(yǔ)言,通過(guò)插板上的硬連線(xiàn)來(lái)控制其基本功能。
這個(gè)時(shí)候處于計(jì)算機(jī)發(fā)展的最初階段,連程序設(shè)計(jì)語(yǔ)言都還沒(méi)有出現(xiàn),操作系統(tǒng)更是聞所未聞!
2.第二代計(jì)算機(jī)(1955-1965):晶體管和批處理系統(tǒng)
這個(gè)時(shí)期計(jì)算機(jī)越來(lái)越可靠,已從研究院中走出來(lái),走進(jìn)了商業(yè)應(yīng)用。但這個(gè)時(shí)期的計(jì)算機(jī)主要完成各種科學(xué)計(jì)算,需要專(zhuān)門(mén)的操作人員維護(hù),并且需要針對(duì)每次的計(jì)算任務(wù)進(jìn)行編程。
第二代計(jì)算機(jī)主要用于科學(xué)與工程計(jì)算。使用FORTRAN與匯編語(yǔ)言編寫(xiě)程序。在后期出現(xiàn)了操作系統(tǒng)的雛形:FMS(FORTRAN監(jiān)控系統(tǒng))和IBMSYS(IBM為7094機(jī)配備的操作系統(tǒng))
3.第三代計(jì)算機(jī)(1965-1980):集成電路芯片和多道程序
60年代初,計(jì)算機(jī)廠商根據(jù)不同的應(yīng)用分成了兩個(gè)計(jì)算機(jī)系列,一個(gè)針對(duì)科學(xué)計(jì)算,一個(gè)針對(duì)商業(yè)應(yīng)用。隨著計(jì)算機(jī)應(yīng)用的深入,對(duì)統(tǒng)一兩種應(yīng)用的計(jì)算機(jī)需求出現(xiàn)了。這時(shí)IBM公司試圖通過(guò)引入System/360來(lái)解決這個(gè)問(wèn)題。與這個(gè)計(jì)劃配套,IBM公司組織了OS/360操作系統(tǒng)的開(kāi)發(fā),然后復(fù)雜的需求,以及當(dāng)時(shí)軟件工程水平低下使得OS/360的開(kāi)發(fā)工作陷入了歷史以來(lái)最可怕的“軟件開(kāi)發(fā)泥潭”,誕生了最著名的失敗論著----《神秘的人月》。雖然這個(gè)開(kāi)發(fā)計(jì)劃失敗了,但是這個(gè)愿望卻成為了計(jì)算機(jī)廠商的目標(biāo)。此時(shí),MIT、BellLab(貝爾實(shí)驗(yàn)室)和通用電氣公司決定開(kāi)發(fā)一種“公用計(jì)算機(jī)服務(wù)系統(tǒng)”----MULTICS,希望其能同時(shí)支持?jǐn)?shù)百名分時(shí)用戶(hù)的一種機(jī)器。結(jié)果這個(gè)計(jì)劃的研制難度超出了所有人的預(yù)料,最后這個(gè)系統(tǒng)也以失敗結(jié)束。不過(guò),MULTICS的思想?yún)s為后來(lái)的操作系統(tǒng)很多提示。60年代未,一位貝爾實(shí)驗(yàn)室曾參加過(guò)MULTICS研制工作的計(jì)算機(jī)科學(xué)家KenThompson,在一臺(tái)無(wú)人使用的PDP-7機(jī)器上開(kāi)發(fā)出了一套簡(jiǎn)化的、單用戶(hù)版的MULTICS。后來(lái)導(dǎo)致了UNIX操作系統(tǒng)的誕生。目前UNIX操作系統(tǒng)主導(dǎo)了小型機(jī)、工作站以及其他市場(chǎng)。也是至今最有影響力的操作系統(tǒng)之一,而Linux也是UNIX系統(tǒng)的一種衍生,下一講我們將專(zhuān)門(mén)介紹一下UNIX的發(fā)展歷史。
4.第四代計(jì)算機(jī)(1980-今):個(gè)人計(jì)算機(jī)
隨著計(jì)算機(jī)技術(shù)的不斷更新與發(fā)展,計(jì)算機(jī)神奇般地闖入了人們的生活,現(xiàn)在以低廉的價(jià)格就可以獲得強(qiáng)大計(jì)算能力的計(jì)算機(jī)。價(jià)格不再是阻攔計(jì)算機(jī)普及的門(mén)檻時(shí),降低計(jì)算機(jī)的易用性就顯得十分重要!由于UNIX系統(tǒng)的本身特點(diǎn),使得其不太適合于在運(yùn)行在個(gè)人計(jì)算機(jī)上,這時(shí)就需要一種新的操作系統(tǒng)。在這一歷史關(guān)鍵時(shí)候,IBM公司由于低估了PC機(jī)的市場(chǎng),并未使用最大的力量角逐這一市場(chǎng),這時(shí)Intel公司趁機(jī)進(jìn)入,成為了當(dāng)今微處理器的老大。同時(shí)善于抓住時(shí)機(jī)的微軟公司的總裁比爾·蓋茨適時(shí)地進(jìn)入了這一領(lǐng)域,用購(gòu)買(mǎi)來(lái)的CP/M搖身一變成為MS-DOS,并憑借其成為個(gè)人計(jì)算機(jī)操作系統(tǒng)領(lǐng)域的霸主。雖然是蘋(píng)果公司在GUI方面先拔頭籌,但由于蘋(píng)果公司的不兼容、不開(kāi)放的市場(chǎng)策略,未能擴(kuò)大戰(zhàn)果,這時(shí)微軟又適時(shí)地進(jìn)入了GUI方面,憑借WINDOWS系統(tǒng)再次稱(chēng)雄!
五、操作系統(tǒng)構(gòu)成
一般來(lái)說(shuō),操作系統(tǒng)由以下幾個(gè)部分組成:
1)進(jìn)程調(diào)度子系統(tǒng):進(jìn)程調(diào)度子系統(tǒng)決定哪個(gè)進(jìn)程使用CPU,對(duì)進(jìn)程進(jìn)行調(diào)度、管理。
2)進(jìn)程間通信子系統(tǒng): 負(fù)責(zé)各個(gè)進(jìn)程之間的通信。
3)內(nèi)存管理子系統(tǒng):負(fù)責(zé)管理計(jì)算機(jī)內(nèi)存。
4)設(shè)備管理子系統(tǒng):負(fù)責(zé)管理各種計(jì)算機(jī)外設(shè),主要由設(shè)備驅(qū)動(dòng)程序構(gòu)成。
5)文件子系統(tǒng):負(fù)責(zé)管理磁盤(pán)上的各種文件、目錄!
6)網(wǎng)絡(luò)子系統(tǒng):負(fù)責(zé)處理各種與網(wǎng)絡(luò)有關(guān)的東西。
六、操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
操作系統(tǒng)有多種實(shí)現(xiàn)方法與設(shè)計(jì)思路,下面僅選取最有代表性的三種做一簡(jiǎn)單的敘述。
1、整體式系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 這是最常用的一種組織方式,它常被譽(yù)為“大雜燴”,也可說(shuō),整體式系統(tǒng)結(jié)構(gòu)就是“無(wú)結(jié)構(gòu)”。
這種結(jié)構(gòu)方式下,開(kāi)發(fā)人員為了構(gòu)造最終的目標(biāo)操作系統(tǒng)程序,首先將一些獨(dú)立的過(guò)程,或包含過(guò)程的文件進(jìn)行編譯,然后用鏈接程序?qū)⑺鼈冩溄映蔀橐粋€(gè)單獨(dú)的目標(biāo)程序。Linux操作系統(tǒng)就是采用整體式的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)。但其在此基礎(chǔ)上增加了一些形如動(dòng)態(tài)模塊加載等方法來(lái)提高整體的靈活性,彌補(bǔ)整體式系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的不足。
2.層次式系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 這種方式則是對(duì)系統(tǒng)進(jìn)行嚴(yán)格的分層,使得整個(gè)系統(tǒng)層次分明,等級(jí)森嚴(yán)!這種系統(tǒng)學(xué)術(shù)味道較濃!實(shí)際完全按照這種結(jié)構(gòu)進(jìn)行設(shè)計(jì)的操作系統(tǒng)不多,也沒(méi)有廣泛的應(yīng)用。
可以這么說(shuō),現(xiàn)在的操作系統(tǒng)設(shè)計(jì)是在整體式系統(tǒng)結(jié)構(gòu)與層次式系統(tǒng)結(jié)構(gòu)設(shè)計(jì)中尋求平衡。
3.微內(nèi)核系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 而微內(nèi)核系統(tǒng)結(jié)構(gòu)設(shè)計(jì)則是近幾年來(lái)出現(xiàn)的一種新的設(shè)計(jì)理念,最有代表性的操作系統(tǒng)有Mach和QNX。微內(nèi)核系統(tǒng),顧名思義就是系統(tǒng)內(nèi)核很?。”热缯f(shuō)QNX的微內(nèi)核只負(fù)責(zé):
¨ 進(jìn)程間的通信
¨ 低層的網(wǎng)絡(luò)通信
¨ 進(jìn)程調(diào)度
¨ 第一級(jí)中斷處理
七、操作系統(tǒng)橫向比較
計(jì)算機(jī)歷史中出現(xiàn)了許許多多的操作系統(tǒng),然后大浪淘沙,無(wú)情地淘汰了許多,只留下一些經(jīng)歷過(guò)市場(chǎng)考驗(yàn)的:
1.桌面操作系統(tǒng):
1)MSDOS:Intel x86系列的PC機(jī)上的最早的操作系統(tǒng),微軟公司產(chǎn)品,曾經(jīng)統(tǒng)治了這個(gè)領(lǐng)域,現(xiàn)在已逐漸被自家兄弟WINDOWS
9x系列所代替,現(xiàn)在除了一些低檔機(jī)外已不多見(jiàn)。
2)Windows 9x:微軟公司產(chǎn)品,從Windows 3.x發(fā)展而來(lái),現(xiàn)在是基于Intel
x86系列的PC機(jī)上的主要操作系統(tǒng),也是現(xiàn)然個(gè)人電腦中裝機(jī)量最大的操作系統(tǒng)。面向桌面、面向個(gè)人用戶(hù)。
3)Mac OS:蘋(píng)果公司所有,界面友好,性能優(yōu)異,但由于只能運(yùn)行在蘋(píng)果公司自己的電腦上而發(fā)展有限。但由于蘋(píng)果電腦獨(dú)特的市場(chǎng)定位,現(xiàn)在仍存活良好。
2.服務(wù)器操作系統(tǒng):
1)UNIX系列:UNIX可以說(shuō)是源遠(yuǎn)流長(zhǎng),是一個(gè)真正穩(wěn)健、實(shí)用、強(qiáng)大的操作系統(tǒng),但是由于眾多廠商在其基礎(chǔ)上開(kāi)發(fā)了有自己特色的UNIX版本,所以影響了整體。在國(guó)外,UNIX系統(tǒng)可謂獨(dú)樹(shù)一幟,廣泛應(yīng)用于科研、學(xué)校、金融等關(guān)鍵領(lǐng)域。但由于中國(guó)的計(jì)算機(jī)發(fā)展較為落后,UNIX系統(tǒng)的應(yīng)用水平與國(guó)外相比有一定的滯后。
2)Windows NT系列:微軟公司產(chǎn)品,其利用Windows的友好的用戶(hù)界面的優(yōu)勢(shì)打進(jìn)服務(wù)器操作系統(tǒng)市場(chǎng)。但其在整體性能、效率、穩(wěn)定性上都與UNIX有一定差距,所以現(xiàn)在主要應(yīng)用于中小企業(yè)市場(chǎng)。
3)Novell Netware系列:Novell公司產(chǎn)品,其以極適合于中小網(wǎng)絡(luò)而著稱(chēng),在中國(guó)的證券行業(yè)市場(chǎng)占有率極高,而且其產(chǎn)品特點(diǎn)鮮明,仍然是服務(wù)器系統(tǒng)軟件中的長(zhǎng)青樹(shù)。