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