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