操作系統(tǒng)
歷史
各類平臺上操作系統(tǒng)的功能演化
綜觀電腦之歷史,操作系統(tǒng)與電腦硬件的發(fā)展息息相關(guān)。操作系統(tǒng)之本意原為提供簡單的工作排序能力,后為輔助更新更復(fù)雜的硬件設(shè)施而漸漸演化。從最早的批量模式開始,分時機(jī)制也隨之出現(xiàn),在多處理器時代來臨時,操作系統(tǒng)也隨之添加多處理器協(xié)調(diào)功能,甚至是分布式系統(tǒng)的協(xié)調(diào)功能。其他方面的演變也類似于此。另一方面,在個人電腦上,個人電腦之操作系統(tǒng)因襲大型機(jī)的成長之路,在硬件越來越復(fù)雜、強(qiáng)大時,也逐步實(shí)踐以往衹有大型機(jī)才有的功能。
總而言之,操作系統(tǒng)的歷史就是一部解決電腦系統(tǒng)需求與問題的歷史。
1980年代前
IBM System/360,大型主機(jī)的經(jīng)典之作
第一部電腦并沒有操作系統(tǒng)。這是由于早期電腦的創(chuàng)建方式(如同建造機(jī)械算盤)與性能不足以運(yùn)行如此程序。但在1947年發(fā)明了晶體管,以及莫里斯·威爾克斯發(fā)明的微程序方法,使得電腦不再是機(jī)械設(shè)備,而是電子產(chǎn)品。系統(tǒng)管理工具以及簡化硬件操作流程的程序很快就出現(xiàn)了,且成為操作系統(tǒng)的濫觴。到了1960年代早期,商用電腦制造商制造了批處理系統(tǒng),此系統(tǒng)可將工作的建置、調(diào)度以及運(yùn)行序列化。此時,廠商為每一臺不同型號的電腦創(chuàng)造不同的操作系統(tǒng),因此為某電腦而寫的程序無法移植到其他電腦上運(yùn)行,即使是同型號的電腦也不行。
到了1964年,IBMSystem/360推出了一系列用途與價(jià)位都不同的大型機(jī),而它們都共用代號為OS/360的操作系統(tǒng)(而非每種產(chǎn)品都用量身訂做的操作系統(tǒng))。讓單一操作系統(tǒng)適用于整個系列的產(chǎn)品是System/360成功的關(guān)鍵,且實(shí)際上IBM目前的大型系統(tǒng)便是此系統(tǒng)的后裔,為System/360所寫的應(yīng)用程序依然可以在現(xiàn)代的IBM機(jī)器上運(yùn)行。
OS/360也包含另一個優(yōu)點(diǎn):永久貯存設(shè)備—硬盤的面世(IBM稱為DASD)。另一個關(guān)鍵是分時概念的創(chuàng)建:將大型機(jī)珍貴的時間資源適當(dāng)分配到所有用戶身上。分時也讓用戶有獨(dú)占整部機(jī)器的感覺;而Multics的分時系統(tǒng)是此時眾多新操作系統(tǒng)中實(shí)踐此觀念最成功的。
1963年,奇異公司與貝爾實(shí)驗(yàn)室合作以PL/I語言創(chuàng)建的Multics ,是激發(fā)1970年代眾多操作系統(tǒng)創(chuàng)建的靈感來源,尤其是由AT&T;貝爾實(shí)驗(yàn)室的丹尼斯·里奇與肯·湯普遜所創(chuàng)建的Unix系統(tǒng),為了實(shí)踐平臺移植能力,此操作系統(tǒng)在1973年由C語言重寫;另一個廣為市場采用的小型電腦操作系統(tǒng)是VMS。
1980年代
第一代微型計(jì)算機(jī)并不像大型機(jī)或小型電腦,沒有裝設(shè)操作系統(tǒng)的需求或能力;它們只需要最基本的操作系統(tǒng),通常這種操作系統(tǒng)都是從ROM讀取的,此種程序被稱為監(jiān)視程序(Monitor)。1980年代,家用電腦開始普及。通常此時的電腦擁有8-bit處理器加上64KB內(nèi)存、顯示器、鍵盤以及低音質(zhì)喇叭。而80年代早期最著名的套裝電腦為使用微處理器6510(6502芯片特別版)的Commodore C64。此電腦沒有操作系統(tǒng),而是以一8KB唯讀記憶體BIOS初始化彩色顯示器、鍵盤以及軟盤驅(qū)動器和打印機(jī)。它可用8KB唯讀記憶體BASIC語言來直接操作BIOS,并依此撰寫程序,大部分是游戲。此BASIC語言的解釋器勉強(qiáng)可算是此電腦的操作系統(tǒng),當(dāng)然就沒有內(nèi)核或軟硬件保護(hù)機(jī)制了。此電腦上的游戲大多跳過BIOS層次,直接控制硬件。
早期最著名的磁盤引導(dǎo)型操作系統(tǒng)是CP/M,它支持許多早期的微電腦,且被MS-DOS大量抄襲其功能。最早期的IBM PC其架構(gòu)類似C64。當(dāng)然它們也使用了BIOS以初始化與抽象化硬件的操作,甚至也附了一個BASIC解釋器!但是它的BASIC優(yōu)于其他公司產(chǎn)品的原因在于他有可攜性,并且兼容于任何匹配IBM PC架構(gòu)的機(jī)器上。這樣的PC可利用Intel-8088處理器(16-bit寄存器)定址,并最多可有1MB的內(nèi)存,然而最初只有640KB。軟式磁盤驅(qū)動器取代了過去的磁帶機(jī),成為新一代的存儲設(shè)備,并可在他512KB的空間上讀寫。為了支持更進(jìn)一步的文件讀寫概念,磁盤操作系統(tǒng)(Disk Operating System,DOS)因而誕生。此操作系統(tǒng)可以合并任意數(shù)量的扇區(qū),因此可以在一張磁盤片上放置任意數(shù)量與大小的文件。文件之間以檔名區(qū)別。IBM并沒有很在意其上的DOS,因此以向外部公司購買的方式獲取操作系統(tǒng)。1980年微軟公司獲取了與IBM的合約,并且收購了一家公司出產(chǎn)的操作系統(tǒng),在將之修改后以MS-DOS的名義出品,此操作系統(tǒng)可以直接讓程序操作BIOS與文件系統(tǒng)。到了Intel-80286處理器的時代,才開始實(shí)現(xiàn)基本的存儲設(shè)備保護(hù)措施。MS-DOS的架構(gòu)并不足以滿足所有需求,因?yàn)樗瑫r衹能運(yùn)行最多一個程序(如果想要同時運(yùn)行程序,只能使用ISR(中斷處理函數(shù))的方式來跳過OS而由程序自行處理多任務(wù)的部分),且沒有任何內(nèi)存保護(hù)措施。對驅(qū)動程序的支持也不夠完整,因此導(dǎo)致諸如音效設(shè)備必須由程序自行設(shè)置的狀況,造成不兼容的情況所在多有。某些操作的性能也是可怕地糟糕。許多應(yīng)用程序因此跳過MS-DOS的服務(wù)程序,而直接訪問硬件設(shè)備以獲取較好的性能。雖然如此,但MS-DOS還是變成了IBM PC上面最常用的操作系統(tǒng)(IBM自己也有推出DOS,稱為IBM-DOS或PC-DOS)。MS-DOS的成功使得微軟成為地球上最賺錢的公司之一。
而1980年代另一個崛起的操作系統(tǒng)異數(shù)是Mac OS,此操作系統(tǒng)緊緊與麥金塔電腦捆綁在一起。此時一位施樂帕羅奧多研究中心的員工Dominik Hagen訪問了蘋果電腦的史蒂夫·喬布斯,并且向他展示了此時施樂發(fā)展的圖形用戶界面。蘋果電腦驚為天人,并打算向施樂購買此技術(shù),但因帕羅奧多研究中心并非商業(yè)單位而是研究單位,因此施樂回絕了這項(xiàng)買賣。在此之后蘋果一致認(rèn)為個人電腦的未來必定屬于圖形用戶界面,因此也開始發(fā)展自己的圖形化操作系統(tǒng)?,F(xiàn)今許多我們認(rèn)為是基本要件的圖形化接口技術(shù)與規(guī)則,都是由蘋果電腦打下的基礎(chǔ)(例如下拉菜單、桌面圖標(biāo)、拖曳式操作與雙點(diǎn)擊等)。但正確來說,圖形用戶界面的確是施樂創(chuàng)始的。
1990年代
Apple I電腦,蘋果電腦的第一代產(chǎn)品。
延續(xù)1980年代的競爭,1990年代出現(xiàn)了許多影響未來個人電腦市場深厚的操作系統(tǒng)。由于圖形用戶界面日趨繁復(fù),操作系統(tǒng)的能力也越來越復(fù)雜與巨大,因此強(qiáng)韌且具有彈性的操作系統(tǒng)就成了迫切的需求。此年代是許多套裝類的個人電腦操作系統(tǒng)互相競爭的時代。
上一年代于市場崛起的蘋果電腦,由于舊系統(tǒng)的設(shè)計(jì)不良,使得其后繼發(fā)展不力,蘋果電腦決定重新設(shè)計(jì)操作系統(tǒng)。經(jīng)過許多失敗的項(xiàng)目后,蘋果于1997年發(fā)布新操作系統(tǒng)——Mac OS X的測試版,而后推出的正式版獲取了巨大的成功。讓原先失意離開蘋果的史蒂夫·喬布斯風(fēng)光再現(xiàn)。
除了商業(yè)主流的操作系統(tǒng)外,從1980年代起在開放原碼的世界中,BSD系統(tǒng)也發(fā)展了非常久的一段時間,但在1990年代由于與AT&T;的法律爭端,使得遠(yuǎn)在芬蘭赫爾辛基大學(xué)的另一股開源操作系統(tǒng)——Linux興起。Linux內(nèi)核是一個標(biāo)準(zhǔn)POSIX內(nèi)核,其血緣可算是Unix家族的一支。Linux與BSD家族都搭配GNU項(xiàng)目所發(fā)展的應(yīng)用程序,但是由于使用的許可證以及歷史因素的作弄下,Linux獲取了相當(dāng)可觀的開源操作系統(tǒng)市占率,而BSD則小得多。相較于MS-DOS的架構(gòu),Linux除了擁有傲人的可移植性(相較于Linux,MS-DOS衹能運(yùn)行在Intel CPU上),它也是一個分時多進(jìn)程內(nèi)核,以及良好的內(nèi)存空間管理(普通的進(jìn)程不能訪問內(nèi)核區(qū)域的內(nèi)存)。想要訪問任何非自己的內(nèi)存空間的進(jìn)程衹能通過系統(tǒng)調(diào)用來達(dá)成。一般進(jìn)程是處于用戶態(tài)(User mode)底下,而運(yùn)行系統(tǒng)調(diào)用時會被切換成內(nèi)核態(tài)(Kernel mode),所有的特殊指令衹能在內(nèi)核態(tài)運(yùn)行,此措施讓內(nèi)核可以完美管理系統(tǒng)內(nèi)部與外部設(shè)備,并且拒絕無權(quán)限的進(jìn)程提出的請求。因此理論上任何應(yīng)用程序運(yùn)行時的錯誤,都不可能讓系統(tǒng)崩潰。
另一方面,微軟對于更強(qiáng)力的操作系統(tǒng)呼聲的回應(yīng)便是Windows NT于1999年的面世。
1983年開始微軟就想要為MS-DOS建構(gòu)一個圖形化的操作系統(tǒng)應(yīng)用程序,稱為Windows(有人說這是比爾·蓋茨被蘋果的Lisa電腦上市所刺激)。一開始Windows并不是一個操作系統(tǒng),只是一個應(yīng)用程序,其背景還是純MS-DOS系統(tǒng),這是因?yàn)楫?dāng)時的BIOS設(shè)計(jì)以及MS-DOS的架構(gòu)不甚良好之故。在1990年代初,微軟與IBM的合作破裂,微軟從OS/2(早期為命令行模式,后來成為一個很技術(shù)優(yōu)秀但是曲高和寡的圖形化操作系統(tǒng))項(xiàng)目中抽身,并且在1993年7月27日推出Windows 3.1,一個以O(shè)S/2為基礎(chǔ)的圖形化操作系統(tǒng)。并在1995年8月15日推出Windows 95。直到這時,Windows系統(tǒng)依然是創(chuàng)建在MS-DOS的基礎(chǔ)上,因此消費(fèi)者莫不期待微軟在2000年所推出的Windows 2000上,因?yàn)樗潘闶堑谝粋€脫離MS-DOS基礎(chǔ)的圖形化操作系統(tǒng)。
底下的表格為Windows NT系統(tǒng)的架構(gòu):在硬件層次結(jié)構(gòu)之上,有一個由微內(nèi)核直接接觸的硬件抽象層(HAL),而不同的驅(qū)動程序以模塊的形式掛載在內(nèi)核上運(yùn)行。因此微內(nèi)核可以使用諸如輸入輸出、文件系統(tǒng)、網(wǎng)絡(luò)、信息安全機(jī)制與虛擬內(nèi)存等功能。而系統(tǒng)服務(wù)層提供所有統(tǒng)一規(guī)格的函數(shù)調(diào)用庫,可以統(tǒng)一所有副系統(tǒng)的實(shí)現(xiàn)方法。例如盡管POSIX與OS/2對于同一件服務(wù)的名稱與調(diào)用方法差異甚大,它們一樣可以無礙地實(shí)現(xiàn)于系統(tǒng)服務(wù)層上。在系統(tǒng)服務(wù)層之上的副系統(tǒng),全都是用戶態(tài),因此可以避免用戶程序運(yùn)行非法行動。
副系統(tǒng)架構(gòu)第一個實(shí)現(xiàn)的副系統(tǒng)群當(dāng)然是以前的微軟系統(tǒng)。DOS副系統(tǒng)將每個DOS程序當(dāng)成一進(jìn)程運(yùn)行,并以個別獨(dú)立的MS-DOS虛擬機(jī)承載其運(yùn)行環(huán)境。另外一個是Windows 3.1模擬系統(tǒng),實(shí)際上是在Win32副系統(tǒng)下運(yùn)行Win16程序。因此達(dá)到了安全掌控為MS-DOS與早期Windows系統(tǒng)所撰寫之舊版程序的能力。然而此架構(gòu)只在Intel 80386處理器及后繼機(jī)型上實(shí)現(xiàn)。且某些會直接讀取硬件的程序,例如大部分的Win16游戲,就無法套用這套系統(tǒng),因此很多早期游戲便無法在Windows NT上運(yùn)行。Windows NT有3.1、3.5、3.51與4.0版。Windows 2000是Windows NT的改進(jìn)系列(事實(shí)上是Windows NT 5.0)、Windows XP(Windows NT 5.1)以及Windows Server 2003(Windows NT 5.2)與Windows Vista(Windows NT 6.0)也都是立基于Windows NT的架構(gòu)上。
而本年代漸漸增長并越趨復(fù)雜的嵌入式設(shè)備市場也促使嵌入式操作系統(tǒng)的成長。
今日
現(xiàn)代操作系統(tǒng)通常都有一個使用的繪圖設(shè)備的圖形用戶界面(GUI),并附加如鼠標(biāo)或觸控面版等有別于鍵盤的輸入設(shè)備。舊的OS或性能導(dǎo)向的服務(wù)器通常不會有如此親切的接口,而是以命令行界面(CLI)加上鍵盤為輸入設(shè)備。以上兩種接口其實(shí)都是所謂的殼,其功能為接受并處理用戶的指令(例如按下一按鈕,或在命令提示列上鍵入指令)。
選擇要安裝的操作系統(tǒng)通常與其硬件架構(gòu)有很大關(guān)系,只有Linux與BSD幾乎可在所有硬件架構(gòu)上運(yùn)行,而Windows NT僅移植到了DEC Alpha與MIPS Magnum。在1990年代早期,個人電腦的選擇就已被局限在Windows家族、類Unix家族以及Linux上,而以Linux及Mac OS X為最主要的另類選擇,直至今日。
大型機(jī)與嵌入式系統(tǒng)使用很多樣化的操作系統(tǒng)。大型主機(jī)近期有許多開始支持Java及Linux以便共享其他平臺的資源。嵌入式系統(tǒng)近期百家爭鳴,從給Sensor Networks用的Berkeley Tiny OS到可以操作Microsoft Office的Windows CE都有。
個人電腦
個人電腦市場目前分為兩大陣營,此兩種架構(gòu)分別有支持的操作系統(tǒng):
Apple Macintosh- Mac OS X,Windows(僅Intel平臺),Linux、BSD。
IBM兼容PC- Windows、Linux、BSD、Mac OS X(非正式支持)。
大型機(jī)
最早的操作系統(tǒng)是針對20世紀(jì)60年代的大型主結(jié)構(gòu)開發(fā)的,由于對這些系統(tǒng)在軟件方面做了巨大投資,因此原來的計(jì)算機(jī)廠商繼續(xù)開發(fā)與原來操作系統(tǒng)相兼容的硬件與操作系統(tǒng)。這些早期的操作系統(tǒng)是現(xiàn)代操作系統(tǒng)的先驅(qū)?,F(xiàn)在仍被支持的大型主機(jī)操作系統(tǒng)包括:
Burroughs MCP-- B5000,1961 to Unisys Clearpath/MCP, present.
IBM OS/360 --IBM System/360, 1964 to IBM zSeries, present
UNIVAC EXEC 8 -- UNIVAC 1108, 1964, to Unisys Clearpath IX, present.
現(xiàn)代的大型主機(jī)一般也可運(yùn)行Linux或Unix變種。
嵌入式
嵌入式系統(tǒng)使用非常廣泛的系統(tǒng)(如VxWorks、eCos、Symbian OS及Palm OS)以及某些功能縮減版本的Linux或者其他操作系統(tǒng)。某些情況下,OS指稱的是一個內(nèi)置了固定應(yīng)用軟件的巨大泛用程序。在許多最簡單的嵌入式系統(tǒng)中,所謂的OS就是指其上唯一的應(yīng)用程序。
類Unix系統(tǒng)
Unix系統(tǒng)的演變
KDE SC 4桌面
所謂的 類Unix 家族指的是一族種類繁多的OS,此族包含了System V、BSD與Linux。由于Unix是The Open Group的注冊商標(biāo),特指遵守此公司定義的行為的操作系統(tǒng)。而類Unix通常指的是比原先的Unix包含更多特征的OS。
類Unix系統(tǒng)可在非常多的處理器架構(gòu)下運(yùn)行,在服務(wù)器系統(tǒng)上有很高的使用率,例如大專院校或工程應(yīng)用的工作站。
1991年,芬蘭學(xué)生林納斯·托瓦茲根據(jù)類Unix系統(tǒng)Minix編寫并發(fā)布了Linux操作系統(tǒng)內(nèi)核,其后在理查德·斯托曼的建議下以GNU通用公共許可證發(fā)布,成為自由軟件Unix變種. Linux近來越來越受歡迎,它們也在個人桌面電腦市場上大有斬獲,例如Ubuntu系統(tǒng)。
某些Unix變種,例如惠普的HP-UX以及IBM的AIX僅設(shè)計(jì)用于自家的硬件產(chǎn)品上,而SUN的Solaris可安裝于自家的硬件或x86電腦上。蘋果電腦的Mac OS X是一個從NeXTSTEP、Mach以及FreeBSD共同派生出來的微內(nèi)核BSD系統(tǒng),此OS取代了蘋果電腦早期非Unix家族的Mac OS。
經(jīng)歷數(shù)年的披荊斬棘,自由開源的Linux系統(tǒng)逐漸蠶食以往專利軟件的專業(yè)領(lǐng)域,例如以往電腦動畫運(yùn)算巨擘──硅谷圖形公司(SGI)的IRIX系統(tǒng)已被Linux家族及貝爾實(shí)驗(yàn)室研發(fā)小組設(shè)計(jì)的九號項(xiàng)目與Inferno系統(tǒng)取代,皆用于分散表達(dá)式環(huán)境。它們并不像其他Unix系統(tǒng),而是選擇內(nèi)置圖形用戶界面。九號項(xiàng)目原先并不普及,因?yàn)樗鼊偼瞥鰰r并非自由軟件。后來改在自由及開源軟件許可證Lucent Public License發(fā)布后,便開始擁有廣大的用戶及社區(qū)。Inferno已被售予Vita Nuova并以GPL/MIT許可證發(fā)布。
當(dāng)前,計(jì)算機(jī)按照計(jì)算能力排名世界500強(qiáng)中472臺使用Linux,6臺使用Windows,其余為各類BSD等Unix。
微軟Windows
Microsoft Windows系列操作系統(tǒng)是在微軟給IBM機(jī)器設(shè)計(jì)的MS-DOS的基礎(chǔ)上設(shè)計(jì)的圖形操作系統(tǒng)?,F(xiàn)在的Windows系統(tǒng),如Windows 2000、Windows XP皆是創(chuàng)建于現(xiàn)代的Windows NT內(nèi)核。NT內(nèi)核是由OS/2和OpenVMS等系統(tǒng)上借用來的。Windows可以在32位和64位的Intel和AMD的處理器上運(yùn)行,但是早期的版本也可以在DEC Alpha、MIPS與PowerPC架構(gòu)上運(yùn)行。
雖然由于人們對于開放源代碼操作系統(tǒng)興趣的提升,Windows的市場占有率有所下降,但是到2004年為止,Windows操作系統(tǒng)在世界范圍內(nèi)占據(jù)了桌面操作系統(tǒng)90%的市場。
Windows系統(tǒng)也被用在低級和中階服務(wù)器上,并且支持網(wǎng)頁服務(wù)的數(shù)據(jù)庫服務(wù)等一些功能。最近微軟花費(fèi)了很大研究與開發(fā)的經(jīng)費(fèi)用于使Windows擁有能運(yùn)行企業(yè)的大型程序的能力。
Windows XP在2001年10月25日發(fā)布,2004年8月24日發(fā)布服務(wù)包2(Service Pack 2),2008年4月21日發(fā)布最新的服務(wù)包3(Service Pack 3)。
微軟上一款操作系統(tǒng)Windows Vista(開發(fā)代碼為Longhorn)于2007年1月30日發(fā)售 。Windows Vista增加了許多功能,尤其是系統(tǒng)的安全性和網(wǎng)絡(luò)管理功能,并且其擁有接口華麗的Aero Glass。但是整體而言,其在全球市場上的口碑卻并不是很好。其后繼者Windows 7則是于2009年10月22日發(fā)售,Windows 7改善了Windows Vista為人詬病的性能問題,相較于Windows Vista,在同樣的硬件環(huán)境下,Windows 7的表現(xiàn)較Windows Vista為好。而最新的Windows 10則是于2015年7月29日發(fā)售。
蘋果macOS
Mac OS X 10.7
macOS ,前稱“Mac OS X”或“OS X”,是一套運(yùn)行于蘋果Macintosh系列電腦上的操作系統(tǒng)。Mac OS是首個在商用領(lǐng)域成功的圖形用戶界面系統(tǒng)。Macintosh 開發(fā)成員包括比爾·阿特金森(Bill Atkinson)、杰夫·拉斯金(Jef Raskin)和安迪·赫茨菲爾德(Andy Hertzfeld)。從OS X 10.8開始在名字中去掉Mac,僅保留OSX和版本號。2016年6月13日在 WWDC2016 上,蘋果公司將 OS X 更名為 macOS,現(xiàn)行的最新的系統(tǒng)版本是macOS Sierra。
Chrome OS
Google Chrome OS是一項(xiàng)Google的輕型電腦操作系統(tǒng)計(jì)劃,其基于Google的瀏覽器Google Chrome的Linux內(nèi)核。
其他
大型主機(jī)以及嵌入式操作系統(tǒng)均與Unix或Windows家族關(guān)系不大,除了Android,Windows CE、Windows NT及Windows XP Embedded是Windows的血親產(chǎn)品,以及數(shù)種*BSD和嵌入式Linux包為例外。
少數(shù)較舊的OS今日依然在一些需要穩(wěn)定性的市場中活躍,例如IBM的OS/2 、BeOS以及XTS-400。
在達(dá)康時代狂潮過后,如AmigaOS與RISC OS等少數(shù)人使用的OS依然持續(xù)創(chuàng)建,以滿足狂熱的愛好者社區(qū)與特殊專業(yè)用戶。
優(yōu)秀的操作系統(tǒng)必定要具備能讓各種能力級別的用戶滿足各種需求的工具包可視化的高效簡便程序環(huán)境,以程序來創(chuàng)建程序,就如立法的法律指導(dǎo)規(guī)范新的法案的創(chuàng)建。這其實(shí)是操作系統(tǒng)所 隱含的 一部分,決定了可以有多強(qiáng)的擴(kuò)充能力。比如,某個操作系統(tǒng)有對應(yīng)的開發(fā)者工具包集成環(huán)境程序并且是個可視化的,還能讓能力不太高的人一看能懂的,用于修改某個聲音合成器包含頻譜顯示,可要是操作系統(tǒng)本身不支持也沒有提供可用的工具程序,就會變得很繁瑣,很可能為了達(dá)到這個目標(biāo),開發(fā)者就要預(yù)備好各種相關(guān)的工具程序,甚至自己來編寫一系列相關(guān)的工具程序創(chuàng)建專門的工具包,最后還要檢查代碼。若是有人想通過音樂來生成五線譜,要對類似標(biāo)記語言的五線譜規(guī)則對應(yīng)一下,對各種音色,音準(zhǔn)采集并總結(jié)出一整套規(guī)律,通過聲音識別可以識別出樂器的類別等,進(jìn)而標(biāo)出樂符完成從聲音到樂譜的轉(zhuǎn)換并生成??墒菍θ寺晠s又更為復(fù)雜也不必要如此。若是需要用聲音的波形圖重現(xiàn)聲音,沒有相關(guān)的工具集是相當(dāng)難實(shí)現(xiàn),另外只有使用同一套聲音的波形繪制規(guī)則的所生成的波形圖用來再現(xiàn)的聲音才是原來的聲音。
在作為商品出售的操作系統(tǒng)軟件的歷史中常常因?yàn)槠渲邪臑g覽器,媒體播放器在美國遭到反壟斷起訴,差點(diǎn)使得功能上殘缺不全。少數(shù)操作系統(tǒng)軟件能夠提供較為全面的App 和實(shí)用工具程序。
操作系統(tǒng)軟件的編譯也需要對應(yīng)的編譯環(huán)境。
在同一臺計(jì)算機(jī)上運(yùn)行不同的操作系統(tǒng)軟件,就能夠以不同的方式來使用計(jì)算機(jī)資源。比如,在Mac上運(yùn)行OS X和Windows以兩種不同的技術(shù)OpenCL,Core Image:DirectX來使用圖形卡實(shí)現(xiàn)類似的作用。
通過圖像識別和聲音識別來進(jìn)行信息搜索。
能夠滿足不同需求所要求的精確程度對時間的精細(xì)劃分,以及尺度細(xì)分可以互聯(lián),同步,協(xié)調(diào)原本必須由多個人協(xié)同合作才能完成的隨時需要調(diào)整并相互同步的操控作業(yè),這就必須有即時消息傳送顯示,可視化的用于協(xié)調(diào)同步計(jì)劃任務(wù)的配置腳本,以及執(zhí)行這樣計(jì)劃任務(wù)的完整組件。
未來
研究與創(chuàng)建未來的操作系統(tǒng)依舊進(jìn)行著。操作系統(tǒng)朝提供更省電、網(wǎng)絡(luò)化、易用、華麗的用戶界面的方向來改進(jìn)。類UNIX OS通過和桌面環(huán)境開發(fā)者協(xié)作,正努力讓自己改進(jìn)使用環(huán)境。
eyeOS 是一套基于 PHP 實(shí)現(xiàn)的半開源模擬云計(jì)算操作系統(tǒng),但其實(shí)質(zhì)只是在網(wǎng)絡(luò)瀏覽器中提供一種類似無界限的類獨(dú)立操作系統(tǒng),其并非于任何類似虛擬化中實(shí)現(xiàn)的真正電腦操作系統(tǒng),能提供諸如 Word、PPT、Excel 的在線處理功能…
GNU Hurd是一個以完全兼容Unix并加強(qiáng)許多功能為目標(biāo)的微內(nèi)核架構(gòu)。 微軟Singularity是一個奠基于.Net并以創(chuàng)建較佳內(nèi)存保護(hù)機(jī)制為目標(biāo)的研究項(xiàng)目。
功能
操作系統(tǒng)位于底層硬件與用戶之間,是兩者溝通的橋梁。用戶可以通過操作系統(tǒng)的用戶界面,輸入命令。操作系統(tǒng)則對命令進(jìn)行解釋,驅(qū)動硬件設(shè)備,實(shí)現(xiàn)用戶要求。以現(xiàn)代標(biāo)準(zhǔn)而言,一個標(biāo)準(zhǔn)PC的操作系統(tǒng)應(yīng)該提供以下的功能:
進(jìn)程管理(Processing management)
內(nèi)存管理(Memory management)
文件系統(tǒng)(File system)
網(wǎng)絡(luò)通信(Networking)
安全機(jī)制(Security)
用戶界面(User interface)
驅(qū)動程序(Device drivers)
進(jìn)程管理
不管是常駐程序或者應(yīng)用程序,他們都以進(jìn)程為標(biāo)準(zhǔn)運(yùn)行單位。當(dāng)年運(yùn)用馮·諾伊曼結(jié)構(gòu)建造電腦時,每個中央處理器最多只能同時運(yùn)行一個進(jìn)程。早期的操作系統(tǒng)(例如DOS)也不允許任何程序打破這個限制,且DOS同時只有運(yùn)行一個進(jìn)程(雖然DOS自己宣稱他們擁有終止并等待駐留能力,可以部分且艱難地解決這問題)?,F(xiàn)代的操作系統(tǒng),即使只擁有一個CPU,也可以利用多進(jìn)程(multitask)功能同時執(zhí)行多個進(jìn)程。 進(jìn)程管理 指的是操作系統(tǒng)調(diào)整多個進(jìn)程的功能。
由于大部分的電腦只包含一顆中央處理器,在宏內(nèi)核(Core)的情況下多進(jìn)程只是簡單迅速地切換各進(jìn)程,讓每個進(jìn)程都能夠運(yùn)行,在多內(nèi)核或多處理器的情況下,所有進(jìn)程通過許多協(xié)同技術(shù)在各處理器或內(nèi)核上轉(zhuǎn)換。越多進(jìn)程同時運(yùn)行,每個進(jìn)程能分配到的時間比率就越小。很多操作系統(tǒng)在遇到此問題時會出現(xiàn)諸如音效斷續(xù)或鼠標(biāo)跳格的情況(稱做崩潰(Thrashing),一種操作系統(tǒng)只能不停運(yùn)行自己的管理程序并耗盡系統(tǒng)資源的狀態(tài),其他用戶或硬件的程序皆無法運(yùn)行)。進(jìn)程管理通常實(shí)踐了 分時 的概念,大部分的操作系統(tǒng)可以利用指定不同的特權(quán)檔次(priority),為每個進(jìn)程改變所占的分時比例。特權(quán)越高的進(jìn)程,運(yùn)行優(yōu)先級越高,單位時間內(nèi)占的比例也越高。交互式操作系統(tǒng)也提供某種程度的回饋機(jī)制,讓直接與用戶交互的進(jìn)程擁有較高的特權(quán)值。
除了進(jìn)程管理之外,操作系統(tǒng)尚有擔(dān)負(fù)起進(jìn)程間通信(IPC)、進(jìn)程異常終止處理以及死鎖(Dead Lock)偵測及處理等較為艱深的問題。
在進(jìn)程之下尚有線程的問題,但是大部分的操作系統(tǒng)并不會處理線程所遭遇的問題,通常操作系統(tǒng)僅止于提供一組API讓用戶自行操作或通過虛擬機(jī)的管理機(jī)制控制線程之間的交互。
內(nèi)存管理
根據(jù) 帕金森定律 :“ 你給程序再多內(nèi)存,程序也會想盡辦法耗光 ”,因此程序員通常希望系統(tǒng)給他 無限量 且 無限快 的內(nèi)存。大部分的現(xiàn)代電腦內(nèi)存架構(gòu)都是層次結(jié)構(gòu)式的,最快且數(shù)量最少的寄存器為首,然后是緩存、內(nèi)存以及最慢的磁盤存儲設(shè)備。而操作系統(tǒng)的 內(nèi)存管理 提供查找可用的記憶空間、配置與釋放記憶空間以及交換內(nèi)存和低速存儲設(shè)備的內(nèi)含物……等功能。此類又被稱做 虛擬內(nèi)存管理 的功能大幅增加每個進(jìn)程可獲得的記憶空間(通常是4GB,即使實(shí)際上RAM的數(shù)量遠(yuǎn)少于這數(shù)目)。然而這也帶來了微幅降低運(yùn)行效率的缺點(diǎn),嚴(yán)重時甚至也會導(dǎo)致進(jìn)程崩潰。
內(nèi)存管理的另一個重點(diǎn)活動就是借由CPU的幫助來管理虛擬位置。如果同時有許多進(jìn)程存儲于記憶設(shè)備上,操作系統(tǒng)必須防止它們互相干擾對方的內(nèi)存內(nèi)容(除非通過某些協(xié)議在可控制的范圍下操作,并限制可訪問的內(nèi)存范圍)。分區(qū)內(nèi)存空間可以達(dá)成目標(biāo)。每個進(jìn)程只會看到整個內(nèi)存空間(從0到內(nèi)存空間的最大上限)被配置給它自己(當(dāng)然,有些位置被操作系統(tǒng)保留而禁止訪問)。CPU事先存了幾個表以比對虛擬位置與實(shí)際內(nèi)存位置,這種方法稱為標(biāo)簽頁配置。
借由對每個進(jìn)程產(chǎn)生分開獨(dú)立的位置空間,操作系統(tǒng)也可以輕易地一次釋放某進(jìn)程所占據(jù)的所有內(nèi)存。如果這個進(jìn)程不釋放內(nèi)存,操作系統(tǒng)可以結(jié)束進(jìn)程并將內(nèi)存自動釋放。
磁盤與文件系統(tǒng)
所謂的 文件系統(tǒng) ,通常指稱管理磁盤數(shù)據(jù)的系統(tǒng),可將數(shù)據(jù)以目錄或文件的型式存儲。每個文件系統(tǒng)都有自己的特殊格式與功能,例如日志管理或不需磁盤重整。
操作系統(tǒng)擁有許多種內(nèi)置文件系統(tǒng)。例如Linux擁有非常廣泛的內(nèi)置文件系統(tǒng),如ext2、ext3、ext4、ReiserFS、Reiser4、GFS、GFS2、OCFS、OCFS2、NILFS與Google文件系統(tǒng)。Linux也支持非原生文件系統(tǒng),例如XFS、JFS、FAT家族與NTFS。另一方面,Windows能支持的文件系統(tǒng)衹有FAT12、FAT16、FAT32、EXFAT與NTFS。NTFS系統(tǒng)是Windows上最可靠與最有效率的文件系統(tǒng)。其他的FAT家族都比NTFS老舊,且對于文件長度與分區(qū)磁盤能力都有很大限制,因此造成很多問題。而UNIX的文件系統(tǒng)多半是UFS,而UNIX中的一個分支Solaris最近則開始支持一種新式的ZFS。
大部分上述的文件系統(tǒng)都有兩種建置方法。系統(tǒng)可以以日志式或非日志式建置。日志式文件系統(tǒng)可以以較安全的手法運(yùn)行系統(tǒng)恢復(fù)。如果一個沒有日志式建置的文件系統(tǒng)遇上突然的系統(tǒng)崩潰,導(dǎo)致數(shù)據(jù)創(chuàng)建在一半時停頓,則此系統(tǒng)需要特殊的文件系統(tǒng)檢查工具才能撤消;日志式則可自動恢復(fù)。微軟的NTFS與Linux的ext3、ext4、reiserFS與JFS都是日志式文件系統(tǒng)。
每個文件系統(tǒng)都實(shí)現(xiàn)相似的目錄/子目錄架構(gòu),但在相似之下也有許多不同點(diǎn)。微軟使用“ \ ”符號以創(chuàng)建目錄/子目錄關(guān)系,且文件名稱忽略其大小寫差異;UNIX系統(tǒng)則是以“ / ”創(chuàng)建目錄架構(gòu),且文件名稱大小寫有差異。(其實(shí)這是給system call看的,"/"或"\"并不實(shí)際存在硬盤)
網(wǎng)絡(luò)
許多現(xiàn)代的操作系統(tǒng)都具備操作主流網(wǎng)絡(luò)通信協(xié)議TCP/IP的能力。也就是說這樣的操作系統(tǒng)可以進(jìn)入網(wǎng)絡(luò)世界,并且與其他系統(tǒng)分享諸如文件、打印機(jī)與掃描儀等資源。
許多操作系統(tǒng)也支持多個過去網(wǎng)絡(luò)啟蒙時代的各路網(wǎng)絡(luò)通信協(xié)議,例如IBM創(chuàng)建的系統(tǒng)網(wǎng)絡(luò)架構(gòu)、DEC在它所生產(chǎn)的系統(tǒng)所設(shè)置的 DECnet ( 英語 : DECnet ) 架構(gòu)與微軟為Windows制作的特殊通信協(xié)議。還有許多為了特殊功能而研發(fā)的通信協(xié)議,例如可以在網(wǎng)絡(luò)上提供文件訪問功能的NFS系統(tǒng)?,F(xiàn)今大量用于影音流(Streaming media)及游戲消息發(fā)送的UDP協(xié)議等。
安全
大多數(shù)操作系統(tǒng)都含有某種程度的信息安全機(jī)制。信息安全機(jī)制主要基于兩大理念:
操作系統(tǒng)提供外界直接或間接訪問數(shù)種資源的管道,例如本地端磁盤驅(qū)動器的文件、受保護(hù)的特權(quán)系統(tǒng)調(diào)用、用戶的隱私數(shù)據(jù)與系統(tǒng)運(yùn)行的程序所提供的服務(wù)。
操作系統(tǒng)有能力認(rèn)證資源訪問的請求。允許通過認(rèn)證的請求并拒絕無法通過的非法請求,并將適當(dāng)?shù)臋?quán)力授權(quán)( Authorization ( 英語 : 授權(quán) ) )給此請求。有些系統(tǒng)的認(rèn)證機(jī)制僅簡略地把資源分為特權(quán)或非特權(quán),且每個請求都有獨(dú)特的身份辨識號碼,例如用戶名。資源請求通常分成兩大種類:
除了允許/拒絕形式的安全機(jī)制,一個高安全檔次的系統(tǒng)也會提供記錄選項(xiàng),允許記錄各種請求對資源訪問的行為(例如“誰曾經(jīng)讀了這個文件?”)。
肇因于軍方與商業(yè)組織將敏感數(shù)據(jù)記錄在電腦上,安全機(jī)制在操作系統(tǒng)歷史上是一個被長久關(guān)注與討論的問題。美國國防部(DoD)便創(chuàng)立了 《可信賴之計(jì)算機(jī)系統(tǒng)評鑒程序》 ( TCSEC ( 英語 : TCSEC ) ),此手冊確立了評鑒安全機(jī)制成效的基本原則。這對操作系統(tǒng)作者來說非常重要,因?yàn)門CSEC是用于評鑒、分類與選拔出用于處理、存儲與獲取敏感或機(jī)密數(shù)據(jù)的電腦系統(tǒng)的標(biāo)準(zhǔn)程序。
內(nèi)部通訊安全
內(nèi)部信息安全可視為防止正在運(yùn)行的程序任意訪問系統(tǒng)資源的手段。大多操作系統(tǒng)讓普通程序可直接操作電腦的CPU,所以產(chǎn)生了一些問題,例如怎樣把可如操作系統(tǒng)一樣處理事務(wù)、運(yùn)行同樣特殊指令的程序強(qiáng)迫停止,畢竟在此情境下,操作系統(tǒng)也只是另一個平起平坐的程序。為通用操作系統(tǒng)所生產(chǎn)的CPU通常于硬件層級上實(shí)踐了一定程度的特殊指令保護(hù)概念。通常特權(quán)層級較低的程序想要運(yùn)行某些特殊指令時會被阻斷,例如直接訪問像是硬盤之類的外部設(shè)備。因此,程序必須得經(jīng)由詢問操作系統(tǒng),讓操作系統(tǒng)運(yùn)行特殊指令來訪問磁盤。因此操作系統(tǒng)就有機(jī)會檢查此程序的識別身份,并依此接受或拒絕它的請求。
在不支持特殊指令架構(gòu)的硬件上,另一個也是唯一的保護(hù)方法,則是操作系統(tǒng)并不直接利用CPU運(yùn)行用戶的程序,而是借由模擬一個CPU或提供一P-code機(jī)系統(tǒng)(偽代碼運(yùn)行機(jī)),像是Java一樣讓程序在虛擬機(jī)上運(yùn)行。
內(nèi)部安全機(jī)制在多用戶電腦上特別重要:它允許每個系統(tǒng)用戶擁有自己個人的文件與目錄,且其他用戶不能任意訪問或刪除。因?yàn)槿魏纬绦蚨伎赡芾@過操作系統(tǒng)的監(jiān)控,更有可能繞過側(cè)錄程序的監(jiān)控,擁有強(qiáng)制力的內(nèi)部安全機(jī)制在側(cè)錄引導(dǎo)時也非常重要。
外部通訊安全
通常一個操作系統(tǒng)會為其他網(wǎng)絡(luò)上的電腦或用戶提供(主持)各種服務(wù)。這些服務(wù)通常借由端口或操作系統(tǒng)網(wǎng)絡(luò)地址后的數(shù)字接入點(diǎn)提供。通常此服務(wù)包括提供文件共享(NFS)、打印共享、電子郵件、網(wǎng)頁服務(wù)與文件傳輸協(xié)議(FTP)。 外部信息安全的最前線,是諸如防火墻等的硬件設(shè)備。在操作系統(tǒng)內(nèi)部也常設(shè)置許多種類的軟件防火墻。軟件防火墻可設(shè)置接受或拒絕在操作系統(tǒng)上運(yùn)行的服務(wù)與外界的連接。因此任何人都可以安裝并運(yùn)行某些不安全的網(wǎng)絡(luò)服務(wù),例如Telnet或FTP,并且設(shè)置除了某些自用通道之外阻擋其他所有連接,以達(dá)成防堵不良連接的機(jī)制。
用戶界面
今日大部分的操作系統(tǒng)都包含圖形用戶界面(GUI)。有幾類較舊的操作系統(tǒng)將圖形用戶界面與內(nèi)核緊密結(jié)合,例如最早的Windows與Mac OS實(shí)現(xiàn)產(chǎn)品。此種手法可提供較快速的圖形回應(yīng)能力,且實(shí)現(xiàn)時不需切割模塊因而較為省工,但是會有強(qiáng)烈副作用,例如圖形系統(tǒng)崩潰將導(dǎo)致整個系統(tǒng)崩潰,例如藍(lán)屏死機(jī)。許多近代的操作系統(tǒng)已模塊化,將圖形接口的副系統(tǒng)與內(nèi)核分開(已知Linux與Mac OS X原先就是如此設(shè)計(jì),而某些擴(kuò)充版本的Windows終于也采用此手法)。
許多操作系統(tǒng)允許用戶安裝或創(chuàng)造任何他們喜歡的圖形用戶界面 。大部分的Unix與Unix派生系統(tǒng)(BSD、Linux與Minix)通常會安裝X Window系統(tǒng)配合GNOME或KDE桌面環(huán)境。而某些操作系統(tǒng)就沒有這么彈性的圖形用戶界面,例如Windows。這類的操作系統(tǒng)只能通過外加的程序來改變其圖形用戶界面,甚至根本只能改變諸如菜單風(fēng)格或顏色配置等部分。
圖形用戶界面與時并進(jìn),例如Windows在每次新版本上市時就會將其圖形用戶界面改頭換面,而Mac OS的GUI也在Mac OS X上市時出現(xiàn)重大轉(zhuǎn)變。
驅(qū)動程序
所謂的 驅(qū)動程序 (Device driver)是指某類設(shè)計(jì)來與硬件交互的電腦軟件。通常是一設(shè)計(jì)完善的設(shè)備交互接口,利用與此硬件連接的電腦匯排流或通信子系統(tǒng),提供對此設(shè)備下令與接收信息的功能;以及最終目的,將消息提供給操作系統(tǒng)或應(yīng)用程序。驅(qū)動程序是針對特定硬件與特定操作系統(tǒng)設(shè)計(jì)的軟件,通常以操作系統(tǒng)內(nèi)核模塊、應(yīng)用軟件包或普通計(jì)算機(jī)程序的形式在操作系統(tǒng)內(nèi)核底下運(yùn)行,以達(dá)到通透順暢地與硬件交互的效果,且提供硬件在處理異步的時間依賴性接口(asynchronous time-dependent hardware interface)時所需的中斷處理函數(shù)。
設(shè)計(jì)驅(qū)動程序的主要目的在于操作 抽象化 ,任何硬件模塊,既使是同一類的設(shè)備,在硬件設(shè)計(jì)面上也有巨大差異。廠商推出的較新模塊通常更可靠更有效率,控制方法也會有所不同。電腦與其操作系統(tǒng)每每不能預(yù)期那些現(xiàn)有與新設(shè)備的變異之處,因此無法知道其操作方法。為解決此問題操作系統(tǒng)通常會 主動制訂 每種設(shè)備該有的操作方式,而驅(qū)動程序功能則是將那些操作系統(tǒng)制訂的行為描述,轉(zhuǎn)譯為可讓設(shè)備了解的自定義操作手法。
理論上適合的驅(qū)動程序一旦安裝,相對應(yīng)的新設(shè)備就可以無誤地運(yùn)行。此新驅(qū)動程序可以讓此設(shè)備完美地切合在操作系統(tǒng)中,讓用戶察覺不到這是操作系統(tǒng)原本沒有的功能。
結(jié)構(gòu)
操作系統(tǒng)理論研究者有時把操作系統(tǒng)分成四大部分:
驅(qū)動程序 - 最底層的、直接控制和監(jiān)視各類硬件的部分,它們的職責(zé)是隱藏硬件的具體細(xì)節(jié),并向其他部分提供一個抽象的、通用的接口。
內(nèi)核 - 操作系統(tǒng)之最內(nèi)核部分,通常運(yùn)行在最高特權(quán)級,負(fù)責(zé)提供基礎(chǔ)性、結(jié)構(gòu)性的功能。
支承庫 - (亦作“ 接口庫 ”)是一系列特殊的程序庫,它們職責(zé)在于把系統(tǒng)所提供的基本服務(wù)包裝成應(yīng)用程序所能夠使用的編程接口(API),是最靠近應(yīng)用程序的部分。例如,GNU C運(yùn)行期庫就屬于此類,它把各種操作系統(tǒng)的內(nèi)部編程接口包裝成ANSI C和POSIX編程接口的形式。
外圍 - 所謂外圍,是指操作系統(tǒng)中除以上三類以外的所有其他部分,通常是用于提供特定高級服務(wù)的部件。例如,在微內(nèi)核結(jié)構(gòu)中,大部分系統(tǒng)服務(wù),以及UNIX/Linux中各種守護(hù)進(jìn)程都通常被劃歸此列。
當(dāng)然,本節(jié)所提出的四部結(jié)構(gòu)觀也絕非放之四海皆準(zhǔn)。例如,在早期的微軟視窗操作系統(tǒng)中,各部分耦合程度很深,難以區(qū)分彼此。而在使用外核結(jié)構(gòu)的操作系統(tǒng)中,則根本沒有驅(qū)動程序的概念。因而,本節(jié)的討論只適用于一般情況,具體特例需具體分析。
操作系統(tǒng)中四大部分的不同布局,也就形成了幾種整體結(jié)構(gòu)的分野。常見的結(jié)構(gòu)包括:簡單結(jié)構(gòu)、層結(jié)構(gòu)、微內(nèi)核結(jié)構(gòu)、垂直結(jié)構(gòu)、和虛擬機(jī)結(jié)構(gòu)。
分類
操作系統(tǒng)的分類沒有一個單一的標(biāo)準(zhǔn),可以根據(jù)工作方式分為批處理操作系統(tǒng)、分時操作系統(tǒng)、實(shí)時操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)等;根據(jù)架構(gòu)可以分為單內(nèi)核操作系統(tǒng)等;根據(jù)運(yùn)行的環(huán)境,可以分為桌面操作系統(tǒng),嵌入式操作系統(tǒng)等;根據(jù)指令的長度分為8bit, 16bit, 32bit,64bit的操作系統(tǒng)。
內(nèi)核結(jié)構(gòu)
內(nèi)核是操作系統(tǒng)最內(nèi)核最基礎(chǔ)的構(gòu)件,其結(jié)構(gòu)往往對操作系統(tǒng)的外部特性以及應(yīng)用領(lǐng)域有著一定程度的影響。盡管隨著理論和實(shí)踐的不斷演進(jìn),操作系統(tǒng)高層特性與內(nèi)核結(jié)構(gòu)之間的耦合有日趨縮小之勢,但習(xí)慣上,內(nèi)核結(jié)構(gòu)仍然是操作系統(tǒng)分類之常用標(biāo)準(zhǔn)。
內(nèi)核的結(jié)構(gòu)可以分為單內(nèi)核、微內(nèi)核、超微內(nèi)核、以及外核等。
單內(nèi)核結(jié)構(gòu)是操作系統(tǒng)中各內(nèi)核部件雜然混居的形態(tài),該結(jié)構(gòu)產(chǎn)生于1960年代(亦有1950年代初之說,尚存爭議),歷史最長,是操作系統(tǒng)內(nèi)核與外圍分離時的最初形態(tài)。
微內(nèi)核結(jié)構(gòu)是1980年代產(chǎn)生出來的較新的內(nèi)核結(jié)構(gòu),強(qiáng)調(diào)結(jié)構(gòu)性部件與功能性部件的分離。20世紀(jì)末,基于微內(nèi)核結(jié)構(gòu),理論界中又發(fā)展出了超微內(nèi)核與外內(nèi)核等多種結(jié)構(gòu)。盡管自1980年代起,大部分理論研究都集中在以微內(nèi)核為首的“新興”結(jié)構(gòu)之上,然而,在應(yīng)用領(lǐng)域之中,以單內(nèi)核結(jié)構(gòu)為基礎(chǔ)的操作系統(tǒng)卻一直占據(jù)著主導(dǎo)地位。
在眾多常用操作系統(tǒng)之中,除了QNX和基于Mach的UNIX等個別系統(tǒng)外,幾乎全部采用單內(nèi)核結(jié)構(gòu),例如大部分的Unix、Linux,以及Windows(微軟聲稱Windows NT是基于改良的微內(nèi)核架構(gòu)的,盡管理論界對此存有異議)。 微內(nèi)核和超微內(nèi)核結(jié)構(gòu)主要用于研究性操作系統(tǒng),還有一些嵌入式系統(tǒng)使用外核。
基于單內(nèi)核的操作系統(tǒng)通常有著較長的歷史淵源。例如,絕大部分UNIX的家族史都可上溯至1960年代。該類操作系統(tǒng)多數(shù)有著相對古老的設(shè)計(jì)和實(shí)現(xiàn)(例如某些UNIX中存在著大量1970年代、1980年代的代碼)。另外,往往在性能方面略優(yōu)于同一應(yīng)用領(lǐng)域中采用其他內(nèi)核結(jié)構(gòu)的操作系統(tǒng)(但通常認(rèn)為此種性能優(yōu)勢不能完全歸功于單內(nèi)核結(jié)構(gòu))。
通用與專用、嵌入式
通用操作系統(tǒng) 是面向一般沒有特定應(yīng)用需求的操作系統(tǒng)。由于沒有特定的應(yīng)用需求,通用操作系統(tǒng)為了適應(yīng)更廣泛的應(yīng)用,需要支持更多的硬件與軟件,需要針對所有的用戶體驗(yàn),對系統(tǒng)進(jìn)行更新。通用操作系統(tǒng)是一個工程量繁重的操作系統(tǒng)。
即時與非即時
“即時作業(yè)系統(tǒng)”(Real Time OS)泛指所有據(jù)有一定實(shí)時資源調(diào)度以及通訊能力的操作系統(tǒng)。而所謂“即時”,不同語境中往往有著非常不同的意義。某些時候僅僅用作“高性能”的同義詞。但在操作系統(tǒng)理論中“即時性”所指的通常是特定操作所消耗的時間(以及空間)的上限是可預(yù)知的。比如,如果說某個操作系統(tǒng)提供實(shí)時內(nèi)存分配操作,那也就是說一個內(nèi)存分配操作所用時間(及空間)無論如何也不會超出操作系統(tǒng)所承諾的上限。即時性在某些領(lǐng)域非常重要,比如在工業(yè)控制、醫(yī)療器材、影音頻合成、以及軍事領(lǐng)域,即時性都是無可或缺的特性。
常用即時操作系統(tǒng)有QNX、VxWorks、RTLinux等等,而Linux、多數(shù)UNIX、以及多數(shù)Windows家族成員等都屬于非實(shí)時操作系統(tǒng)。操作系統(tǒng)整體的即時性通常依仗內(nèi)核的即時能力,但有時也可在非即時內(nèi)核上創(chuàng)建即時操作系統(tǒng),很多在Windows上創(chuàng)建的即時操作系統(tǒng)就屬于此類。
在POSIX標(biāo)準(zhǔn)中專有一系用于規(guī)范即時操作系統(tǒng)的API,其中包括POSIX.4、POSIX.4a、POSIX.4b(合稱POSIX.4)以及POSIX.13等等。匹配POSIX.4的操作系統(tǒng)通常被認(rèn)可為即時操作系統(tǒng)(但即時操作系統(tǒng)并不需要匹配POSIX.4標(biāo)準(zhǔn))。
8位、16位、32位、64位、128位
所謂8位、16位、32位、64位、128位等術(shù)語有時指總線寬度,有時指指令寬度(在定長指令集中),而在操作系統(tǒng)理論中主要是指內(nèi)存定址的寬度。如果內(nèi)存的定址寬度是16位,那么每一個內(nèi)存地址可以用16個二進(jìn)制位來表示,也就是說可以在64KB的范圍內(nèi)定址。同樣道理32位的寬度對應(yīng)4GB的定址范圍,64位的寬度對應(yīng)16 Exabyte的定址范圍。內(nèi)存定址范圍并非僅僅是對操作系統(tǒng)而言的,其他類型的軟件的設(shè)計(jì)有時也會被定址范圍而影響。但是在操作系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)中,定址范圍卻有著更為重要的意義。
在早期的16位操作系統(tǒng)中,由于64KB的定址范圍太小,大都都采用“段”加“線性地址”的二維平面地址空間的設(shè)計(jì)。分配內(nèi)存時通常需要考慮“段置換”的問題,同時,應(yīng)用程序所能夠使用的地址空間也往往有比較小的上限。
在32位操作系統(tǒng)中,4GB的定址范圍對于一般應(yīng)用程序來說是綽綽有余的,因而,通常使用一維的線性地址空間,而不使用“段”。
參考文獻(xiàn)
書目
Deitel, Harvey M.; Deitel, Paul; Choffnes, David. Operating Systems. Upper Saddle River, NJ: Pearson/Prentice Hall. 2004. ISBN 978-0-13-182827-8.
Silberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg. Operating System Concepts. Hoboken, NJ: John Wiley & Sons. 2008). ISBN 978-0-470-12872-5. (俗稱恐龍書,OS教科書圣經(jīng)本)
Tanenbaum, Andrew S.; Woodhull, Albert S. Operating Systems. Design and Implementation. Upper Saddle River, N.J.: Pearson/Prentice Hall. 2011. ISBN 978-0-13-142938-3. (Linux由此書而啟發(fā),可惜新版本將實(shí)現(xiàn)內(nèi)容移除)
Stallings, William. Operating Systems: Internals and Design Principles, 5/E. Prentice Hall. 2005. ISBN 978-0-13-147954-8.
參見
計(jì)算機(jī)
操作系統(tǒng)內(nèi)核
實(shí)時操作系統(tǒng)-分時系統(tǒng)-多任務(wù)-嵌入式系統(tǒng)-單一用戶-多用戶
對稱多處理機(jī)(SMP)-集群(Cluster)-分布式計(jì)算
64位操作系統(tǒng)
Unix
FreeBSD
Solaris
AIX
HP-UX
IRIX
Tru64
MS-DOS
GNU/Linux
Mac OS
Windows
Windows NT
其它操作系統(tǒng)
免責(zé)聲明:以上內(nèi)容版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請告知,我們將盡快刪除相關(guān)內(nèi)容。感謝每一位辛勤著寫的作者,感謝每一位的分享。
相關(guān)資料
- 有價(jià)值
- 一般般
- 沒價(jià)值
{{item.userName}} 舉報(bào)
{{item.time}} {{item.replyListShow ? '收起' : '展開'}}評論 {{curReplyId == item.id ? '取消回復(fù)' : '回復(fù)'}}
{{_reply.userName}} 舉報(bào)
{{_reply.time}}