編輯本段系統(tǒng)簡介
結(jié)構(gòu)圖
操作系統(tǒng)的功能包括管理
計算機(jī)系統(tǒng)的硬件、軟件及數(shù)據(jù)資源;控制程序運(yùn)行;改善人機(jī)界面;為其它
應(yīng)用軟件提供支持等,使計算機(jī)系統(tǒng)所有資源最大限度地發(fā)揮作用,為用戶提供方便的、有效的、友善的
服務(wù)界面。
許多操作系統(tǒng)制造者對OS的定義也不大一致,例如有些OS集成了
圖形用戶界面,而有些OS僅使用文本接口,而將圖形界面視為一種非必要的
應(yīng)用程序。
操作系統(tǒng)理論在
計算機(jī)科學(xué)中為歷史悠久而又活躍的分支,而操作系統(tǒng)的設(shè)計與實現(xiàn)則是軟件工業(yè)的基礎(chǔ)與內(nèi)核。
1980年代前
第一部計算機(jī)并沒有操作系統(tǒng)。這是由于早期個人電腦的建立方式(如同建造機(jī)械算盤)與效能不足以執(zhí)行如此程序。
但在1947年發(fā)明了晶體管,以及
莫里斯·威爾克斯(Maurice Vincent Wilkes)發(fā)明的
微程序方法,使得電腦不再是機(jī)械設(shè)備,而是
電子產(chǎn)品。系統(tǒng)
管理工具以及簡化硬件操作流程的程序很快就出現(xiàn)了,且成為操作系統(tǒng)的基礎(chǔ)。
到了1960年代早期,商用電腦制造商制造了批次處理系統(tǒng),此系統(tǒng)可將工作的建置、調(diào)度以及執(zhí)行序列化。此時,廠商為每一臺不同型號的電腦創(chuàng)造不同的操作系統(tǒng),因此為某電腦而寫的程序無法移植到其他電腦上執(zhí)行,即使是同型號的電腦也不行。
到了1964年,
IBM推出了一系列用途與價位都不同的大型電腦IBM System/360,大型主機(jī)的經(jīng)典之作。而它們都共享代號為
OS/360的操作系統(tǒng)(而非每種產(chǎn)品都用量身訂做的操作系統(tǒng))。讓單一操作系統(tǒng)適用于整個系列的產(chǎn)品是System/360成功的關(guān)鍵,且實際上IBM目前的大型系統(tǒng)便是此系統(tǒng)的后裔;為System/360所寫的應(yīng)用程序依然可以在現(xiàn)代的IBM機(jī)器上執(zhí)行!
OS/360也包含另一個優(yōu)點:永久貯存設(shè)備—硬盤
驅(qū)動器的面世(IBM稱為DASD(Direct access storage device))。另一個關(guān)鍵是分時概念的建立:將大型電腦珍貴的時間資源適當(dāng)分配到所有使用者身上。分時也讓使用者有獨(dú)占整部機(jī)器的感覺;而
Multics的
分時系統(tǒng)是此時眾多新操作系統(tǒng)中實踐此觀念最成功的。
1963年,奇異公司與
貝爾實驗室合作以
PL/I語言建立的Multics,是激發(fā)1970年代眾多操作系統(tǒng)建立的靈感來源,尤其是由
AT&T貝爾實驗室的丹尼斯·里奇與
肯·湯普遜所建立的
Unix系統(tǒng),為了實踐
平臺移植能力,此操作系統(tǒng)在1969年由C語言重寫;另一個廣為市場采用的小型電腦操作系統(tǒng)是
VMS。
20世紀(jì)80年代
第一代微型計算機(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只讀內(nèi)存BIOS初始化彩色屏幕、鍵盤以及軟驅(qū)和打印機(jī)。它可用8KB只讀內(nèi)存
BASIC語言來直接操作BIOS,并依此撰寫程序,大部分是游戲。此BASIC語言的解釋器勉強(qiáng)可算是此電腦的操作系統(tǒng),當(dāng)然就沒有內(nèi)核或軟硬件保護(hù)機(jī)制了。此電腦上的游戲大多跳過BIOS層次,直接控制硬件。
早期最著名的磁盤啟動型操作系統(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。軟式磁盤機(jī)取代了過去的磁帶機(jī),成為新一代的儲存設(shè)備,并可在他512KB的空間上讀寫。為了支持更進(jìn)一步的文件讀寫概念,
磁盤操作系統(tǒng)(Disk Operating System,
DOS)因而誕生。此操作系統(tǒng)可以合并任意數(shù)量的磁區(qū),因此可以在一張磁盤片上放置任意數(shù)量與大小的文件。文件之間以檔名區(qū)別。IBM并沒有很在意其上的DOS,因此以向外部公司購買的方式取得操作系統(tǒng)。
1980年
微軟公司利用騙術(shù)取得了與IBM的合約,并且收購了一家公司出產(chǎn)的操作系統(tǒng),在將之修改后以MS-DOS的名義出品,此操作系統(tǒng)可以直接讓程序操作BIOS與文件系統(tǒng)。到了Intel-80286處理器的時代,才開始實作基本的儲存設(shè)備保護(hù)措施。MS-DOS的架構(gòu)并不足以滿足所有需求,因為它同時只能執(zhí)行最多一個程序(如果想要同時執(zhí)行程式,只能使用TSR的方式來跳過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è)單位而是研究單位,因此施樂回絕了這項買賣。在此之后蘋果一致認(rèn)為個人電腦的未來必定屬于圖形使用者界面,因此也開始發(fā)展自己的圖形化操作系統(tǒng),F(xiàn)今許多我們認(rèn)為是基本要件的圖形化接口技術(shù)與規(guī)則,都是由蘋果電腦打下的基礎(chǔ)(例如下拉式菜單、桌面
圖標(biāo)、拖曳式操作與雙點擊等)。但正確來說,圖形化使用者界面的確是施樂創(chuàng)始的。
20世紀(jì)90年代
Apple I電腦,蘋果電腦的第一代產(chǎn)品。延續(xù)80年代的競爭,1990年代出現(xiàn)了許多影響未來個人電腦市場深厚的操作系統(tǒng)。由于圖形化使用者界面日趨繁復(fù),操作系統(tǒng)的能力也越來越復(fù)雜與巨大,因此強(qiáng)韌且具有彈性的操作系統(tǒng)就成了迫切的需求。此年代是許多套裝類的個人電腦操作系統(tǒng)互相競爭的時代。
上一年代于市場崛起的蘋果電腦,由于舊系統(tǒng)的設(shè)計不良,使得其后繼發(fā)展不力,蘋果電腦決定重新設(shè)計操作系統(tǒng)。經(jīng)過許多失敗的項目后,蘋果于1997年釋出新操作系統(tǒng)——MacOS的
測試版,而后推出的正式版取得了巨大的成功。讓原先失意離開蘋果的Steve Jobs風(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計劃所發(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)程是處于使用者模式(User mode)底下,而執(zhí)行系統(tǒng)調(diào)用時會被切換成內(nèi)核模式(Kernel mode),所有的特殊指令只能在內(nèi)核模式執(zhí)行,此措施讓內(nèi)核可以完美管理系統(tǒng)內(nèi)部與外部設(shè)備,并且拒絕無權(quán)限的進(jìn)程提出的請求。因此理論上任何應(yīng)用程序執(zhí)行時的錯誤,都不可能讓
系統(tǒng)崩潰(Crash)。
另一方面,微軟對于更強(qiáng)力的操作系統(tǒng)呼聲的回應(yīng)便是
Windows NT于1993年的面世。
1983年開始微軟就想要為MS-DOS建構(gòu)一個圖形化的操作系統(tǒng)應(yīng)用程序,稱為Windows(有人說這是比爾·蓋茨被蘋果的
Lisa電腦上市所刺激)。
一開始Windows并不是一個操作系統(tǒng),只是一個應(yīng)用程序,其背景還是純MS-DOS系統(tǒng),這是因為當(dāng)時的BIOS設(shè)計以及MS-DOS的架構(gòu)不甚良好之故。
在1990年代初,微軟與IBM的合作破裂,微軟從
OS/2(早期為命令行模式,后來成為一個很成功但是曲高和寡的圖形化操作系統(tǒng))項目中抽身,并且在1993年7月27日推出
Windows NT 3.1,一個以O(shè)S/2為基礎(chǔ)的圖形化操作系統(tǒng)。
并在1995年8月15日推出
Windows 95。
直到這時,Windows系統(tǒng)依然是建立在MS-DOS的基礎(chǔ)上,因此消費(fèi)者莫不期待微軟在2000年所推出的
Windows 2000上,因為它才算是第一個脫離MS-DOS基礎(chǔ)的圖形化操作系統(tǒng)。
Windows NT系統(tǒng)的架構(gòu)為:在硬件階層之上,有一個由微內(nèi)核直接接觸的硬件抽象層(HAL),而不同的驅(qū)動程序以模塊的形式掛載在內(nèi)核上執(zhí)行。因此微內(nèi)核可以使用諸如輸入輸出、文件系統(tǒng)、網(wǎng)絡(luò)、信息安全機(jī)制與
虛擬內(nèi)存等功能。而
系統(tǒng)服務(wù)層提供所有統(tǒng)一規(guī)格的函數(shù)調(diào)用庫,可以統(tǒng)一所有副系統(tǒng)的實作方法。例如盡管POSIX與OS/2對于同一件服務(wù)的名稱與調(diào)用方法差異甚大,它們一樣可以無礙地實作于系統(tǒng)服務(wù)層上。在系統(tǒng)服務(wù)層之上的副系統(tǒng),全都是使用者模式,因此可以避免使用者程序執(zhí)行非法行動。
DOS副系統(tǒng)將每個DOS程序當(dāng)成一進(jìn)程執(zhí)行,并以個別獨(dú)立的MS-DOS
虛擬機(jī)器承載其運(yùn)行環(huán)境。另外一個是Windows 3.1 NT 模擬系統(tǒng),實際上是在Win32副系統(tǒng)下執(zhí)行Win16程序。因此達(dá)到了安全掌控為MS-DOS與早期Windows系統(tǒng)所撰寫之舊版程序的能力。然而此架構(gòu)只在Intel 80386處理器及后繼機(jī)型上實作。且某些會直接讀取硬件的程序,例如大部分的Win16游戲,就無法套用這套系統(tǒng),因此很多早期游戲便無法在Windows NT上執(zhí)行。
Windows NT有3.1.3.5.3.51與4.0版。
Windows 2000是Windows NT的改進(jìn)系列(事實上是Windows NT 5.0)、
Windows XP(Windows NT 5.1)以及
Windows Server 2003(Windows NT 5.2)、
Windows Vista(Windows NT 6.0)、Windows 7(Windows NT 6.1)也都是立基于Windows NT的架構(gòu)上。
而本年代漸漸增長并越趨復(fù)雜的
嵌入式設(shè)備市場也促使嵌入式操作系統(tǒng)的成長。
現(xiàn)代操作系統(tǒng)通常都有一個使用的繪圖設(shè)備的圖形化使用者界面,并附加如鼠標(biāo)或觸控面版等有別于鍵盤的輸入設(shè)備。舊的OS或效能導(dǎo)向的服務(wù)器通常不會有如此親切的接口,而是以命令行接口(CLI)加上鍵盤為輸入設(shè)備。以上兩種接口其實都是所謂的殼,其功能為接受并處理使用者的指令(例如按下一按鈕,或在命令提示列上鍵入指令)。
選擇要安裝的操作系統(tǒng)通常與其硬件架構(gòu)有很大關(guān)系,只有Linux與BSD幾乎可在所有硬件架構(gòu)上執(zhí)行,而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都有。
2000年以后
至2005年為止,用于通用計算機(jī)上的分布的操作系統(tǒng)主要兩個家族:類Unix家族和微軟Windows家族。而主機(jī)系統(tǒng)和嵌入式操作系統(tǒng)使用多樣的系統(tǒng),并且很多和Windows、Unix都沒有直接的聯(lián)系。類Unix家族包括多個組織的操作系統(tǒng),其中有幾個主要的子類包括System V、BSD和Linux。這里'Unix'是一個商標(biāo),開發(fā)組織允許使用操作系統(tǒng)在一個定義前提下自由地開發(fā)。這名字是通用大型設(shè)置操作系統(tǒng)類似組織 Unix。Unix系統(tǒng)運(yùn)行在從巨型機(jī)到嵌入式系統(tǒng)的多種機(jī)器架構(gòu)上。Unix主要使用于重要的商務(wù)服務(wù)器系統(tǒng)以及學(xué)院和工程環(huán)境中的工作站之上。和 AT&T Unix不同,自由軟件比如Linux和BSD逐步開始流行,并且開始進(jìn)入桌面操作系統(tǒng)領(lǐng)域。和一些Unix操作系統(tǒng)不同,像
惠普公司的HPUX和IBM 公司的AIX是設(shè)計僅運(yùn)行在客戶購買的設(shè)備上,其中有一些特殊的(比如SUN公司的Solaris)可以運(yùn)行在客戶購買設(shè)備和基于工業(yè)標(biāo)準(zhǔn)的PC上。 APPLE公司的Mac OS X是一個BSD特例,以取代早期小型市場上的蘋果公司Mac OS,眾多流行的Unix操作系統(tǒng)正在走向一體。 微軟公司的Windows操作系統(tǒng)家族起源于早期的IBM PC環(huán)境中的MS-DOS,現(xiàn)在版本是基于新的Windows NT內(nèi)核,第一次是在OS/2中制定。和Unix不同,Windows只能運(yùn)行在32位和64位的x86 CPU(如Intel或者AMD的芯片)上,盡管早期有版本運(yùn)行于DEC Alpha,MIPS 和 PowerPC體系結(jié)構(gòu)。今天Windows是一個流行的操作系統(tǒng),在全球桌面市場中占有90%左右的份額,同時在中低端服務(wù)器市場也有廣泛的應(yīng)用,如 Web服務(wù)器和
數(shù)據(jù)庫服務(wù)器。
大型機(jī)系統(tǒng),比如IBM公司的Z/OS,和嵌入式操作系統(tǒng)比如QNX、eCOs和PalmOS都是和Unix和Windows無關(guān)的操作系統(tǒng),而 Windows CE、Windows NT Embedded 4.0和Windows XP Embedded都是和Windows相關(guān)的。
老的操作系統(tǒng)停留在市場包括類似IBM Windows的OS/2.來自惠普的VMS(以前的DEC);蘋果公司的Mac OS操作系統(tǒng)、非Unix先驅(qū)蘋果公司Mac OS X,以及AmigaOS,第一個圖形用戶界面的操作系統(tǒng),包括對于普通用戶的高級的多媒體能力。
年表
年份 |
系統(tǒng)名稱 |
1956年 |
GM-NAA I/O |
1959年 |
SHARE Operating System |
1960年 |
IBSYS |
1961年 |
CTSS
MCP (Burroughs Large Systems) |
1962年 |
GCOS |
1964年 |
EXEC 8
OS/360 (宣稱)
TOPS-10 |
1965年 |
Multics (宣稱)
OS/360 (上市)
Tape Operating System (TOS) |
1966年 |
DOS/360 (IBM)
MS/8 |
1967年 |
ACP (IBM)
CP/CMS
ITS
WAITS |
1969年 |
TENEX
Unix |
1970年 |
DOS/BATCH 11 (PDP-11) |
1971年 |
OS/8 |
1972年 |
MFT (operating system)
MVT
RDOS
SVS
VM/CMS |
1973年 |
Alto OS
RSX-11D
RT-11
VME |
1974年 |
MVS (MVS/XA) |
1975年 |
BS2000 |
1976年 |
CP/M
TOPS-20 |
1978年 |
Apple DOS 3.1 (蘋果公司第一個操作系統(tǒng))
TripOS
VMS
Lisp Machine (CADR) |
1979年 |
POS
NLTSS |
1980年 |
OS-9
QDOS
SOS
XDE (Tajo)
Xenix |
1981年 |
MS-DOS |
1982年 |
Commodore DOS
SunOS (1.0)
Ultrix |
1983年 |
Lisa OS
Coherent
Novell NetWare
ProDOS |
1984年 |
Macintosh OS (系統(tǒng) 1.0)
MSX-DOS
QNX
UniCOS |
1985年 |
AmigaOS
Atari TOS
MIPS OS
Oberon operating system
Microsoft Windows 1.0 (Windows第一版) |
1986年 |
AIX
GS-OS
HP-UX |
1987年 |
Arthur
IRIX (SGI推出的第一個版本號是3.0)
Minix
OS/2 (1.0)
Microsoft Windows 2.0 |
1988年 |
A/UX (蘋果電腦)
LynxOS
MVS/ESA
OS/400 |
1989年 |
1989年
NeXTSTEP (1.0)
RISC OS
SCO Unix (第三版) |
1990年 |
Amiga OS 2.0
BeOS (v1)
OSF/1
Microsoft Windows 3.0 |
1991年 |
SunOS 4.1.x
Linux |
1992年 |
386BSD 0.1
Amiga OS 3.0
Solaris 2.0 (SunOS 4.x的繼承者,以SVR4為基礎(chǔ),而非BSD)
Microsoft Windows 3.1 |
1993年 |
Solaris 2.1
Solaris 2.2
Solaris 2.3
Plan 9 (第一版)
FreeBSD
NetBSD
Microsoft Windows NT 3.1 (第一版NT) |
1994年 |
Solaris 2.4 |
1995年 |
Solaris 2.5
Digital UNIX (aka Tru64)
OpenBSD
OS/390
Microsoft Windows 95 |
1996年 |
Microsoft Windows95 OSR2(OSR=OEMServicerelease) (即:Windows 97)
Microsoft Windows NT 4.0 |
1997年 |
Solaris 2.6
Inferno
Mac OS 7.6 (第一版官方正式命名為Mac OS)
SkyOS |
1998年 |
Solaris 7 (第一款64位元Solaris版本,是2.7舍棄主版本號的稱謂)
Microsoft Windows 98 |
1999年 |
AROS
Mac OS 8
Microsoft Windows 98 Second Edition |
2000年 |
Solaris 8
AtheOS
Mac OS 9
MorphOS
Microsoft Windows 2000
Microsoft Windows Me
Mac OS X Public Beta (公開測試版)(2000年9月13日) |
2001年 |
Mac OS X 10.0 Cheetah(印度豹)(2001年3月24日)
Amiga OS 4.0 (2001年5月)
Mac OS X 10.1 Puma(美洲獅)(2001年9月25日)
Microsoft Windows XP
z/OS |
2002年 |
Solaris 9 for SPARC
Microsoft Windows XP 64-bit Edition
Windows XP Tablet PC Edition
Windows XP Media Center Edition
Syllable
Mac OS X 10.2 Jaguar(美洲虎)(2002年8月23日) |
2003年 |
Solaris 9 for x86
Microsoft Windows Server 2003 (2003年3月28日)
Microsoft Windows XP 64-bit Edition - 以Microsoft Windows Server 2003為基礎(chǔ),同一天釋出。
Mac OS X 10.3 Panther(黑豹)(2003年10月24日) |
2004年 |
Microsoft Windows XP Media Center Edition |
2005年 |
Solaris 10
Microsoft Windows XP Professional x64 Edition
Mac OS X 10.4 Tiger(老虎)(2005年4月29日) |
2006年 |
Microsoft Windows Vista |
2007年 |
Mac OS X 10.5 Leopard(美洲豹)(2007年10月26日) |
2008年 |
Ubuntu 8.04 LTS
OpenSolaris 08/05
Ubuntu 8.10
OpenSolaris 08/11
Windows Server 2008 |
2009年 |
Ubuntu 9.04
Mac OS X v10.6 Snow Leopard (雪豹)(2009年8月28日)
Windows Server 2008 R2
windows 7
Ubuntu 9.10
Chrome OS |
2010 年 |
ubuntu 10.04
ubuntu 10.10 |
2011年 |
Ubuntu11.04
Ubuntu11.10
Mac OS X 10.7 Lion |
2012年 |
OS X 10.8 Mountain Lion Ubuntu12.04
Microsoft Windows 8 |
操作系統(tǒng)的主要功能是資源管理,程序控制和人機(jī)交互等。計算機(jī)系統(tǒng)的資源可分為設(shè)備資源和信息資源兩大類。設(shè)備資源指的是組成計算機(jī)的硬件設(shè)備,如中央處理器,主存儲器,磁盤存儲器,打印機(jī),磁帶存儲器,顯示器,鍵盤輸入設(shè)備和鼠標(biāo)等。信息資源指的是存放于計算機(jī)內(nèi)的各種數(shù)據(jù),如文件,程序庫,知識庫,系統(tǒng)軟件和應(yīng)用軟件等。
操作系統(tǒng)位于底層硬件與用戶之間,是兩者溝通的橋梁。用戶可以通過操作系統(tǒng)的用戶界面,輸入命令。操作系統(tǒng)則對命令進(jìn)行解釋,驅(qū)動硬件設(shè)備,實現(xiàn)用戶要求。以現(xiàn)代觀點而言,一個標(biāo)準(zhǔn)個人電腦的OS應(yīng)該提供以下的功能:
進(jìn)程管理(Processing management)
記憶空間管理(Memory management)
文件系統(tǒng)(File system)
網(wǎng)絡(luò)通訊(Networking)
安全機(jī)制(Security)
使用者界面(User interface)
驅(qū)動程序(Device drivers)
資源管理
系統(tǒng)的設(shè)備資源和信息資源都是操作系統(tǒng)根據(jù)用戶需求按一定的策略來進(jìn)行分配和調(diào)度的。操作系統(tǒng)的存儲管理就負(fù)責(zé)把內(nèi)存單元分配給需要內(nèi)存的程序以便讓它執(zhí)行,在程序執(zhí)行結(jié)束后將它占用的內(nèi)存單元收回以便再使用。對于提供虛擬存儲的計算機(jī)系統(tǒng),操作系統(tǒng)還要與硬件配合做好頁面調(diào)度工作,根據(jù)執(zhí)行程序的要求分配頁面,在執(zhí)行中將頁面調(diào)入和調(diào)出內(nèi)存以及回收頁面等。
處理器管理或稱處理器調(diào)度,是操作系統(tǒng)資源管理功能的另一個重要內(nèi)容。在一個允許多道程序同時執(zhí)行的系統(tǒng)里,操作系統(tǒng)會根據(jù)一定的策略將處理器交替地分配給系統(tǒng)內(nèi)等待運(yùn)行的程序。一道等待運(yùn)行的程序只有在獲得了處理器后才能運(yùn)行。一道程序在運(yùn)行中若遇到某個事件,例如啟動外部設(shè)備而暫時不能繼續(xù)運(yùn)行下去,或一個外部事件的發(fā)生等等,操作系統(tǒng)就要來處理相應(yīng)的事件,然后將處理器重新分配。
操作系統(tǒng)的設(shè)備管理功能主要是分配和回收外部設(shè)備以及控制外部設(shè)備按用戶程序的要求進(jìn)行操作等。對于非存儲型外部設(shè)備,如
打印機(jī)、
顯示器等,它們可以直接作為一個設(shè)備分配給一個用戶程序,在使用完畢后回收以便給另一個需求的用戶使用。對于存儲型的外部設(shè)備,如磁盤、磁帶等,則是提供存儲空間給用戶,用來存放文件和數(shù)據(jù)。存儲性外部設(shè)備的管理與信息管理是密切結(jié)合的。
信息管理是操作系統(tǒng)的一個重要的功能,主要是向用戶提供一個文件系統(tǒng)。一般說,一個文件系統(tǒng)向用戶提供創(chuàng)建文件,撤銷文件,讀寫文件,打開和關(guān)閉文件等功能。有了文件系統(tǒng)后,用戶可按文件名存取數(shù)據(jù)而無需知道這些數(shù)據(jù)存放在哪里。這種做法不僅便于用戶使用而且還有利于用戶共享公共數(shù)據(jù)。此外,由于文件建立時允許創(chuàng)建者規(guī)定使用權(quán)限,這就可以保證數(shù)據(jù)的安全性。
程序控制
一個用戶程序的執(zhí)行自始至終是在操作系統(tǒng)控制下進(jìn)行的。一個用戶將他要解決的問題用某一種程序設(shè)計語言編寫了一個程序后就將該程序連同對它執(zhí)行的要求輸入到計算機(jī)內(nèi),操作系統(tǒng)就根據(jù)要求控制這個用戶程序的執(zhí)行直到結(jié)束。操作系統(tǒng)控制用戶的執(zhí)行主要有以下一些內(nèi)容:調(diào)入相應(yīng)的編譯程序,將用某種程序設(shè)計語言編寫的源程序編譯成計算機(jī)可執(zhí)行的目標(biāo)程序,分配內(nèi)存儲等資源將程序調(diào)入內(nèi)存并啟動,按用戶指定的要求處理執(zhí)行中出現(xiàn)的各種事件以及與操作員聯(lián)系請示有關(guān)意外事件的處理等。
人機(jī)交互
操作系統(tǒng)的人機(jī)交互功能是決定計算機(jī)系統(tǒng)“友善性”的一個重要因素。人機(jī)交互功能主要靠可輸入輸出的外部設(shè)備和相應(yīng)的軟件來完成?晒┤藱C(jī)交互使用的設(shè)備主要有鍵盤顯示、鼠標(biāo)、各種模式識別設(shè)備等。與這些設(shè)備相應(yīng)的軟件就是操作系統(tǒng)提供人機(jī)交互功能的部分。人機(jī)交互部分的主要作用是控制有關(guān)設(shè)備的運(yùn)行和理解并執(zhí)行通過人機(jī)交互設(shè)備傳來的有關(guān)的各種命令和要求。
進(jìn)程管理
不管是常駐程序或者應(yīng)用程序,他們都以進(jìn)程為標(biāo)準(zhǔn)執(zhí)行單位。當(dāng)年運(yùn)用馮紐曼架構(gòu)建造電腦時,每個中央處理器最多只能同時執(zhí)行一個進(jìn)程。早期的OS(例如DOS)也不允許任何程序打破這個限制,且DOS同時只有執(zhí)行一個進(jìn)程(雖然DOS自己宣稱他們擁有終止并等待駐留(TSR)能力,可以部分且艱難地解決這問題),F(xiàn)代的操作系統(tǒng),即使只擁有一個CPU,也可以利用多進(jìn)程(multitask)功能同時執(zhí)行復(fù)數(shù)進(jìn)程。進(jìn)程管理指的是操作系統(tǒng)調(diào)整復(fù)數(shù)進(jìn)程的功能。
由于大部分的電腦只包含一顆中央處理器,在單內(nèi)核(Core)的情況下多進(jìn)程只是簡單迅速地切換各進(jìn)程,讓每個進(jìn)程都能夠執(zhí)行,在多內(nèi)核或多處理器的情況下,所有進(jìn)程通過許多協(xié)同技術(shù)在各處理器或內(nèi)核上轉(zhuǎn)換。越多進(jìn)程同時執(zhí)行,每個進(jìn)程能分配到的時間比率就越小。很多OS在遇到此問題時會出現(xiàn)諸如音效斷續(xù)或鼠標(biāo)跳格的情況(稱做崩潰(Thrashing),一種OS只能不停執(zhí)行自己的管理程序并耗盡系統(tǒng)資源的狀態(tài),其他使用者或硬件的程序皆無法執(zhí)行)。進(jìn)程管理通常實現(xiàn)了分時的概念,大部分的OS可以利用指定不同的特權(quán)等級(priority),為每個進(jìn)程改變所占的分時比例。特權(quán)越高的進(jìn)程,執(zhí)行優(yōu)先級越高,單位時間內(nèi)占的比例也越高。交互式OS也提供某種程度的回饋機(jī)制,讓直接與使用者交互的進(jìn)程擁有較高的特權(quán)值。
內(nèi)存管理
根據(jù)帕金森定律:“你給程序再多內(nèi)存,程序也會想盡辦法耗光”,因此程序設(shè)計師通常希望系統(tǒng)給他無限量且無限快的內(nèi)存。大部分的現(xiàn)代電腦內(nèi)存架構(gòu)都是階層式的,最快且數(shù)量最少的寄存器為首,然后是高速
緩存、內(nèi)存以及最慢的磁盤儲存設(shè)備。而OS的內(nèi)存管理提供尋找可用的記憶空間、配置與釋放記憶空間以及交換內(nèi)存和低速儲存設(shè)備的內(nèi)含物……等功能。此類又被稱做虛擬內(nèi)存管理的功能大幅增加每個進(jìn)程可獲得的記憶空間(通常是4GB,即使實際上RAM的數(shù)量遠(yuǎn)少于這數(shù)目)。然而這也帶來了微幅降低執(zhí)行效率的缺點,嚴(yán)重時甚至也會導(dǎo)致進(jìn)程崩潰。
內(nèi)存管理的另一個重點活動就是借由CPU的幫助來管理虛擬位置。如果同時有許多進(jìn)程儲存于記憶設(shè)備上,操作系統(tǒng)必須防止它們互相干擾對方的內(nèi)存內(nèi)容(除非通過某些
協(xié)議在可控制的范圍下操作,并限制可存取的內(nèi)存范圍)。分割內(nèi)存空間可以達(dá)成目標(biāo)。每個進(jìn)程只會看到整個內(nèi)存空間(從0到內(nèi)存空間的最大上限)被配置給它自己(當(dāng)然,有些位置被OS保留而禁止存。。CPU事先存了幾個表以比對虛擬位置與實際內(nèi)存位置,這種方法稱為分頁(paging)配置。
借由對每個進(jìn)程產(chǎn)生分開獨(dú)立的位置空間,OS也可以輕易地一次釋放某進(jìn)程所占據(jù)的所有內(nèi)存。如果這個進(jìn)程不釋放內(nèi)存,OS可以退出進(jìn)程并將內(nèi)存自動釋放。
操作系統(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)。
編輯本段內(nèi)核結(jié)構(gòu)
內(nèi)核是操作系統(tǒng)最內(nèi)核最基礎(chǔ)的構(gòu)件,因而,內(nèi)核結(jié)構(gòu)往往對操作系統(tǒng)的外部特性以及應(yīng)用領(lǐng)域有著一定程度的影響。盡管隨著理論和
實踐的不斷演進(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)于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è)計和實現(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)種類繁多,很難用單一標(biāo)準(zhǔn)統(tǒng)一分類。根據(jù)應(yīng)用領(lǐng)域來劃分,可分為
桌面操作系統(tǒng)、
服務(wù)器操作系統(tǒng)、
主機(jī)操作系統(tǒng)、
嵌入式操作系統(tǒng);
根據(jù)所支持的用戶數(shù)目,可分為單用戶(MSDOS、OS/2.Windows)、
多用戶系統(tǒng)(UNIX、MVS);
根據(jù)源碼開放程度,可分為
開源操作系統(tǒng)(Linux、Chrome OS)和不開源操作系統(tǒng)(Mac OS、Windows);
根據(jù)硬件結(jié)構(gòu),可分為
網(wǎng)絡(luò)操作系統(tǒng)(Netware、Windows NT、OS/2 warp)、
分布式系統(tǒng)(Amoeba)、多媒體系統(tǒng)(Amiga)、網(wǎng)絡(luò)操作系統(tǒng)和
分布式操作系統(tǒng)等;
根據(jù)操作系統(tǒng)的使用環(huán)境和對作業(yè)處理方式來考慮,可分為
批處理系統(tǒng)(MVX、DOS/VSE)、分時系統(tǒng)( Linux、UNIX、XENIX、Mac OS)、
實時系統(tǒng)(iEMX、VRTX、RTOS,RT WINDOWS);
根據(jù)操作系統(tǒng)的技術(shù)復(fù)雜程度,可分為簡單操作系統(tǒng)、智能操作系統(tǒng)(見
智能軟件)。所謂簡單操作系統(tǒng),指的是計算機(jī)初期所配置的操作系統(tǒng),如IBM公司的磁盤操作系統(tǒng)DOS/360和微型計算機(jī)的操作系統(tǒng)CP/M等。這類操作系統(tǒng)的功能主要是操作命令的執(zhí)行,文件服務(wù),支持高級
程序設(shè)計語言編譯程序和控制外部設(shè)備等;
根據(jù)指令的長度分為8bit, 16bit, 32bit, 64bit的操作系統(tǒng)。
編輯本段流行的主要操作系統(tǒng)
個人電腦
個人電腦市場從硬件架構(gòu)上來說目前分為兩大陣營,PC機(jī)與Apple電腦。它們支持的操作系統(tǒng):
1
[1]
LINUX吉祥物
由微軟公司生產(chǎn)
Windows徽標(biāo)
2 Unix類操作系統(tǒng)
如
SOLARIS,
BSD系列(
FREEBSD,
openbsd,
netbsd,
pcbsd)
3 Linux類操作系統(tǒng)
如
Ubuntu,
Suse Linux,
Fedora,等
4
Mac操作系統(tǒng)
由蘋果公司生產(chǎn)(Darwin),一般安裝于MAC電腦。
大型電腦
最早的操作系統(tǒng)是針對20世紀(jì)60年代的大型主結(jié)構(gòu)開發(fā)的,由于對這些系統(tǒng)在軟件方面做了巨大投資,因此原來的計算機(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)
批處理(Batch Processing)操作系統(tǒng)的工作方式是:用戶將作業(yè)交給系統(tǒng)操作員,系統(tǒng)操作員將許多用戶的作業(yè)組成一批作業(yè),之后輸入到計算機(jī)中,在系統(tǒng)中形成一個自動轉(zhuǎn)接的連續(xù)的作業(yè)流,然后啟動操作系統(tǒng),系統(tǒng)自動、依次執(zhí)行每個作業(yè)。最后由操作員將作業(yè)結(jié)果交給用戶。
批處理操作系統(tǒng)的特點是:多道和成批處理。
分時操作系統(tǒng)
分時(Time Sharing)操作系統(tǒng)的工作方式是:一臺主機(jī)連接了若干個
終端,每個終端有一個用戶在使用。用戶交互式地向系統(tǒng)提出命令請求,系統(tǒng)接受每個用戶的命令,采用時間片輪轉(zhuǎn)方式處理服務(wù)請求,并通過交互方式在終端上向用戶顯示結(jié)果。用戶根據(jù)上步結(jié)果發(fā)出下道命。分時操作系統(tǒng)將CPU的時間劃分成若干個片段,稱為時間片。操作系統(tǒng)以時間片為單位,輪流為每個終端用戶服務(wù)。每個用戶輪流使用一個時間片而使每個用戶并不感到有別的用戶存在。分時系統(tǒng)具有多路性、交互性、“獨(dú)占”性和及時性的特征。多路性指,伺時有多個用戶使用一臺計算機(jī),宏觀上看是多個人同時使用一個CPU,微觀上是多個人在不同時刻輪流使用CPU。交互性是指,用戶根據(jù)系統(tǒng)響應(yīng)結(jié)果進(jìn)一步提出新請求(用戶直接干預(yù)每一步)。“獨(dú)占”性是指,用戶感覺不到計算機(jī)為其他人服務(wù),就像整個系統(tǒng)為他所獨(dú)占。及時性指,系統(tǒng)對用戶提出的請求及時響應(yīng)。它支持位于不同終端的多個用戶同時使用一臺計算機(jī),彼此獨(dú)立互不干擾,用戶感到好像一臺計算機(jī)全為他所用。
常見的通用操作系統(tǒng)是分時系統(tǒng)與批處理系統(tǒng)的結(jié)合。其原則是:分時優(yōu)先,批處理在后。“前臺”響應(yīng)需頻繁交互的作業(yè),如終端的要求; “
后臺”處理時間性要求不強(qiáng)的作業(yè)。
實時操作系統(tǒng)
實時操作系統(tǒng)(RealTimeOperatingSystem,RTOS)是指使計算機(jī)能及時響應(yīng)外部事件的請求在規(guī)定的嚴(yán)格時間內(nèi)完成對該事件的處理,并控制所有實時設(shè)備和實時任務(wù)協(xié)調(diào)一致地工作的操作系統(tǒng)。實時操作系統(tǒng)要追求的目標(biāo)是:對外部請求在嚴(yán)格時間范圍內(nèi)做出反應(yīng),有高可靠性和完整性。其主要特點是資源的分配和調(diào)度首先要考慮實時性然后才是效率。此外,實時操作系統(tǒng)應(yīng)有較強(qiáng)的容錯能力。
網(wǎng)絡(luò)操作系統(tǒng)
網(wǎng)絡(luò)操作系統(tǒng)是基于計算機(jī)網(wǎng)絡(luò)的,是在各種計算機(jī)操作系統(tǒng)上按
網(wǎng)絡(luò)體系結(jié)構(gòu)協(xié)議標(biāo)準(zhǔn)開發(fā)的軟件,包括
網(wǎng)絡(luò)管理、通信、安全、資源共享和各種網(wǎng)絡(luò)應(yīng)用。其目標(biāo)是相互通信及資源共享。在其支持下,網(wǎng)絡(luò)中的各臺計算機(jī)能互相通信和共享資源。其主要特點是與網(wǎng)絡(luò)的硬件相結(jié)合來完成網(wǎng)絡(luò)的通信任務(wù)。
分布式操作系統(tǒng)
它是為
分布計算系統(tǒng)配置的操作系統(tǒng)。大量的計算機(jī)通過網(wǎng)絡(luò)被連結(jié)在一起,可以獲得極高的運(yùn)算能力及廣泛的數(shù)據(jù)共享。這種系統(tǒng)被稱作分布式系統(tǒng)(DistributedSystem) 。它在資源管理,通信控制和操作系統(tǒng)的結(jié)構(gòu)等方面都與其他操作系統(tǒng)有較大的區(qū)別。由于分布計算機(jī)系統(tǒng)的資源分布于系統(tǒng)的不同計算機(jī)上,操作系統(tǒng)對用戶的資源需求不能像一般的操作系統(tǒng)那樣等待有資源時直接分配的簡單做法而是要在系統(tǒng)的各臺計算機(jī)上搜索,找到所需資源后才可進(jìn)行分配。對于有些資源,如具有多個副本的文件,還必須考慮一致性。所謂一致性是指若干個用戶對同一個文件所同時讀出的數(shù)據(jù)是一致的。為了保證一致性,操作系統(tǒng)須控制文件的讀、寫、操作,使得多個用戶可同時讀一個文件,而任一時刻最多只能有一個用戶在修改文件。分布操作系統(tǒng)的通信功能類似于網(wǎng)絡(luò)操作系統(tǒng)。由于分布計算機(jī)系統(tǒng)不像網(wǎng)絡(luò)分布得很廣,同時分布操作系統(tǒng)還要支持并行處理,因此它提供的通信機(jī)制和網(wǎng)絡(luò)操作系統(tǒng)提供的有所不同,它要求通信速度高。分布操作系統(tǒng)的結(jié)構(gòu)也不同于其他操作系統(tǒng),它分布于系統(tǒng)的各臺計算機(jī)上,能并行地處理用戶的各種需求,有較強(qiáng)的容錯能力。
分布操作系統(tǒng)是網(wǎng)絡(luò)操作系統(tǒng)的更高形式,它保持了網(wǎng)絡(luò)操作系統(tǒng)的全部功能,而且還具有透明性、可靠性、和高性能等。網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)雖然都用于管理分布在不同地理位置的計算機(jī),但最大的差別是:網(wǎng)絡(luò)操作系統(tǒng)知道確切的網(wǎng)址,而分布式系統(tǒng)則不知道計算機(jī)的確切地址;分布之操作系統(tǒng)負(fù)責(zé)整個的資源分配,能很好地隱藏系統(tǒng)內(nèi)部的實現(xiàn)細(xì)節(jié),如對象的物理位置等。這些都是對用戶透明的。
通用與專用、嵌入式
通用操作系統(tǒng)是面向一般沒有特定應(yīng)用需求的操作系統(tǒng)。由于沒有特定的應(yīng)用需求,通用操作系統(tǒng)為了適應(yīng)更廣泛的應(yīng)用,需要支持更多的硬件與軟件,需要針對所有的用戶體驗,對系統(tǒng)進(jìn)行更新。通用操作系統(tǒng)是一個工程量繁重的操作系統(tǒng)。
即時與非即時
“即時作業(yè)系統(tǒng)”(Real Time OS)泛指所有據(jù)有一定實時資源調(diào)度以及通訊能力的操作系統(tǒng)。而所謂“實時”,不同語境中往往有著非常不同的意義。某些時候僅僅用作“高性能”的同義詞。但在操作系統(tǒng)理論中“即時性”所指的通常是特定操作所消耗的時間(以及空間)的上限是可預(yù)知的。比如,如果說某個操作系統(tǒng)提供實時內(nèi)存分配操作,那也就是說一個內(nèi)存分配操作所用時間(及空間)無論如何也不會超出操作系統(tǒng)所承諾的上限。即時性在某些領(lǐng)域非常重要,比如在工業(yè)控制、醫(yī)療器材、影音頻合成、以及軍事領(lǐng)域,即時性都是無可或缺的特性。
常用即時操作系統(tǒng)有
QNX、
VxWorks、
RTLinux等等,而Linux、多數(shù)
UNIX、以及多數(shù)Windows家族成員等都屬于非實時操作系統(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))。
尋址寬度
xp系統(tǒng)
所謂8位、16位、32位、64位、128位等術(shù)語有時指總線寬度,有時指指令寬度(在定長指令集中),而在操作系統(tǒng)理論中主要是指存儲器尋址的寬度。如果存儲器的尋址寬度是16位,那么每一個存儲器地址可以用16個二進(jìn)制位來表示,也就是說可以在64KB的范圍內(nèi)尋址。同樣道理32位的寬度對應(yīng)4GB的尋址范圍,64位的寬度對應(yīng)16 Exabyte的尋址范圍。存儲器尋址范圍并非僅僅是對操作系統(tǒng)而言的,其他類型的軟件的設(shè)計有時也會被尋址范圍而影響。但是在操作系統(tǒng)的設(shè)計與實現(xiàn)中,尋址范圍卻有著更為重要的意義。
在早期的16位操作系統(tǒng)中,由于64KB的尋址范圍太小,大都都采用“段”加“線性地址”的二維平面地址空間的設(shè)計。分配存儲器時通常需要考慮“段置換”的問題,同時,應(yīng)用程序所能夠使用的地址空間也往往有比較小的上限。
在32位操作系統(tǒng)中,4GB的尋址范圍對于一般應(yīng)用程序來說是綽綽有余的,因而,通常使用一維的線性地址空間,而不使用“段”。
研究與建立未來的操作系統(tǒng)依舊進(jìn)行著。操作系統(tǒng)朝提供更省電、網(wǎng)絡(luò)化、華麗的使用者界面的方向來改進(jìn)。Linux及一些類UNIX OS正努力讓自己成為個人用戶舒適的環(huán)境。GNU Hurd是一個企圖完全兼容Unix并加強(qiáng)許多功能的微內(nèi)核架構(gòu)。微軟Singularity是一個奠基于.Net并以建立較佳內(nèi)存保護(hù)機(jī)制為目標(biāo)的研究計劃。