通用操作系統(tǒng)
通用操作系統(tǒng)(GPOS)是一種比專用操作系統(tǒng)更通用的操作系統(tǒng),它可以運行多種應(yīng)用程序,而不需要特定的硬件要求。通用操作系統(tǒng)可以安裝在許多不同的設(shè)備上,它通常側(cè)重于進(jìn)程和硬件管理,以確保應(yīng)用程序可以可靠地使用各種計算硬件。常見的通用操作系統(tǒng)有Windows、macOS、Unix、Linux等。截至2023年1月,Windows是最常用的通用操作系統(tǒng)。
發(fā)展背景
50年代末60年代初,世界上開始出現(xiàn)大量的多通道批處理系統(tǒng)和分時系統(tǒng)。隨著上述兩個系統(tǒng)的不斷完善,實時系統(tǒng)也出現(xiàn)了,操作系統(tǒng)的市場也逐漸完善。通用操作系統(tǒng)是在多通道批處理系統(tǒng)、分時系統(tǒng)和實時操作系統(tǒng)不斷改進(jìn)的基礎(chǔ)上發(fā)展起來的。
從60年代中期開始,國際上開發(fā)了大規(guī)模的通用操作系統(tǒng),可以具有多批分時和實時處理的功能,也可以具有兩種以上的功能。例如,將實時處理和批處理結(jié)合起來,形成實時批處理系統(tǒng)。在這樣的系統(tǒng)中,它首先確保任務(wù)被賦予優(yōu)先級,并且批處理作業(yè)被處理。通常,實時任務(wù)稱為前臺作業(yè),批處理作業(yè)稱為后臺作業(yè)。批處理和分時處理相結(jié)合,形成分時批處理系統(tǒng),優(yōu)先考慮分時用戶。沒有分時用戶時,可以處理批量作業(yè),前臺和后臺也可以處理分時用戶和批量作業(yè)。
原有的通用操作系統(tǒng)非常復(fù)雜龐大,其可靠性、可維護(hù)性和可理解性都比較困難,因此很難普及。直到1969年,美國美國電話電報公司公司的貝爾實驗室發(fā)布了Unix系統(tǒng),這是一種基于內(nèi)核的通用操作系統(tǒng),可以支持內(nèi)核之外的龐大軟件系統(tǒng),從而滿足了各行各業(yè)的需求,對現(xiàn)代操作系統(tǒng)的發(fā)展產(chǎn)生了巨大的影響。隨后的Windows和Linux也是基于Unix開發(fā)的。
80年代,一方面迎來了個人計算機(jī)時代,另一方面向計算機(jī)網(wǎng)絡(luò)、分布式處理、超級計算機(jī)、智能化方向發(fā)展。20世紀(jì)90年代后期,由于個人電腦硬件功能的急劇增加以及用戶對安全和網(wǎng)絡(luò)功能要求的增強,個人電腦的操作系統(tǒng)也從單用戶單任務(wù)操作系統(tǒng)向單用戶多任務(wù)操作系統(tǒng)轉(zhuǎn)變,如微軟公司的DOS系統(tǒng)向Windows系統(tǒng)轉(zhuǎn)變。1992年,太陽微系統(tǒng)發(fā)布的Solaris 2.0是當(dāng)時典型的通用操作系統(tǒng)。它也是基于UNIX開發(fā)的,是一個32位分布式計算環(huán)境,支持完全對稱的多處理器、多任務(wù)和混合多線程策略。
主要結(jié)構(gòu)
模塊化組合結(jié)構(gòu):這種結(jié)構(gòu)常見于軟件工程出現(xiàn)之前的早期操作系統(tǒng)和目前的一些小型操作系統(tǒng),其中MS-DOS系統(tǒng)采用模塊組合結(jié)構(gòu)。在模塊組合結(jié)構(gòu)中,整個操作系統(tǒng)是進(jìn)程的集合,它沒有一致的系統(tǒng)調(diào)用接口。模塊之間通過外部接口傳遞信息,隱藏的程序單元在模塊內(nèi)部實現(xiàn),對其他流程模塊透明。通用操作系統(tǒng)有許多管理模塊,如作業(yè)管理、存儲管理、設(shè)備管理和文件管理。
勞動管理:作業(yè)管理可以提供用戶界面,做好作業(yè)執(zhí)行前的各種準(zhǔn)備和作業(yè)完成后的清理,為他們申請各種必要的資源,保證作業(yè)運行。
在作業(yè)管理模塊中,有一個專門接收用戶命令的處理程序,負(fù)責(zé)響應(yīng)用戶的每一次鍵盤操作。另外,負(fù)責(zé)作業(yè)調(diào)度的程序會根據(jù)一定的算法,從已經(jīng)輸入的多個作業(yè)中選擇一個或多個作業(yè),為其申請內(nèi)存和外部設(shè)備,準(zhǔn)備在CPU上運行。當(dāng)作業(yè)完成后,后處理程序取消作業(yè),即調(diào)用存儲管理系統(tǒng)和設(shè)備管理系統(tǒng)來回收作業(yè)占用的資源,并從系統(tǒng)中刪除作業(yè)。
存儲管理:因為多道程序的存儲資源是內(nèi)存,所以存儲管理一般以內(nèi)存為基礎(chǔ),主要包括用一定的數(shù)據(jù)結(jié)構(gòu)記錄內(nèi)存的使用情況,按照一定的策略分配內(nèi)存,實現(xiàn)內(nèi)存保護(hù)和容量擴(kuò)展。操作系統(tǒng)管理內(nèi)存有多種方式,如分區(qū)、分頁和分段。
設(shè)備管理:設(shè)備管理負(fù)責(zé)管理各種外圍設(shè)備,按照一定的分配策略將設(shè)備分配給某個應(yīng)用程序,并在適當(dāng)?shù)臅r候收回設(shè)備分配給其他應(yīng)用程序。此外,設(shè)備管理還包括輸入和輸出程序假脫機(jī)、設(shè)備驅(qū)動程序和中斷處理程序。此外,由于外部設(shè)備的處理速度遠(yuǎn)低于CPU,如何避免主機(jī)時間的浪費,充分發(fā)揮外設(shè)和主機(jī)的并行工作能力,也是設(shè)備管理中必須考慮的問題。
文件管理:文件是計算機(jī)的軟件資源,程序和數(shù)據(jù)以文件的形式存儲在外部存儲設(shè)備上。應(yīng)該是一個獨立的系統(tǒng),組織結(jié)構(gòu)簡單,用戶使用方便,有安全保護(hù)措施,用戶維護(hù)方便。功能主要包括外部存儲空間的管理和回收,文件的訪問、檢索和更新,以及有效的文件共享。
任務(wù)和流程管理:在多道程序環(huán)境中,通常進(jìn)程管理包括一個負(fù)責(zé)進(jìn)程調(diào)度的程序,按照特定的策略將CPU分配給一個具備運行資格的程序,使其運行。此外,系統(tǒng)還應(yīng)包含一個進(jìn)程控制程序,用于注冊和管理各個進(jìn)程的狀態(tài),實現(xiàn)進(jìn)程的互斥操作和同步操作,協(xié)助進(jìn)程調(diào)度器管理作業(yè)對CPU的競爭。
分級結(jié)構(gòu)
在層級結(jié)構(gòu)中,會對操作系統(tǒng)或軟件系統(tǒng)中的所有模塊進(jìn)行分類,基本模塊放在最基層(或最底層和第一級)。在此基礎(chǔ)上,將一些模塊放在第二層,第二層的模塊在基礎(chǔ)模塊提供的環(huán)境中工作。它只能調(diào)用基層的模塊為它工作,反之亦然。在分層操作系統(tǒng)中,每個模塊都有相對固定的位置和相對固定的層次結(jié)構(gòu)。同級各模塊相對位置的概念可能不是很清楚。一般來說,不同層次的模塊之間不能互換位置,只有單向調(diào)用和單向依賴,其中最典型的操作系統(tǒng)是Unix/Linux系統(tǒng)和Windows 9x。
虛擬機(jī)結(jié)構(gòu)
虛擬機(jī)的基本思想是系統(tǒng)可以提供兩種功能,一是處理多個程序的能力,二是為計算機(jī)提供比計算機(jī)更方便的擴(kuò)展接口?!疤摂M機(jī)”的概念來源于操作系統(tǒng)是覆蓋在裸機(jī)硬件上的一層軟件,它通過系統(tǒng)調(diào)用為位于其上的用戶應(yīng)用服務(wù)。從應(yīng)用的角度來看,操作系統(tǒng)就像一個“計算書”,但它的功能比裸機(jī)硬件更強,它的指令系統(tǒng)是一套系統(tǒng)調(diào)用。因此,從概念上講,操作系統(tǒng)是一個“虛擬機(jī)”。
操作系統(tǒng)為每個獨立運行的進(jìn)程創(chuàng)建一個“虛擬機(jī)”。在這個“虛擬機(jī)”中,進(jìn)程擁有了自己的“CPU”和“內(nèi)存”,同時,進(jìn)程獲得了硬件無法提供的文件系統(tǒng)功能。虛擬機(jī)操作系統(tǒng)就是基于這種思想。
虛擬機(jī)操作系統(tǒng)不提供傳統(tǒng)操作系統(tǒng)中文件系統(tǒng)的功能。原來的虛擬機(jī)只是為進(jìn)程提供了一個訪問底層的接口。它通過重用硬件為每個進(jìn)程提供了硬件的副本,因此所有可以直接在硬件上運行的程序都可以直接在虛擬機(jī)上運行。后來出現(xiàn)了虛擬機(jī)的另外三種架構(gòu):機(jī)器虛擬指令映射組成的虛擬機(jī)。
微核結(jié)構(gòu)
微內(nèi)核架構(gòu)的基本思想是將操作系統(tǒng)中與硬件直接相關(guān)的部分提取出來作為一個公共層,稱為硬件抽象層(HAL)。這個硬件抽象層實際上是一個虛擬機(jī),它通過API接口向基于這個層的所有其他層提供一系列標(biāo)準(zhǔn)服務(wù)。在微內(nèi)核中,它把傳統(tǒng)操作系統(tǒng)內(nèi)核的一些組件(如文件管理系統(tǒng)、進(jìn)程管理、設(shè)備管理、虛擬內(nèi)存和網(wǎng)絡(luò)等。)在內(nèi)核之外,只保留了處理器調(diào)度、存儲管理、消息通信等少數(shù)組件。因此,操作系統(tǒng)的大部分代碼都可以設(shè)計在統(tǒng)一的硬件架構(gòu)上。
微內(nèi)核架構(gòu)的主要特點是:(1)內(nèi)核非常小。(2)很多操作系統(tǒng)服務(wù)不屬于內(nèi)核,而是運行在內(nèi)核上,這樣在高層模塊更新的時候內(nèi)核就不需要重新編譯了。(3)有硬件抽象層,內(nèi)核可以很容易的移植到其他硬件架構(gòu)上。因為當(dāng)需要移植到新的軟件或硬件環(huán)境時,只需對硬件相關(guān)部分稍加修改,就可以將微內(nèi)核嵌入到新的硬件環(huán)境中,大多數(shù)情況下不需要移植外部服務(wù)器或客戶端應(yīng)用。(4)微內(nèi)核具有很強的靈活性和可擴(kuò)展性。如果想實現(xiàn)另一種視圖,可以添加外部服務(wù)器。如果要擴(kuò)展功能,可以添加和擴(kuò)展內(nèi)部服務(wù)器。
常見系統(tǒng)
桌面通用操作系統(tǒng):桌面通用操作系統(tǒng)可以安裝在許多不同型號的臺式機(jī)和筆記本電腦上,并運行從會計系統(tǒng)到數(shù)據(jù)庫到網(wǎng)絡(luò)瀏覽器到游戲的應(yīng)用程序。通用操作系統(tǒng)通常側(cè)重于進(jìn)程(線程)和硬件管理,以確保應(yīng)用程序能夠可靠地共享現(xiàn)有的計算硬件。軟件架構(gòu)主要可以分為兩類,即類Unix操作系統(tǒng)(macOS、Linux等。)和Windows操作系統(tǒng)。Unix的流行版本包括美國電話電報公司和SCO推出的UNIXSVR3.2、UNIXSVR4.0和Univell推出的UNIXSVR4.2。Linux的發(fā)行版本有CentOS、Ubuntu、Ubuntu Kylin、Deepin等。MacOS主要包括OS X Yosemite、macOS Sierra等產(chǎn)品。常用的Windows版本有Windows7、Windows 8/8.1、Windows 10和Windows Server2016/2019服務(wù)器系統(tǒng)。截至2023年1月,Windows是最常用的通用操作系統(tǒng)。
移動通用操作系統(tǒng):移動操作系統(tǒng)旨在滿足智能手機(jī)和平板電腦等以移動計算和通信為中心的設(shè)備的獨特需求。與傳統(tǒng)PC相比,移動設(shè)備通常提供有限的計算資源,操作系統(tǒng)必須減小尺寸和復(fù)雜性,以最大限度地減少其自身的資源使用,同時確保為設(shè)備上運行的一個或多個應(yīng)用程序提供足夠的資源。移動操作系統(tǒng)傾向于強調(diào)高效的性能、用戶響應(yīng)能力和對數(shù)據(jù)處理任務(wù)的密切關(guān)注。手機(jī)通用操作系統(tǒng)有安卓、iOS等。其中,Android從2008年發(fā)布1.0版本開始,每年都有更新優(yōu)化,iOS是蘋果在2007年發(fā)布的操作系統(tǒng),經(jīng)歷了iOS6/7/8/9等多個版本。
其他操作系統(tǒng):分布式/網(wǎng)絡(luò)/網(wǎng)格操作系統(tǒng)
分布式操作系統(tǒng)/網(wǎng)格系統(tǒng)是分布式計算的重要基礎(chǔ),它為分布式和網(wǎng)絡(luò)系統(tǒng)提供了統(tǒng)一的管理平臺。具有較高的性價比;高速;高可靠性和高可擴(kuò)展性,其中典型代表有阿米巴、馬赫、合唱團(tuán)等。
阿米巴是一個分布式操作系統(tǒng),它使多個CPU和輸入/輸出設(shè)備像計算機(jī)一樣協(xié)同工作。阿米巴主要是針對以下兩個硬件假設(shè)而設(shè)計的:①系統(tǒng)有大量的CPUs②每個CPU都有幾十兆的內(nèi)存。
嵌入式/實時操作系統(tǒng):嵌入式/實時操作系統(tǒng)廣泛應(yīng)用于電話系統(tǒng)、工業(yè)控制、數(shù)碼相機(jī)和其他智能電器。它具有體積小、占用資源少的優(yōu)點;多樣性;實時;穩(wěn)定性強,相互作用弱;固化代碼的特點典型的有VxWorks/pSOS、Symbian系統(tǒng)、Windows Mobile、嵌入式Linux、Nucleus、PalmOS、QNX等。VxWorks是美國風(fēng)河系統(tǒng)公司推出的實時操作系統(tǒng)。VxWorks是一個實時操作系統(tǒng),具有可擴(kuò)展性、裁剪性和高可靠性,也適用于所有流行的目標(biāo)CPU平臺。
安全操作系統(tǒng):安全操作系統(tǒng)是計算機(jī)系統(tǒng)安全的基礎(chǔ),用于防范各種安全威脅。具有高安全性的特點,典型代表是Adept-50。Adept-50誕生于1969年,由C.Weissman開發(fā),Adept-50運行在IBM/360硬件平臺上?;谡降母咚荒P?,它實現(xiàn)了美國的軍事安全系統(tǒng)模型。