百科解釋
目錄·類型·功能·操作系統(tǒng)大全·歷史·現(xiàn)在的主要操作系統(tǒng)·歷史列表·功能 操作系是控制其他程序運行,管理系統(tǒng)資源并為用戶提供操作界面的系統(tǒng)軟件的集合。 操作系統(tǒng)(英語;Operating System,簡稱OS)是一管理電腦硬件與軟件資源的程序,同時也是計算機系統(tǒng)的內(nèi)核與基石。操作系統(tǒng)身負諸如管理與配置內(nèi)存、決定系統(tǒng)資源供需的優(yōu)先次序、控制輸入與輸出設(shè)備、操作網(wǎng)絡(luò)與管理文件系統(tǒng)等基本事務(wù)。操作系統(tǒng)是管理計算機系統(tǒng)的全部硬件資源包括軟件資源及數(shù)據(jù)資源;控制程序運行;改善人機界面;為其它應(yīng)用軟件提供支持等,使計算機系統(tǒng)所有資源最大限度地發(fā)揮作用,為用戶提供方便的、有效的、友善的服務(wù)界面。操作系統(tǒng)是一個龐大的管理控制程序,大致包括5個方面的管理功能:進程與處理機管理、作業(yè)管理、存儲管理、設(shè)備管理、文件管理。目前微機上常見的操作系統(tǒng)有DOS、OS/2、UNIX、XENIX、LINUX、Windows、Netware等。但所有的操作系統(tǒng)具有并發(fā)性、共享性、虛擬性和不確定性四個基本特征。 操作系統(tǒng)的型態(tài)非常多樣,不同機器安裝的OS可從簡單到復(fù)雜,可從手機的嵌入式系統(tǒng)到超級電腦的大型操作系統(tǒng)。許多操作系統(tǒng)制造者對OS的定義也不大一致,例如有些OS集成了圖形化使用者界面,而有些OS僅使用文本接口,而將圖形界面視為一種非必要的應(yīng)用程序。 操作系統(tǒng)理論在計算機科學(xué)中為歷史悠久而又活躍的分支,而操作系統(tǒng)的設(shè)計與實現(xiàn)則是軟件工業(yè)的基礎(chǔ)與內(nèi)核。 類型 操作系統(tǒng)大致可分為6種類型。 ①簡單操作系統(tǒng)。它是計算機初期所配置的操作系統(tǒng),如IBM公司的磁盤操作系統(tǒng)DOS/360和微型計算機的操作系統(tǒng)CP/M等。這類操作系統(tǒng)的功能主要是操作命令的執(zhí)行,文件服務(wù),支持高級程序設(shè)計語言編譯程序和控制外部設(shè)備等。 ②分時系統(tǒng)。它支持位于不同終端的多個用戶同時使用一臺計算機,彼此獨立互不干擾,用戶感到好像一臺計算機全為他所用。 ③實時操作系統(tǒng)。它是為實時計算機系統(tǒng)配置的操作系統(tǒng)。其主要特點是資源的分配和調(diào)度首先要考慮實時性然后才是效率。此外,實時操作系統(tǒng)應(yīng)有較強的容錯能力。 ④網(wǎng)絡(luò)操作系統(tǒng)。它是為計算機網(wǎng)絡(luò)配置的操作系統(tǒng)。在其支持下,網(wǎng)絡(luò)中的各臺計算機能互相通信和共享資源。其主要特點是與網(wǎng)絡(luò)的硬件相結(jié)合來完成網(wǎng)絡(luò)的通信任務(wù)。 ⑤分布操作系統(tǒng)。它是為分布計算系統(tǒng)配置的操作系統(tǒng)。它在資源管理,通信控制和操作系統(tǒng)的結(jié)構(gòu)等方面都與其他操作系統(tǒng)有較大的區(qū)別。由于分布計算機系統(tǒng)的資源分布于系統(tǒng)的不同計算機上,操作系統(tǒng)對用戶的資源需求不能像一般的操作系統(tǒng)那樣等待有資源時直接分配的簡單做法而是要在系統(tǒng)的各臺計算機上搜索,找到所需資源后才可進行分配。對于有些資源,如具有多個副本的文件,還必須考慮一致性。所謂一致性是指若干個用戶對同一個文件所同時讀出的數(shù)據(jù)是一致的。為了保證一致性,操作系統(tǒng)須控制文件的讀、寫、操作,使得多個用戶可同時讀一個文件,而任一時刻最多只能有一個用戶在修改文件。分布操作系統(tǒng)的通信功能類似于網(wǎng)絡(luò)操作系統(tǒng)。由于分布計算機系統(tǒng)不像網(wǎng)絡(luò)分布得很廣,同時分布操作系統(tǒng)還要支持并行處理,因此它提供的通信機制和網(wǎng)絡(luò)操作系統(tǒng)提供的有所不同,它要求通信速度高。分布操作系統(tǒng)的結(jié)構(gòu)也不同于其他操作系統(tǒng),它分布于系統(tǒng)的各臺計算機上,能并行地處理用戶的各種需求,有較強的容錯能力。⑥智能操作系統(tǒng)(見智能軟件)。 功能 操作系統(tǒng)的主要功能是資源管理,程序控制和人機交互等。計算機系統(tǒng)的資源可分為設(shè)備資源和信息資源兩大類。設(shè)備資源指的是組成計算機的硬件設(shè)備,如中央處理器,主存儲器,磁盤存儲器,打印機,磁帶存儲器,顯示器,鍵盤輸入設(shè)備和鼠標等。信息資源指的是存放于計算機內(nèi)的各種數(shù)據(jù),如文件,程序庫,知識庫,系統(tǒng)軟件和應(yīng)用軟件等。 資源管理 系統(tǒng)的設(shè)備資源和信息資源都是操作系統(tǒng)根據(jù)用戶需求按一定的策略來進行分配和調(diào)度的。操作系統(tǒng)的存儲管理就負責把內(nèi)存單元分配給需要內(nèi)存的程序以便讓它執(zhí)行,在程序執(zhí)行結(jié)束后將它占用的內(nèi)存單元收回以便再使用。對于提供虛擬存儲的計算機系統(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)等待運行的程序。一道等待運行的程序只有在獲得了處理器后才能運行。一道程序在運行中若遇到某個事件,例如啟動外部設(shè)備而暫時不能繼續(xù)運行下去,或一個外部事件的發(fā)生等等,操作系統(tǒng)就要來處理相應(yīng)的事件,然后將處理器重新分配。 操作系統(tǒng)的設(shè)備管理功能主要是分配和回收外部設(shè)備以及控制外部設(shè)備按用戶程序的要求進行操作等。對于非存儲型外部設(shè)備,如打印機、顯示器等,它們可以直接作為一個設(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)控制下進行的。一個用戶將他要解決的問題用某一種程序設(shè)計語言編寫了一個程序后就將該程序連同對它執(zhí)行的要求輸入到計算機內(nèi),操作系統(tǒng)就根據(jù)要求控制這個用戶程序的執(zhí)行直到結(jié)束。操作系統(tǒng)控制用戶的執(zhí)行主要有以下一些內(nèi)容:調(diào)入相應(yīng)的編譯程序,將用某種程序設(shè)計語言編寫的源程序編譯成計算機可執(zhí)行的目標程序,分配內(nèi)存儲等資源將程序調(diào)入內(nèi)存并啟動,按用戶指定的要求處理執(zhí)行中出現(xiàn)的各種事件以及與操作員聯(lián)系請示有關(guān)意外事件的處理等。 人機交互 操作系統(tǒng)的人機交互功能是決定計算機系統(tǒng)“友善性”的一個重要因素。人機交互功能主要靠可輸入輸出的外部設(shè)備和相應(yīng)的軟件來完成?晒┤藱C交互使用的設(shè)備主要有鍵盤顯示、鼠標、各種模式識別設(shè)備等。與這些設(shè)備相應(yīng)的軟件就是操作系統(tǒng)提供人機交互功能的部分。人機交互部分的主要作用是控制有關(guān)設(shè)備的運行和理解并執(zhí)行通過人機交互設(shè)備傳來的有關(guān)的各種命令和要求。早期的人機交互設(shè)施是鍵盤顯示器。操作員通過鍵盤打入命令,操作系統(tǒng)接到命令后立即執(zhí)行并將結(jié)果通過顯示器顯示。打入的命令可以有不同方式,但每一條命令的解釋是清楚的,唯一的。隨著計算機技術(shù)的發(fā)展,操作命令也越來越多,功能也越來越強。隨著模式識別,如語音識別、漢字識別等輸入設(shè)備的發(fā)展,操作員和計算機在類似于自然語言或受限制的自然語言這一級上進行交互成為可能。此外,通過圖形進行人機交互也吸引著人們?nèi)ミM行研究。這些人機交互可稱為智能化的人機交互。這方面的研究工作正在積極開展。 操作系統(tǒng)大全 早期操作系統(tǒng)(專利保護) TRS-DOS,ROM OS's TI99-4 Commodore PET,64,和 VIC-20, 第一套IBM-PC 蘋果電腦 Sinclair Micro和QnX等 非Unix商業(yè)操作系統(tǒng) CPM操作系統(tǒng) MP/M-80 UCSD P-system Mini-FLEX SSB-DOS CP/M-86 DR-DOS FreeDOS MS-DOS PC-DOS Mach 由卡納尼基梅隆大學(xué)研究 L4微內(nèi)核 第二代微內(nèi)核 CHORUS Choices Multics OS-9 NSJ Netware:一種網(wǎng)絡(luò)服務(wù)器操作系統(tǒng) Unix及類似系統(tǒng) A/UX(Apple UNIX) Unix 微軟Xenix ChorusOS Cromix UNIflex OS-9 IBM的AIX BSD FreeBSD NetBSD OpenBSD DragonFly BSD PC-BSD Digital UNIX,即之后康柏Tru64 DNIX HP的HP-UX GNU/Hurd SGI的IRIX Inferno Linux(或稱GNU/Linux) Mac OS X MenuetOS Minix OSF/1 Plan9 SCO的SCO UNIX Sun的SunOS,即之后的Solaris System V Ultrix UniCOS 麒麟操作系統(tǒng)(Kylin),由國防科技大學(xué)、中軟公司、聯(lián)想公司、浪潮公司和民族恒星公司五家單位合作研制的服務(wù)器操作系統(tǒng) OS/390 z/OS Syllable 其他 Acorn Arthur ARX RISC OS RISCiX Amiga AmigaOS Atari ST TOS MultiTOS MiNT 蘋果電腦(Apple/Macintosh) Apple DOS ProDOS Mac OS Mac OS X pink OS BeOS A/UX Be BeOS BeIA Digital/康柏(Compaq) AIS OS-8 RSTS/E RSX-11 RT-11 TOPS-10 TOPS-20 VMS(后更名為OpenVMS) IBM OS/2 AIX OS/400 OS/390 VM/CMS DOS/VSE VSE/SP VSE/ESA OS/360 MFT MVT SVS MVS TPF ALCS z/OS PC-DOS pink OS 微軟(Microsoft) MS-DOS Xenix Microsoft Bob 基于MS-DOS操作系統(tǒng)的Windows Windows 1.0 Windows 2.0 Windows 3.1 Windows 95 Windows 98 Windows ME Windows NT Windows NT 3.5 Windows NT 4 Windows 2000 Windows XP Windows XP SP1 Windows XP SP2 Windows XP SP3 Windows XP Media Center Edition Windows XP Home Edition Windows XP Tablet PC Edition Windows XP Professional Windows XP Professional x64 Edition Windows Server 2003 Windows Server 2003 64-bit Edition Windows Vista Windows Vista SP1 Windows Vista Home Basic Windows Vista Home Premium Windows Vista Business Windows Vista Ultimate Windows Vista Enterprise Windows Vista Starter Windows Server 2008 Windows Server "Longhorn" Web x86 Windows Server "Longhorn" Web x64 Windows Server "Longhorn" Standard x86 Windows Server "Longhorn" Standard x64 Windows Server "Longhorn" Enterprise x86 Windows Server "Longhorn" Enterprise x64 Windows Server "Longhorn" Datacenter x86 Windows Server "Longhorn" Datacenter x64 Novell NetWare Unixware SUSE Linux NeXT NEXTSTEP(即之后的Mac OS X) Plan 9 Inferno Prime Computer Primos 西門子 BS2000 - 用于西門子公司的大型主機。 SINIX(也稱Reliant UNIX) - 用于西門子公司的UNIX電腦系統(tǒng)。 個人電子助理(PDA)操作系統(tǒng) Palm OS Pocket PC EPOC Microsoft Windows CE Linux 智能手機操作系統(tǒng) Windows Mobile系列 Embedded Linux由Montavista創(chuàng)造,在Motorola's A760,E680等機型上使用 Mobilinux由Montavista創(chuàng)造 Symbian OS系列 其他操作系統(tǒng) 動態(tài)可擴展操作系統(tǒng) MIT的Exo Kernel 華盛頓大學(xué)的 SPIN 哈佛大學(xué)的 VINO illinois大學(xué)的Choices ReactOS 歷史 各類平臺上操作系統(tǒng)的功能演化綜觀電腦之歷史,操作系統(tǒng)與電腦硬件的發(fā)展息息相關(guān)。操作系統(tǒng)之本意原為提供簡單的工作排序能力,后為輔助更新更復(fù)雜的硬件設(shè)施而漸漸演化。從最早的批次模式開始,分時機制也隨之出現(xiàn),在多處理器時代來臨時,操作系統(tǒng)也隨之添加多處理器協(xié)調(diào)功能,甚至是分布式系統(tǒng)的協(xié)調(diào)功能。其他方面的演變也類似于此。另一方面,在個人電腦上,個人電腦之操作系統(tǒng)因襲大型電腦的成長之路,在硬件越來越復(fù)雜、強大時,也逐步實踐以往只有大型電腦才有的功能。 總而言之,操作系統(tǒng)的歷史就是一部解決電腦系統(tǒng)需求與問題的歷史。 1980年代前 Maurice Vincent Wilkes,微程序的創(chuàng)建者 IBM System/360,大型主機的經(jīng)典之作第一部電腦并沒有操作系統(tǒng)。這是由于早期電腦的建立方式(如同建造機械算盤)與效能不足以執(zhí)行如此程序。但在1947年發(fā)明了晶體管,以及莫里斯·威爾克斯(Maurice V. Wilkes)發(fā)明的微程序方法,使得電腦不再是機械設(shè)備,而是電子產(chǎn)品。系統(tǒng)管理工具以及簡化硬件操作流程的程序很快就出現(xiàn)了,且成為操作系統(tǒng)的濫觴。到了1960年代早期,商用電腦制造商制造了批次處理系統(tǒng),此系統(tǒng)可將工作的建置、調(diào)度以及執(zhí)行序列化。此時,廠商為每一臺不同型號的電腦創(chuàng)造不同的操作系統(tǒng),因此為某電腦而寫的程序無法移植到其他電腦上執(zhí)行,即使是同型號的電腦也不行。 到了1964年,IBM System/360推出了一系列用途與價位都不同的大型電腦,而它們都共享代號為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機器上執(zhí)行! OS/360也包含另一個優(yōu)點:永久貯存設(shè)備—硬盤驅(qū)動器的面世(IBM稱為DASD(Direct access storage device))。另一個關(guān)鍵是分時概念的建立:將大型電腦珍貴的時間資源適當分配到所有使用者身上。分時也讓使用者有獨占整部機器的感覺;而Multics的分時系統(tǒng)是此時眾多新操作系統(tǒng)中實踐此觀念最成功的。 1963年,奇異公司與貝爾實驗室合作以PL/I語言建立的Multics[1],是激發(fā)1970年代眾多操作系統(tǒng)建立的靈感來源,尤其是由AT&T貝爾實驗室的丹尼斯·里奇與肯·湯普遜所建立的Unix系統(tǒng),為了實踐平臺移植能力,此操作系統(tǒng)在1969年由C語言重寫;另一個廣為市場采用的小型電腦操作系統(tǒng)是VMS。 80年代 第一代微型計算機并不像大型電腦或小型電腦,沒有裝設(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ū)和打印機。它可用8KB只讀內(nèi)存BASIC語言來直接操作BIOS,并依此撰寫程序,大部分是游戲。此BASIC語言的解釋器勉強可算是此電腦的操作系統(tǒng),當然就沒有內(nèi)核或軟硬件保護機制了。此電腦上的游戲大多跳過BIOS層次,直接控制硬件。 家用電腦C64的抽象架構(gòu) 簡單應(yīng)用程序 機器語言 (游戲直接操作) 8k BASIC ROM 8k ROM-BIOS 硬件(中央處理器、儲存設(shè)備等) 早期最著名的磁盤啟動型操作系統(tǒng)是CP/M,它支持許多早期的微電腦,且被MS-DOS大量抄襲其功能。最早期的IBM PC其架構(gòu)類似C64。當然它們也使用了BIOS以初始化與抽象化硬件的操作,甚至也附了一個BASIC解釋器!但是它的BASIC優(yōu)于其他公司產(chǎn)品的原因在于他有可攜性,并且兼容于任何符合IBM PC架構(gòu)的機器上。這樣的PC可利用Intel-8088處理器(16-bit寄存器)尋址,并最多可有1MB的內(nèi)存,然而最初只有640KB。軟式磁盤機取代了過去的磁帶機,成為新一代的儲存設(shè)備,并可在他512KB的空間上讀寫。為了支持更進一步的文件讀寫概念,磁盤操作系統(tǒng)(Disk Operating System,DOS)因而誕生。此操作系統(tǒng)可以合并任意數(shù)量的磁區(qū),因此可以在一張磁盤片上放置任意數(shù)量與大小的文件。文件之間以檔名區(qū)別。IBM并沒有很在意其上的DOS,因此以向外部公司購買的方式取得操作系統(tǒng)。1980年微軟公司利用騙術(shù)[2]取得了與IBM的合約,并且收購了一家公司出產(chǎn)的操作系統(tǒng),在將之修改后以MS-DOS的名義出品,此操作系統(tǒng)可以直接讓程序操作BIOS與文件系統(tǒng)。到了Intel-80286處理器的時代,才開始實作基本的儲存設(shè)備保護措施。MS-DOS的架構(gòu)并不足以滿足所有需求,因為它同時只能執(zhí)行最多一個程序(如果想要同時執(zhí)進程式,只能使用TSR的方式來跳過OS而由程序自行處理多任務(wù)的部份),且沒有任何內(nèi)存保護措施。對驅(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的成功使得微軟成為地球上最賺錢的公司之一。 MS-DOS在個人電腦上的抽象架構(gòu) 普通應(yīng)用程序(Shell s cript、文本編輯器) MS-DOS(文件系統(tǒng)) BIOS(驅(qū)動程序) 硬件(中央處理器、儲存設(shè)備等) 而1980年代另一個崛起的操作系統(tǒng)異數(shù)是Mac OS,此操作系統(tǒng)緊緊與麥金塔電腦捆綁在一起。此時一位全錄伯拉圖實驗室的員工Dominik Hagen訪問了蘋果電腦的史蒂夫·喬布斯,并且向他展示了此時全錄發(fā)展的圖形化使用者界面。蘋果電腦驚為天人,并打算向全錄購買此技術(shù),但因伯拉圖實驗室并非商業(yè)單位而是研究單位,因此全錄回絕了這項買賣。在此之后蘋果一致認為個人電腦的未來必定屬于圖形使用者界面,因此也開始發(fā)展自己的圖形化操作系統(tǒng),F(xiàn)今許多我們認為是基本要件的圖形化接口技術(shù)與規(guī)則,都是由蘋果電腦打下的基礎(chǔ)(例如下拉式菜單、桌面圖標、拖曳式操作與雙點擊等)。但正確來說,圖形化使用者界面的確是全錄創(chuàng)始的。 90年代 Apple I電腦,蘋果電腦的第一代產(chǎn)品。延續(xù)1980年代的競爭,1990年代出現(xiàn)了許多影響未來個人電腦市場深厚的操作系統(tǒng)。由于圖形化使用者界面日趨繁復(fù),操作系統(tǒng)的能力也越來越復(fù)雜與巨大,因此強韌且具有彈性的操作系統(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的法律爭端,使得遠在芬蘭赫爾辛基大學(xué)的另一股開源操作系統(tǒng)——Linux興起。Linux內(nèi)核是一個標準POSIX內(nèi)核,其血緣可算是Unix家族的一支。Linux與BSD家族都搭配GNU計劃所發(fā)展的應(yīng)用程序,但是由于使用的許可證以及歷史因素的作弄下,Linux取得了相當可觀的開源操作系統(tǒng)市占率,而BSD則小得多。相較于MS-DOS的架構(gòu),Linux除了擁有傲人的可移植性(相較于Linux,MS-DOS只能運行在Intel CPU上),它也是一個分時多進程內(nèi)核,以及良好的內(nèi)存空間管理(普通的進程不能存取內(nèi)核區(qū)域的內(nèi)存)。想要存取任何非自己的內(nèi)存空間的進程只能通過系統(tǒng)調(diào)用來達成。一般進程是處于使用者模式(User mode)底下,而執(zhí)行系統(tǒng)調(diào)用時會被切換成內(nèi)核模式(Kernel mode),所有的特殊指令只能在內(nèi)核模式執(zhí)行,此措施讓內(nèi)核可以完美管理系統(tǒng)內(nèi)部與外部設(shè)備,并且拒絕無權(quán)限的進程提出的請求。因此理論上任何應(yīng)用程序執(zhí)行時的錯誤,都不可能讓系統(tǒng)崩潰(Crash)。 幾乎完整的Linux架構(gòu)圖 使用者 模式 應(yīng)用程序(sh、vi、OpenOffice.org等) 復(fù)雜函數(shù)庫(KDE、glib 等) 簡單函數(shù)庫(opendbm、sin 等) C函數(shù)庫(open、fopen、socket、exec、calloc 等) 內(nèi)核 模式 系統(tǒng)中斷、調(diào)用、錯誤等軟硬件消息 內(nèi)核(驅(qū)動程序、進程、網(wǎng)絡(luò)、內(nèi)存管理等) 硬件(處理器、內(nèi)存、各種設(shè)備) 另一方面,微軟對于更強力的操作系統(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),這是因為當時的BIOS設(shè)計以及MS-DOS的架構(gòu)不甚良好之故。在1990年代初,微軟與IBM的合作破裂,微軟從OS/2(早期為命令行模式,后來成為一個很成功但是曲高和寡的圖形化操作系統(tǒng))項目中抽身,并且在1993年7月27日推出Windows 3.1,一個以O(shè)S/2為基礎(chǔ)的圖形化操作系統(tǒng)。并在1995年8月15日推出Windows 95。直到這時,Windows系統(tǒng)依然是建立在MS-DOS的基礎(chǔ)上,因此消費者莫不期待微軟在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ò)、信息安全機制與虛擬內(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í)行非法行動。 簡化版本的Windows NT抽象架構(gòu) 使用者 模式 OS/2 應(yīng)用程序 Win32 應(yīng)用程序 DOS 程序 Win16 應(yīng)用程序 POSIX 應(yīng)用程序 其他DLL函數(shù)庫 DOS 系統(tǒng) Windows 模擬系統(tǒng) OS/2 副系統(tǒng) Win32 副系統(tǒng) POSIX.1 副系統(tǒng) 內(nèi)核 模式 系統(tǒng)服務(wù)層 輸入輸出管理 文件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng) 對象管理系統(tǒng) / 安全管理系統(tǒng) / 進程管理 / 對象間通訊管理 / 進程間通訊管理 / 虛擬內(nèi)存管理 微內(nèi)核 窗口管理程序 驅(qū)動程序 硬件抽象層(HAL) 圖形驅(qū)動 硬件(處理器、內(nèi)存、外部設(shè)備等) 副系統(tǒng)架構(gòu)第一個實作的副系統(tǒng)群當然是以前的微軟系統(tǒng)。DOS副系統(tǒng)將每個DOS程序當成一進程執(zhí)行,并以個別獨立的MS-DOS虛擬機器承載其運行環(huán)境。另外一個是Windows 3.1模擬系統(tǒng),實際上是在Win32副系統(tǒng)下執(zhí)行Win16程序。因此達到了安全掌控為MS-DOS與早期Windows系統(tǒng)所撰寫之舊版程序的能力。然而此架構(gòu)只在Intel 80386處理器及后繼機型上實作。且某些會直接讀取硬件的程序,例如大部分的Win16游戲,就無法套用這套系統(tǒng),因此很多早期游戲便無法在Windows NT上執(zhí)行。Windows NT有3.1、3.5、3.51與4.0版。Windows 2000是Windows NT的改進系列(事實上是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è)備的圖形化使用者界面,并附加如鼠標或觸控面版等有別于鍵盤的輸入設(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為最主要的另類選擇,直至今日。 大型機與嵌入式系統(tǒng)使用很多樣化的操作系統(tǒng)。大型主機近期有許多開始支持Java及Linux以便共享其他平臺的資源。嵌入式系統(tǒng)近期百家爭鳴,從給Sensor Networks用的Berkeley Tiny OS到可以操作Microsoft Office的Windows CE都有。 現(xiàn)在的主要操作系統(tǒng) 個人電腦 個人電腦市場從硬件架構(gòu)上來說目前分為兩大陣營,PC機與Apple電腦。 它們支持的操作系統(tǒng): 1Windows系列操作系統(tǒng) 由微軟公司生產(chǎn); 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世紀60年代的大型主結(jié)構(gòu)開發(fā)的,由于對這些系統(tǒng)在軟件方面做了巨大投資,因此原來的計算機廠商繼續(xù)開發(fā)與原來操作系統(tǒng)相兼容的硬件與操作系統(tǒng)。這些早期的操作系統(tǒng)是現(xiàn)代操作系統(tǒng)的先驅(qū),F(xiàn)在仍被支持的大型主機操作系統(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)代的大型主機一般也可運行Linux或Unix變種。 嵌入式系統(tǒng) 嵌入式系統(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) 一個在Linux底下執(zhí)行的客制化KDE桌面系統(tǒng)所謂的類Unix家族指的是一族種類繁多的OS,此族包含了System V、BSD與Linux。由于Unix是The Open Group的注冊商標,特指遵守此公司定義的行為的操作系統(tǒng)。而類Unix通常指的是比原先的Unix包含更多特征的OS。 Unix系統(tǒng)可在非常多的處理器架構(gòu)下執(zhí)行,在服務(wù)器系統(tǒng)上有很高的使用率,例如大專院;蚬こ虘(yīng)用的工作站。自由軟件Unix變種,例如Linux與BSD近來越來越受歡迎,它們也在個人桌面電腦市場上大有斬獲,例如Ubuntu系統(tǒng),但大部分都是電腦高手在使用。 某些Unix變種,例如HP的HP-UX以及IBM的AIX僅設(shè)計用于自家的硬件產(chǎn)品上,而SUN的Solaris可安裝于自家的硬件或x86電腦上。蘋果電腦的Mac OS X是一個從NeXTSTEP、Mach以及FreeBSD共同派生出來的微內(nèi)核BSD系統(tǒng),此OS取代了蘋果電腦早期非Unix家族的Mac OS。經(jīng)歷數(shù)年的披荊斬棘,自由開源的Unix系統(tǒng)逐漸蠶食鯨吞以往專利軟件的專業(yè)領(lǐng)域,例如以往電腦動畫運算巨擘──SGI的IRIX系統(tǒng)已被Linux家族及Plan 9[3]叢集所取代。 微軟Windows Microsoft Windows 系列操作系統(tǒng)是在微軟給IBM機器設(shè)計的MS-DOS的基礎(chǔ)上設(shè)計的圖形操作系統(tǒng),F(xiàn)在的Windows系統(tǒng),如Windows 2000、Windows XP皆是建立于現(xiàn)代的Windows NT內(nèi)核。NT內(nèi)核是由OS/2和OpenVMS等系統(tǒng)上借用來的。Windows 可以在32位和64位的Intel和AMD的處理器上運行,但是早期的版本也可以在DEC Alpha、MIPS與PowerPC架構(gòu)上運行。 雖然由于人們對于開放源代碼作業(yè)系統(tǒng)興趣的提升,Windows的市場占有率有所下降,但是到2004年為止,Windows操作系統(tǒng)在世界范圍內(nèi)占據(jù)了桌面操作系統(tǒng)90%的市場。[4] Windows系統(tǒng)也被用在低階和中階服務(wù)器上,并且支持網(wǎng)頁服務(wù)的數(shù)據(jù)庫服務(wù)等一些功能。最近微軟花費了很大研究與開發(fā)的經(jīng)費用于使Windows擁有能運行企業(yè)的大型程序的能力。 WindowsXP在2001年10月25日發(fā)布,2004年8月24日發(fā)布最新的升級包WindowsXP Service Pack 2。 微軟最新的操作系統(tǒng) Windows Vista(開發(fā)代碼為Longhorn)于2007年1月30日發(fā)售[5]。Windwos Vista增加了許多功能,尤其是系統(tǒng)的安全性和網(wǎng)絡(luò)管理功能。Windows Vista擁有界面華麗的Aero Glass。 蘋果Mac OS 蘋果Mac OS系列操作系統(tǒng)是蘋果公司 (原稱蘋果電腦)給蘋果個人電腦系列設(shè)計的OS。 其他 大型主機以及嵌入式操作系統(tǒng)均與Unix或Windows家族關(guān)系不大,除了Windows CE、Windows NT Embedded 4.0及Windows XP Embedded是Windows的血親產(chǎn)品,以及數(shù)種*BSD和嵌入式Linux包為例外。 少數(shù)較舊的OS今日依然在一些需要穩(wěn)定性的市場中活躍,例如IBM的OS/2[6]BeOS以及XTS-400。 在達康時代狂潮過后,如AmigaOS與RISC OS等少數(shù)人使用的OS依然持續(xù)建立,以滿足狂熱的愛好者社群與特殊專業(yè)使用者。 未來 研究與建立未來的操作系統(tǒng)依舊進行著。操作系統(tǒng)朝提供更省電、網(wǎng)絡(luò)化、華麗的使用者界面的方向來改進。Linux及一些類UNIX OS正努力讓自己成為個人用戶舒適的環(huán)境。GNU Hurd是一個企圖完全兼容Unix并加強許多功能的微內(nèi)核架構(gòu)。微軟Singularity是一個奠基于.Net并以建立較佳內(nèi)存保護機制為目目標研究計劃。 歷史列表 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年 NeXTSTEP (1.0) RISC OS SCO Unix (第三版) 1990年 Amiga OS 2.0 BeOS (v1) OSF/1 Microsoft Windows 3.0 1991年 Linux 1992年 386BSD 0.1 Amiga OS 3.0 Solaris 2.0 (SunOS 4.x的繼承者,以SVR4為基礎(chǔ),而非BSD) Microsoft Windows 3.1 1993年 Plan 9 (第一版) FreeBSD NetBSD Microsoft Windows NT 3.1 (第一版NT) 1995年 Digital UNIX (aka Tru64) OpenBSD OS/390 Microsoft Windows 95 1996年 Windows NT 4.0 1997年 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年 AtheOS Mac OS 9 MorphOS Microsoft Windows 2000 Microsoft Windows Me 2001年 Amiga OS 4.0 (2001年5月) Mac OS X 10.1 Microsoft Windows XP z/OS 2002年 Microsoft Windows XP 64-bit Edition Windows XP Tablet PC Edition Windows XP Media Center Edition Syllable Mac OS X 10.2 2003年 Microsoft Windows Server 2003 (2003年3月28日) Microsoft Windows XP 64-bit Edition - 以Microsoft Windows Server 2003為基礎(chǔ),同一天釋出。 Mac OS X 10.3 2004年 Microsoft Windows XP Media Center Edition 2005年 Microsoft Windows XP Professional x64 Edition Mac OS X 10.4 2006年 Microsoft Windows Vista 2007年 Mac OS X 10.5 2008年 Windows Server 2008 功能 操作系統(tǒng)位于底層硬件與用戶之間,是兩者溝通的橋梁。用戶可以通過操作系統(tǒng)的用戶界面,輸入命令。操作系統(tǒng)則對命令進行解釋,驅(qū)動硬件設(shè)備,實現(xiàn)用戶要求。以現(xiàn)代觀點而言,一個標準個人電腦的OS應(yīng)該提供以下的功能: 進程管理(Processing management) 記憶空間管理(Memory management) 文件系統(tǒng)(File system) 網(wǎng)絡(luò)通訊(Networking) 安全機制(Security) 使用者界面(User interface) 驅(qū)動程序(Device drivers) 進程管理 不管是常駐程序或者應(yīng)用程序,他們都以進程為標準執(zhí)行單位。當年運用馮紐曼架構(gòu)建造電腦時,每個中央處理器最多只能同時執(zhí)行一個進程。早期的OS(例如DOS)也不允許任何程序打破這個限制,且DOS同時只有執(zhí)行一個進程(雖然DOS自己宣稱他們擁有終止并等待駐留(TSR)能力,可以部分且艱難地解決這問題),F(xiàn)代的操作系統(tǒng),即使只擁有一個CPU,也可以利用多進程(multitask)功能同時執(zhí)行復(fù)數(shù)進程。進程管理指的是操作系統(tǒng)調(diào)整復(fù)數(shù)進程的功能。 由于大部分的電腦只包含一顆中央處理器,在單內(nèi)核(Core)的情況下多進程只是簡單迅速地切換各進程,讓每個進程都能夠執(zhí)行,在多內(nèi)核或多處理器的情況下,所有進程通過許多協(xié)同技術(shù)在各處理器或內(nèi)核上轉(zhuǎn)換。越多進程同時執(zhí)行,每個進程能分配到的時間比率就越小。很多OS在遇到此問題時會出現(xiàn)諸如音效斷續(xù)或鼠標跳格的情況(稱做崩潰(Thrashing),一種OS只能不停執(zhí)行自己的管理程序并耗盡系統(tǒng)資源的狀態(tài),其他使用者或硬件的程序皆無法執(zhí)行)。進程管理通常實踐了分時的概念,大部分的OS可以利用指定不同的特權(quán)等級(priority),為每個進程改變所占的分時比例。特權(quán)越高的進程,執(zhí)行優(yōu)先級越高,單位時間內(nèi)占的比例也越高。交互式OS也提供某種程度的回饋機制,讓直接與使用者交互的進程擁有較高的特權(quán)值。 除了進程管理之外,OS尚有擔負起進程間通訊(IPC)、進程異常終止處理以及死結(jié)(Dead lock)偵測及處理等較為艱深的問題。 在進程之下尚有線程的問題,但是大部分的OS并不會處理線程所遭遇的問題,通常OS僅止于提供一組API讓使用者自行操作或通過虛擬機器的管理機制控制線程之間的交互。 內(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)存管理的功能大幅增加每個進程可獲得的記憶空間(通常是4GB,即使實際上RAM的數(shù)量遠少于這數(shù)目)。然而這也帶來了微幅降低執(zhí)行效率的缺點,嚴重時甚至也會導(dǎo)致進程崩潰。 內(nèi)存管理的另一個重點活動就是借由CPU的幫助來管理虛擬位置。如果同時有許多進程儲存于記憶設(shè)備上,操作系統(tǒng)必須防止它們互相干擾對方的內(nèi)存內(nèi)容(除非通過某些協(xié)議在可控制的范圍下操作,并限制可存取的內(nèi)存范圍)。分割內(nèi)存空間可以達成目標。每個進程只會看到整個內(nèi)存空間(從0到內(nèi)存空間的最大上限)被配置給它自己(當然,有些位置被OS保留而禁止存取)。CPU事先存了幾個表以比對虛擬位置與實際內(nèi)存位置,這種方法稱為分頁(paging)配置。 借由對每個進程產(chǎn)生分開獨立的位置空間,OS也可以輕易地一次釋放某進程所占據(jù)的所有內(nèi)存。如果這個進程不釋放內(nèi)存,OS可以退出進程并將內(nèi)存自動釋放。 磁盤與文件系統(tǒng) 所謂的文件系統(tǒng),通常指稱管理磁盤數(shù)據(jù)的系統(tǒng),可將數(shù)據(jù)以目錄或文件的型式儲存。每個文件系統(tǒng)都有自己的特殊格式與功能,例如日志管理或不需磁盤重整。 OS擁有許多種內(nèi)置文件系統(tǒng)。例如Linux擁有非常廣泛的內(nèi)置文件系統(tǒng),如ext2、ext3、ReiserFS、Reiser4、GFS、GFS2、OCFS、OCFS2、NILFS與Google文件系統(tǒng)。Linux也支持非本地文件系統(tǒng),例如XFS、JFS、FAT家族與NTFS。另一方面,Windows能支持的文件系統(tǒng)只有FAT12、FAT16、FAT32與NTFS。NTFS系統(tǒng)是Windows上最可靠與最有效率的文件系統(tǒng)。其他的FAT家族都比NTFS老舊,且對于文件長度與分割磁盤能力都有很大限制,因此造成很多問題。而UNIX的文件系統(tǒng)多半是UFS,而UNIX中的一個分支Solaris最近則開始支持一種新式的ZFS 大部份上述的文件系統(tǒng)都有兩種建置方法。系統(tǒng)可以以日志式(Journaling file system)或非日志式建置。日志式文件系統(tǒng)可以以較安全的手法執(zhí)行系統(tǒng)回復(fù)。如果一個沒有日志式建置的文件系統(tǒng)遇上突然的系統(tǒng)崩潰,導(dǎo)致數(shù)據(jù)建立在一半時停頓,則此系統(tǒng)需要特殊的文件系統(tǒng)檢查工具才能撤消;日志式則可自動回復(fù)。微軟的NTFS與Linux的ext3、reiserFS與JFS都是日志式文件系統(tǒng)。 每個文件系統(tǒng)都實作相似的目錄/子目錄架構(gòu),但在相似之下也有許多不同點。微軟使用“”符號以建立目錄/子目錄關(guān)系,且文件名稱忽略其大小寫差異;UNIX系統(tǒng)則是以“/”建立目錄架構(gòu),且文件名稱大小寫有差異。 網(wǎng)絡(luò) 許多現(xiàn)代的OS都具備操作主流網(wǎng)絡(luò)通訊協(xié)議TCP/IP的能力。也就是說這樣的操作系統(tǒng)可以進入網(wǎng)絡(luò)世界,并且與其他系統(tǒng)分享諸如文件、打印機與掃描器等資源。 許多OS也支持多個過去網(wǎng)絡(luò)啟蒙時代的各路網(wǎng)絡(luò)通訊協(xié)議,例如IBM建立的SNA、DEC在它所生產(chǎn)的系統(tǒng)所設(shè)置的DECnet架構(gòu)與微軟為Windows制作的特殊通訊協(xié)議。還有許多為了特殊功能而研發(fā)的通訊協(xié)議,例如可以在網(wǎng)絡(luò)上提供文件存取功能的NFS系統(tǒng),F(xiàn)今大量用于影音流(Streaming media)及游戲消息傳送的UDP協(xié)議等。 安全 大多數(shù)OS都含有某種程度的信息安全機制。信息安全機制主要基于兩大理念: OS提供外界直接或間接存取數(shù)種資源的管道,例如本地端磁盤機的文件、受保護的特權(quán)系統(tǒng)調(diào)用(System call)、使用者的隱私數(shù)據(jù)與系統(tǒng)執(zhí)行的程序所提供的服務(wù)。 OS有能力認證(Authorization)資源存取的請求。允許通過認證的請求并拒絕無法通過的非法請求,并將適當?shù)臋?quán)力授權(quán)(Authentication)給此請求。有些系統(tǒng)的認證機制僅簡略地把資源分為特權(quán)或非特權(quán),且每個請求都有獨特的身份辨識號碼,例如使用者名稱。資源請求通常分成兩大種類: 內(nèi)部來源:通常是一個正在執(zhí)行的程序發(fā)出的資源請求。在某些系統(tǒng)上,一個程序一旦可執(zhí)行就可做任何事情(例如DOS時代的病毒),但通常OS會給程序一個識別代號,并且在此程序發(fā)出請求時,檢查其代號與所需資源的存取權(quán)限關(guān)系。 外部來源:從非本地端電腦而來的資源請求,例如遠程登入本機電腦或某些網(wǎng)絡(luò)連接請求(FTP或HTTP)。為了識別這些外部請求,系統(tǒng)也許會對此請求提出認證要求。通常是請求輸入使用者名稱以及相對應(yīng)的密碼。系統(tǒng)有時也會應(yīng)用諸如磁卡或生物識別數(shù)據(jù)的它種認證方法。在某些例子,例如網(wǎng)絡(luò)通訊上,通常不需通過認證即可存取資源(例如匿名存取的FTP服務(wù)器或P2P服務(wù))。 除了允許/拒絕形式的安全機制,一個高安全等級的系統(tǒng)也會提供記錄選項,允許記錄各種請求對資源存取的行為(例如“誰曾經(jīng)讀了這個文件?”)。 肇因于軍方與商業(yè)組織將敏感數(shù)據(jù)記錄在電腦上,安全機制在OS歷史上是一個被長久關(guān)注與討論的問題。美國國防部(DoD)便創(chuàng)立了《可信賴之計算機系統(tǒng)評鑒程序》(TCSEC),此手冊確立了評鑒安全機制成效的基本原則。這對OS作者來說非常重要,因為TCSEC是用于評鑒、分類與選拔出用于處理、儲存與獲取敏感或機密數(shù)據(jù)的電腦系統(tǒng)的標準程序。 內(nèi)部信息安全 內(nèi)部信息安全可視為防止正在執(zhí)行的程序任意存取系統(tǒng)資源的手段。大多OS讓普通程序可直接操作電腦的CPU,所以產(chǎn)生了一些問題,例如怎樣把可如OS一樣處理事務(wù)、執(zhí)行同樣特殊指令的程序強迫停止,畢竟在此情境下,OS也只是另一個平起平坐的程序。為通用OS所生產(chǎn)的CPU通常于硬件層級上實踐了一定程度的特殊指令保護概念。通常特權(quán)層級較低的程序想要執(zhí)行某些特殊指令時會被阻斷,例如直接存取像是硬盤之類的外部設(shè)備。因此,程序必須得經(jīng)由詢問OS,讓OS執(zhí)行特殊指令來存取磁盤。因此OS就有機會檢查此程序的識別身份,并依此接受或拒絕它的請求。 在不支持特殊指令架構(gòu)的硬件上,另一個也是唯一的保護方法,則是OS并不直接利用CPU執(zhí)行使用者的程序,而是借由模擬一個CPU或提供一p-Code系統(tǒng)(偽代碼執(zhí)行機),像是Java一樣讓程序在虛擬機器上執(zhí)行。 內(nèi)部安全機制在多使用者電腦上特別重要:它允許每個系統(tǒng)使用者擁有自己個人的文件與目錄,且其他使用者不能任意存取或刪除。因為任何程序都可能繞過OS的監(jiān)控,更有可能繞過側(cè)錄程序的監(jiān)控,擁有強制力的內(nèi)部安全機制在側(cè)錄啟動時也非常重要。 外部信息安全 通常一個操作系統(tǒng)會為其他網(wǎng)絡(luò)上的電腦或使用者提供(主持)各種服務(wù)。這些服務(wù)通常借由端口或OS網(wǎng)絡(luò)地址后的數(shù)字存取點提供。通常此服務(wù)包括提供文件共享(NTFS)、打印共享、電子郵件、網(wǎng)頁服務(wù)與文件傳輸協(xié)議(FTP)。 外部信息安全的最前線,是諸如防火墻等的硬件設(shè)備。在OS內(nèi)部也常設(shè)置許多種類的軟件防火墻。軟件防火墻可設(shè)置接受或拒絕在OS上執(zhí)行的服務(wù)與外界的連接。因此任何人都可以安裝并執(zhí)行某些不安全的網(wǎng)絡(luò)服務(wù),例如Telnet或FTP,并且設(shè)置除了某些自用通道之外阻擋其他所有連接,以達成防賭不良連接的機制。 使用者界面 今日大部分的OS都包含圖形化使用者界面。有幾類較舊的OS將圖形化使用者界面與內(nèi)核緊密結(jié)合,例如最早的Windows與Mac OS實作產(chǎn)品。此種手法可提供較快速的圖形回應(yīng)能力,且實作時不需切割模塊因而較為省工,但是會有強烈副作用,例如圖形系統(tǒng)崩潰將導(dǎo)致整個系統(tǒng)崩潰,例如死亡藍屏幕。許多近代的OS已模塊化,將圖形界面的副系統(tǒng)與內(nèi)核分開(已知Linux與Mac OS X原先就是如此設(shè)計,而某些擴充版本的Windows終于也采用此手法)。 許多OS允許使用者安裝或創(chuàng)造任何他們喜歡的圖形界面[7]。大部分的Unix與Unix派生系統(tǒng)(BSD、Linux與Minix)通常會安裝X Window系統(tǒng)配合GNOME或KDE桌面環(huán)境。而某些OS就沒有這么彈性的圖形化使用者界面,例如Windows。這類的OS只能通過外加的程序來改變其圖形化使用者界面,甚或根本只能改變諸如菜單風(fēng)格或顏色配置等部分[來源請求]。 圖形化使用者界面與時并進,例如Windows在每次新版本上市時就會將其圖形化使用者界面改頭換面,而Mac OS的GUI也在Mac OS X上市時出現(xiàn)重大轉(zhuǎn)變。 驅(qū)動程序 所謂的驅(qū)動程序是指某類設(shè)計來與硬件交互的電腦軟件。通常是一設(shè)計完善的設(shè)備交互接口,利用與此硬件連接的電腦匯排流或通訊子系統(tǒng),提供對此設(shè)備下令與接收信息的功能;以及最終目的,將消息提供給OS或應(yīng)用程序。驅(qū)動程序是針對特定硬件與特定OS設(shè)計的軟件,通常以操作系統(tǒng)內(nèi)核模塊、應(yīng)用軟件包或普通電腦程序的形式在OS內(nèi)核底下執(zhí)行,以達到通透順暢地與硬件交互的效果,且提供硬件在處理異步的時間依賴性接口(asynchronous time-dependent hardware interface)時所需的中斷處理程序(Interrupt handler)。 設(shè)計驅(qū)動程序的主要目的在于操作抽象化,任何硬件模塊,即使是同一類的設(shè)備,在硬件設(shè)計面上也有巨大差異。廠商推出的較新模塊通常更可靠更有效率,控制方法也會有所不同。電腦與其OS每每不能預(yù)期那些現(xiàn)有與新設(shè)備的變異之處,因此無法知道其操作方法。為解決此問題OS通常會主動制訂每種設(shè)備該有的操作方式,而驅(qū)動程序功能則是將那些OS制訂的行為描述,轉(zhuǎn)譯為可讓設(shè)備了解的自定義操作手法。 理論上適合的驅(qū)動程序一旦安裝,相對應(yīng)的新設(shè)備就可以無誤地執(zhí)行。此新驅(qū)動程序可以讓此設(shè)備完美地切合在OS中,讓使用者察覺不到這是OS原本沒有的功能。 結(jié)構(gòu) 操作系統(tǒng)理論研究者有時把操作系統(tǒng)分成四大部分: 驅(qū)動程序 - 最底層的、直接控制和監(jiān)視各類硬件的部分,它們的職責是隱藏硬件的具體細節(jié),并向其他部分提供一個抽象的、通用的接口。 內(nèi)核 - 操作系統(tǒng)之最內(nèi)核部分,通常運行在最高特權(quán)級,負責提供基礎(chǔ)性、結(jié)構(gòu)性的功能。 支承庫 - (亦作“接口庫”)是一系列特殊的程序庫,它們指責在于把系統(tǒng)所提供的基本服務(wù)包裝成應(yīng)用程序所能夠使用的編程接口(API),是最靠近應(yīng)用程序的部分。例如,GNU C運行期庫就屬于此類,它把各種操作系統(tǒng)的內(nèi)部編程接口包裝成ANSI C和POSIX編程接口的形式。 外圍 - 所謂外圍,是指操作系統(tǒng)中除以上三類以外的所有其他部分,通常是用于提供特定高級服務(wù)的部件。例如,在微內(nèi)核結(jié)構(gòu)中,大部分系統(tǒng)服務(wù),以及UNIX/Linux中各種守護進程都通常被劃歸此列。 當然,這里的四部結(jié)構(gòu)觀也絕非放之四海皆準。例如,在早期的微軟視窗操作系統(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)、和虛擬機結(jié)構(gòu)。 分類 操作系統(tǒng)的分類沒有一個單一的標準,可以根據(jù)工作方式分為批處理操作系統(tǒng)、分時操作系統(tǒng)、實時操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)等;根據(jù)架構(gòu)可以分為單內(nèi)核操作系統(tǒng)等;根據(jù)運行的環(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)件,因而,內(nèi)核結(jié)構(gòu)往往對操作系統(tǒng)的外部特性以及應(yīng)用領(lǐng)域有著一定程度的影響。盡管隨著理論和實踐的不斷演進,操作系統(tǒng)高層特性與內(nèi)核結(jié)構(gòu)之間的耦合有日趨縮小之勢,但習(xí)慣上,內(nèi)核結(jié)構(gòu)仍然是操作系統(tǒng)分類之常用標準。 內(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),強調(diào)結(jié)構(gòu)性部件與功能性部件的分離。20世紀末,基于微內(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)(但通常認為此種性能優(yōu)勢不能完全歸功于單內(nèi)核結(jié)構(gòu))。 通用與專用、嵌入式 通用操作系統(tǒng)是面向一般沒有特定應(yīng)用需求的操作系統(tǒng)。由于沒有特定的應(yīng)用需求,通用操作系統(tǒng)為了適應(yīng)更廣泛的應(yīng)用,需要支持更多的硬件與軟件,需要針對所有的用戶體驗,對系統(tǒng)進行更新。通用操作系統(tǒng)是一個工程量繁重的操作系統(tǒng)。 實時與非實時 “實時操作系統(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)核上建立實時操作系統(tǒng),很多在Windows上建立的實時操作系統(tǒng)就屬于此類。 在POSIX標準中專有一系用于規(guī)范實時操作系統(tǒng)的API,其中包括POSIX.4、POSIX.4a、POSIX.4b(合稱POSIX.4)以及POSIX.13等等。符合POSIX.4的操作系統(tǒng)通常被認可為實時操作系統(tǒng)(但實時操作系統(tǒng)并不需要符合POSIX.4標準)。
移動通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團隊博客 | 免責聲明 | 關(guān)于詞典 | 幫助