操作系統(Operating System,簡(jiǎn)稱(chēng)OS),是電子計算機系統中負責支撐應用程序運行環(huán)境以及用戶(hù)操作環(huán)境的系統軟件,同時(shí)也是計算機系統的核心與基石。它的職責常包括對硬件的直接監管、對各種計算資源(如內存、處理器時(shí)間等)的管理、以及提供諸如作業(yè)管理之類(lèi)的面向應用程序的服務(wù)等等。
操作系統的理論是計算機科學(xué)中一個(gè)古老而又活躍的分支,而操作系統的設計與實(shí)現則是軟件工業(yè)的基礎與核心。
目錄[隱藏] |
至2005年為止,用于通用計算機上的分布的操作系統主要兩個(gè)家族:類(lèi)Unix家族和微軟Windows家族。而主機系統和嵌入式操作系統使用多樣的系統,并且很多和Windows、Unix都沒(méi)有直接的聯(lián)系。
類(lèi)Unix家族包括多個(gè)組織的操作系統,其中有幾個(gè)主要的子類(lèi)包括System V、BSD和服務(wù)器系統以及學(xué)院和工程環(huán)境中的工作站之上。和AT&T Unix不同,自由軟件比如Linux和BSD逐步開(kāi)始流行,并且開(kāi)始進(jìn)入桌面操作系統領(lǐng)域。和一些Unix操作系統不同,像惠普公司的HP-UX和IBM公司的AIX是設計僅運行在客戶(hù)購買(mǎi)的設備上,其中有一些特殊的(比如SUN的Solaris)可以運行在客戶(hù)購買(mǎi)設備和基于工業(yè)標準的PC上。蘋(píng)果計算機的Mac OS X是一個(gè)BSD特例,以取代早期小型市場(chǎng)上的蘋(píng)果公司Mac OS,眾多流行的Unix操作系統正在走向一體。
微軟公司的Windows操作系統家族起源于早期的IBM PC環(huán)境中的MS-DOS,現在版本是基于新的Windows NT內核,第一次是在OS/2中制定。與Unix不同,Windows只能運行在32位和64位的x86 CPU(如Intel或者AMD的芯片)上,盡管早期有版本運行于DEC Alpha,MIPS 和 PowerPC體系結構。今天Windows是一個(gè)流行的操作系統,在全球桌面市場(chǎng)中占有90%左右的份額,同時(shí)在中低端服務(wù)器市場(chǎng)也有廣泛的應用,如Web服務(wù)器和數據庫服務(wù)器。
大型機系統,比如IBM公司的Z/OS,和嵌入式操作系統比如QNX、ECOS和PalmOS都是與Unix和Windows無(wú)關(guān)的操作系統,而Windows CE、Windows NT Embedded 4.0和Windows XP Embedded都是與Windows相關(guān)的。
老的操作系統停留在市場(chǎng)包括類(lèi)似IBM Windows的OS/2、來(lái)自惠普的VMS(以前的DEC);蘋(píng)果公司的Mac OS操作系統、非Unix先驅蘋(píng)果公司Mac OS X,以及AmigaOS,第一個(gè)圖形用戶(hù)界面的操作系統,包括對于普通用戶(hù)的高級的多媒體能力。
操作系統位于底層硬件與用戶(hù)之間,是兩者溝通的橋梁。用戶(hù)可以通過(guò)操作系統的用戶(hù)界面,輸入命令。操作系統則對命令進(jìn)行解釋?zhuān)寗?dòng)硬件設備,實(shí)現用戶(hù)要求。
操作系統理論研究者有時(shí)把操作系統分成四大部分:
當然,本節所提出的四部結構觀(guān)也絕非放之四海皆準。例如,在早期的微軟視窗操作系統中,各部分耦合程度很深,難以區分彼此。而在使用外核結構的操作系統中,則根本沒(méi)有驅動(dòng)程序的概念。因而,本節的討論只適用于一般情況,具體特例需具體分析。
操作系統中四大部分的不同布局,也就形成了幾種整體結構。常見(jiàn)的結構包括:簡(jiǎn)單結構、層結構、微內核結構、垂直結構、和虛擬機(Virtual Machine)結構。
很多商用操作系統都沒(méi)有清晰的整體結構,系統中的各個(gè)部件混雜在一起。這些操作系統往往是由很小的實(shí)驗性的項目逐步演化而來(lái)的,因而宏觀(guān)結構非常模糊。
MS-DOS就是一個(gè)很好的例子,在設計之初,MS-DOS的設計目標是在比較有限的硬件資源上運行比較有限的應用程序,開(kāi)發(fā)人員很可能都沒(méi)有預料到它日后在市場(chǎng)上的巨大成功,因而模塊之間的相對獨立性幾乎被忽略。
相似的情況也發(fā)生在UNIX家族之中。早期的UNIX因為受限于當時(shí)的硬件能力,也一直都是采用非常簡(jiǎn)單的整體結構、隨著(zhù)UNIX的不斷發(fā)展這樣的結構也很快成為了UNIX演進(jìn)的瓶頸。其它采用這種簡(jiǎn)單結構的操作系統還包括PalmOS 5以前的PalmOS,以及很多其它的小型的嵌入式操作系統。
內核是操作系統最核心最基礎的構件,因而,內核結構往往對操作系統的外部特性以及應用領(lǐng)域有著(zhù)一定程度的影響。盡管隨著(zhù)理論和實(shí)踐的不斷演進(jìn),操作系統高層特性與內核結構之間的耦合有日趨縮小之勢,但習慣上,內核結構仍然是操作系統分類(lèi)之常用標準。
內核的結構可以分為單內核(monolithic kernel)、微內核(microkernel)、超微內核(nanokernel)、以及外核(exokernel)等。詳情參見(jiàn)操作系統內核。
單內核結構是操作系統中各核心部件雜然混居的形態(tài),該結構于1960年代(亦有1950年代初之說(shuō),尚存爭議),歷史最長(cháng),是操作系統內核與外圍分離時(shí)的最初形態(tài)。
微內核結構是1980年代產(chǎn)生出來(lái)的較新的內核結構,強調結構性部件與功能性部件的分離。20世紀末,基于微內核結構,理論界中又發(fā)展出了超微內核與外內核等多種結構。盡管自1980年代起,大部分理論研究都集中在以微內核為首的“新興”結構之上,然而,在應用領(lǐng)域之中,以單內核結構為基礎的操作系統卻一直占據著(zhù)主導地位。
在眾多常用操作系統之中,除了QNX和基于Mach的UNIX等個(gè)別系統外,幾乎全部采用單內核結構,例如大部分的Unix、Linux,以及Windows(微軟聲稱(chēng)Windows NT是基于改良的微內核架構的,盡管理論界對此存有異議)。微內核和超微內核結構主要用于研究性操作系統,還有一些嵌入式系統使用外核。
基于單內核的操作系統通常有著(zhù)較長(cháng)的歷史淵源。例如,絕大部分UNIX的家族史都可上溯至1960年代。該類(lèi)操作系統多數有著(zhù)相對古老的設計和實(shí)現(例如某些UNIX中存在著(zhù)大量1970年代、1980年代的代碼)。另外,往往在性能方面略?xún)?yōu)于同一應用領(lǐng)域中采用其它內核結構的操作系統(但通常認為此種性能優(yōu)勢不能完全歸功于單內核結構)。
“實(shí)時(shí)操作系統”(Real Time OS)泛指所有據有一定實(shí)時(shí)資源調度以及通訊能力的操作系統。而所謂“實(shí)時(shí)”,不同語(yǔ)境中往往有著(zhù)非常不同的意義。某些時(shí)候僅僅用作“高性能”的同義詞。但在操作系統理論中“實(shí)時(shí)性”所指的通常是特定操作所消耗的時(shí)間(以及空間)的上限是可預知的。比如,如果說(shuō)某個(gè)操作系統提供實(shí)時(shí)內存分配操作,那也就是說(shuō)一個(gè)內存分配操作所用時(shí)間(及空間)無(wú)論如何也不會(huì )超出操作系統所承諾的上限。實(shí)時(shí)性在某些領(lǐng)域非常重要,比如在工業(yè)控制、醫療器材、影音頻合成、以及軍事領(lǐng)域,實(shí)時(shí)性都是無(wú)可或缺的特性。
常用實(shí)時(shí)操作系統有QNX、VxWorks、RTLinux等等,而Linux、多數UNIX、以及多數Windows家族成員等都屬于非實(shí)時(shí)操作系統。操作系統整體的實(shí)時(shí)性通常依仗內核的實(shí)時(shí)能力,但有時(shí)也可在非實(shí)時(shí)內核上建立實(shí)時(shí)操作系統,很多在Windows上建立的實(shí)時(shí)操作系統就屬于此類(lèi)。
在POSIX標準中專(zhuān)有一系用于規范實(shí)時(shí)操作系統的API,其中包括POSIX.4、POSIX.4a、POSIX.4b(合稱(chēng)POSIX.4)以及POSIX.13等等。符合POSIX.4的操作系統通常被認可為實(shí)時(shí)操作系統(但實(shí)時(shí)操作系統并不需要符合POSIX.4標準)。
所謂8位、16位、32位、64位等術(shù)語(yǔ)有時(shí)指總線(xiàn)寬度,有時(shí)指指令寬度(在定長(cháng)指令集中),而在操作系統理論中主要是指內存尋址的寬度。如果內存的尋址寬度是16位,那么每一個(gè)內存地址可以用16個(gè)二進(jìn)制位來(lái)表示,也就是說(shuō)可以在64KB的范圍內尋址。同樣道理32位的寬度對應4GB的尋址范圍,64位的寬度對應16 Exabyte的尋址范圍。內存尋址范圍并非僅僅是對操作系統而言的,其它類(lèi)型的軟件的設計有時(shí)也會(huì )被尋址范圍而影響。但是在操作系統的設計與實(shí)現中,尋址范圍卻有著(zhù)更為重要的意義。
在早期的16位操作系統中,由于64KB的尋址范圍太小,大都都采用「段」加「線(xiàn)性地址」的二維平面地址空間的設計。分配內存時(shí)通常需要考慮「段置換」的問(wèn)題,同時(shí),應用程序所能夠使用的地址空間也往往有比較小的上限。
在32位操作系統中,4GB的尋址范圍對于一般應用程序來(lái)說(shuō)是綽綽有余的,因而,通常使用一維的線(xiàn)性地址空間,而不使用「段」。
聯(lián)系客服