米熱古麗·克比爾
摘要:自從計算機操作系統(tǒng)誕生以來,已經(jīng)經(jīng)歷了幾十年的光景,在這幾十年中也產(chǎn)生了諸多的操作系統(tǒng)結(jié)構(gòu)。本文首先對主要的集中操作系統(tǒng)結(jié)構(gòu)進行了分析,隨后對其進行了一定的比較分析,介紹了其各自的優(yōu)點和缺點。希望通過本文的研究和分析,可以對我國計算機操作系統(tǒng)的發(fā)展起到一定的促進作用。
關鍵詞:計算機;操作系統(tǒng);體系結(jié)構(gòu)
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)33-0238-03
在計算機中,操作系統(tǒng)是其最基本也是最為重要的基礎性系統(tǒng)軟件。從計算機用戶的角度來說,計算機操作系統(tǒng)體現(xiàn)在其提供的各項服務;從程序員的角度來說,其制藥是指用戶登錄的界面或者接口;如果從設計人員的角度來說,就是指各式各樣模塊和單元之間的聯(lián)系,也就是本文所研究的操作系統(tǒng)的體系結(jié)構(gòu)【1】。事實上,全新操作系統(tǒng)的設計和改良的關鍵工作就是對體系結(jié)構(gòu)的設計,經(jīng)過幾十年以來的發(fā)展,計算機操作系統(tǒng)已經(jīng)由一開始的簡單控制循環(huán)體發(fā)展成為較為復雜的分布式操作系統(tǒng),再加上計算機用戶需求的愈發(fā)多樣化,計算機操作系統(tǒng)已經(jīng)成為既復雜而又龐大的計算機軟件系統(tǒng)之一。相關學者的研究表明,對計算機軟件系統(tǒng)體系結(jié)構(gòu)的研究和分析可以有利于軟件系統(tǒng)的復雜性的處理,因此,本文的研究和分析具有一定的現(xiàn)實意義。
1主要操作系統(tǒng)體系結(jié)構(gòu)概述
1.1 簡單體系結(jié)構(gòu)
計算機操作系統(tǒng)誕生初期,其體系結(jié)構(gòu)就屬于簡單體系結(jié)構(gòu),由于當時各式各樣影響因素的作用,如硬件性能、平臺、軟件水平等方面的限制,使得當時的計算機操作系統(tǒng)結(jié)構(gòu)呈現(xiàn)出一種混亂且結(jié)構(gòu)模糊的狀態(tài),其操作系統(tǒng)的用戶應用程序和其內(nèi)核程序魚龍混雜,甚至其運行的地址和空間都是一致的【2】。這種操作系統(tǒng)實際上就是一系列過程和項目的簡單組合,使用的模塊方法也相對較為粗糙,因此導致其結(jié)構(gòu)宏觀上非常模糊。
1.2 單體內(nèi)核結(jié)構(gòu)系統(tǒng)
隨著科學技術的不斷發(fā)展和進步,硬件及其平臺的水平和性能得到了很大程度的提高,其數(shù)量和種類也與日俱增,操作系統(tǒng)的復雜性也逐漸加深,其具備的功能以及性能越來越多,在此背景下,單體內(nèi)核結(jié)構(gòu)的操作系統(tǒng)誕生并得到了應用,例如UNIX操作系統(tǒng)、windows NT/XP等。
一般情況下,單體內(nèi)核結(jié)構(gòu)的操作系統(tǒng)主要具備以下集中功能,分別是文件及內(nèi)存管理、設備驅(qū)動、CPU調(diào)度以及網(wǎng)絡協(xié)議處理等【3】。由于內(nèi)核的復雜性不斷加深,相關的開發(fā)設計人員為了實現(xiàn)對其良好的控制,逐漸開始使用了一些較為成熟的模塊化方法,并根據(jù)其不同的功能將其進行結(jié)構(gòu)化,進而將其劃分為諸多的模塊,例如文件及內(nèi)存管理模塊、驅(qū)動模塊、CPU調(diào)度模塊及網(wǎng)絡協(xié)議處理等【4】。這些模塊所使用的地址和空間與內(nèi)核使用的完全一致,其以函數(shù)調(diào)用的方式構(gòu)建了用于通訊的結(jié)構(gòu)來實現(xiàn)各個模塊之間的通訊。在使用模塊化的方法以后,制藥其通訊接口沒有發(fā)生明顯的變化,即使整個結(jié)構(gòu)中的任何一個模塊發(fā)生變化也不會對結(jié)構(gòu)中的其他模塊造成任何的影響,為其系統(tǒng)的維護和改良擴充提供了便利。
雖然單體內(nèi)核結(jié)構(gòu)的計算機操作系統(tǒng)經(jīng)過了模塊化的處理,但是其中的全部模塊仍然是在硬件之上、應用軟件之下的操作系統(tǒng)核心中運轉(zhuǎn)和工作。模塊與模塊之間活動的層次沒有任何的差別。
1.3 層次式結(jié)構(gòu)
層次式結(jié)構(gòu)的計算機操作系統(tǒng)是為了減少以往操作系統(tǒng)中各個模塊之間由于聯(lián)系緊密而帶來的各種問題而誕生的,其可以做大程度的減少甚至是避免循環(huán)調(diào)用現(xiàn)象的發(fā)生,確保調(diào)用有序,為操作系統(tǒng)設計目標的實現(xiàn)奠定了堅實的基礎【5】。
在層次式結(jié)構(gòu)的計算機操作系統(tǒng)之中,其是由諸多系統(tǒng)分為若干個層次的,其最底層是硬件羅技,其他每一個層級均是建立在其下一層級之上的。在設計其計算機操作系統(tǒng)內(nèi)核時,主要采用與抽象數(shù)據(jù)類型十分類似的設計方法進行的,在系統(tǒng)中的每一個層級均包含著多種數(shù)據(jù)和操作,且每一個的數(shù)據(jù)和操作是其他層不可見的,在每一層當中都配備了用于其他層使用的唯一操作接口,同時每一層發(fā)生的訪問行為只能針對其下層進行,不能訪問其上層的數(shù)據(jù)和服務,嚴格遵守了調(diào)用規(guī)則,在很大程度上避免了其他層次對某一層次的干擾和破壞。
對于理想的層次式計算機系統(tǒng)體系結(jié)構(gòu)來說,其之間的聯(lián)系不僅僅是單向依賴性的,同時各個層級之間也要具備相互的獨立性,且只能對低層次的模塊和功能進行調(diào)用,例如THE系統(tǒng)。但是這種理想的全序?qū)哟问接嬎銠C操作系統(tǒng)在現(xiàn)實中建成是較為困難的,其無法完全避免模塊之間循環(huán)調(diào)用現(xiàn)象的出現(xiàn),某個層級之間仍舊存在某種循環(huán)關系,這種層次式結(jié)構(gòu)又被叫作半序?qū)哟问接嬎銠C操作系統(tǒng),例如SUE操作系統(tǒng)。
1.4 微內(nèi)核結(jié)構(gòu)
微內(nèi)核計算機操作系統(tǒng)體系結(jié)構(gòu)又可以被叫作客戶機結(jié)構(gòu)或者服務器結(jié)構(gòu),其實際上就是一種將系統(tǒng)中的代碼轉(zhuǎn)移到更高層次當中,盡可能地減少操作系統(tǒng)中的東西,僅僅保留一個小體積的內(nèi)核,一般情況下其使用的主要方法就是通過用戶進程來實現(xiàn)操作系統(tǒng)所具備的各項功能,具體來說就是用戶進程可以將相關的請求和要求發(fā)送到服務器當中,然后由服務器完成相關的操作以后在通過某種渠道反饋到用戶進程當中。在微內(nèi)核結(jié)構(gòu)中,操作系統(tǒng)的內(nèi)核主要工作就是對客戶端和服務器之間的通信進行處理,在系統(tǒng)中包括許多部分,每一個部分均具備某一方面的功能,例如文件服務、進程服務、終端服務等,這樣的部分相對較小,相關的管理工作也較為便利。這種機構(gòu)的服務的運行都是以用戶進程的形式呈現(xiàn)的,既不在核心中運行,也不直接地對硬件進行訪問,這樣一來即使服務器發(fā)生錯誤或受到破壞也不會對系統(tǒng)造成影響,僅僅只是會造成相對應服務器的崩潰。
1.5 外核結(jié)構(gòu)
外核結(jié)構(gòu)的計算機操作系統(tǒng)本質(zhì)上就是為了獲得更高的性能和靈活性而設計出來的,在系統(tǒng)中,操作系統(tǒng)接口處于硬件層,在內(nèi)核中提出全部由以往操作系統(tǒng)帶來的抽象,并將重點和關鍵放在了更多硬件資源的復用方面。在操作系統(tǒng)的外核結(jié)構(gòu)中,內(nèi)核負責的主要工作僅僅為簡單的申請操作以及釋放和復用硬件資源,其由以往操作系統(tǒng)提供的抽象全部在用戶空間當中運行。
一般情況下,外核結(jié)構(gòu)中的內(nèi)核主要有三大方面的工作,分別是對資源的所有權(quán)進行跟蹤、為操作系統(tǒng)的安全提供保護以及撤銷對資源的訪問行為。在核外,基本上所有的操作系統(tǒng)中的抽象都是以庫的形式呈現(xiàn)出來的,而用戶在訪問硬件資源時也是通過庫的調(diào)用來完成的。
2 各個操作系統(tǒng)體系結(jié)構(gòu)優(yōu)缺點的分析與比較
2.1 簡單結(jié)構(gòu)的操作系統(tǒng)
1)優(yōu)點
結(jié)構(gòu)相對較為緊湊,模塊之間的組合較為簡單,同時可以根據(jù)環(huán)境和需求進行組裝和裁剪,靈活性相對較高,并且由于其在各個過程間都可以直接使用,因此系統(tǒng)的效率相對較高【6】。
2)缺點
首先,由上可知,簡單結(jié)構(gòu)的操作系統(tǒng)的結(jié)構(gòu)相對較為模糊,各個過程之間經(jīng)常性地發(fā)生沒有任何規(guī)律的互相調(diào)用和以來,其過程之間的網(wǎng)絡和聯(lián)系過于復雜,因此這就導致難以對其結(jié)構(gòu)有一個清晰的認知和判斷;其次,該系統(tǒng)各個過程之間的聯(lián)系過于緊密,牽一發(fā)而動全身,對任何一過程進行改動都有可能對其他過程造成影響,導致該系統(tǒng)的可維護性相對較低;最后則是簡單結(jié)構(gòu)的操作系統(tǒng)的可靠性相對較低,主要原因是因為其各個過程之間的聯(lián)系過于復雜,難以確保處理這些復雜關系程序的正確性,再加上在其系統(tǒng)中的任何一個過程都可以在其他過程中可見,其隱藏信息的作用較差,因此其安全性較低。
2.2 單體內(nèi)核結(jié)構(gòu)操作系統(tǒng)
1)優(yōu)點
結(jié)構(gòu)簡單,便于理解;其操作系統(tǒng)模塊基本上都處于操作系統(tǒng)的內(nèi)核當中,其性能較為有缺;而且單體內(nèi)核結(jié)構(gòu)操作系統(tǒng)中的各個模塊相對獨立,任意模塊的改變不會對其他模塊造成影響,因此其安全性和可靠性相對較高。
2)缺點
由上我們可以知道,該操作系統(tǒng)中沒有專門對其核心部件的保護措施;同時其模塊的數(shù)量相對較多,造成其之間的關系較為復雜,由此導致其結(jié)構(gòu)從整體上看仍舊較為復雜,擴充性和靈活性都較為低下。
2.3 分層式結(jié)構(gòu)的操作系統(tǒng)
1)優(yōu)點
分層式結(jié)構(gòu)的計算機操作系統(tǒng)的體系結(jié)構(gòu)具有其他操作系統(tǒng)無法比擬的優(yōu)勢,即系統(tǒng)驗證和系統(tǒng)調(diào)試較為便利。具體內(nèi)容如下【7】:第一層在硬件裸機上搭建而成,如果硬件裸機不存在問題,就可以對第一層進行調(diào)試,這樣一來可以在很大程度上確保第一層的正確性和合理性;當確保第一層準確無誤以后,就可以對第二層進行調(diào)試。利用這么層層遞進的方式進行調(diào)試和驗證,可以在很大程度上保證整個系統(tǒng)的正確性。如果在驗證或者演練的過程中發(fā)現(xiàn)存在錯誤,那么就可以確定錯誤就是由該層產(chǎn)生的,在很大程度上為系統(tǒng)的正確性提供了保證,同時也使得相關的驗證和調(diào)試工作更加便利。
2)缺點
但是,分層式結(jié)構(gòu)的操作系統(tǒng)也有著無法忽視的缺點,即系統(tǒng)設計十分困難。在該系統(tǒng)中,每一層只能通過訪問其下層提供的服務才可以完成其功能,因此該系統(tǒng)對于其每一層的設計都是十分嚴格的。在該系統(tǒng)的內(nèi)核中,各個模塊之間存在的調(diào)用關系是呈網(wǎng)狀分布,很難將其轉(zhuǎn)化為層次結(jié)構(gòu),甚至只能將多個模塊組合為一個層次才能實現(xiàn)其層次化結(jié)構(gòu),如何強行將其層次化那么就會使得整個系統(tǒng)的性能下降。
2.4 微內(nèi)核結(jié)構(gòu)的操作系統(tǒng)
1)優(yōu)點
由上可知,微內(nèi)核結(jié)構(gòu)的計算機操作系統(tǒng)的靈活性、擴充性以及可靠性是相當高的,其可以在很大程度上降低整個系統(tǒng)的復雜性。
2)缺點
從某種程度來說,微內(nèi)核結(jié)構(gòu)操作系統(tǒng)也有著無法忽視的重大缺陷,具體表現(xiàn)在應用程度對服務的調(diào)動必須要通過兩次用戶態(tài)和核心態(tài)的切換才可完成。
2.5 外核結(jié)構(gòu)的操作系統(tǒng)
1)優(yōu)點
對于外核結(jié)構(gòu)的計算機操作系統(tǒng)來說,其最明顯的優(yōu)點就是其運行速度非常快,其應用可以直接地對硬件進行訪問;除此之外,該系統(tǒng)的擴充性也較為優(yōu)越,對于該系統(tǒng)來說要想對其進行擴充增加一項應用或功能,僅僅只需要在其應用層添加一個額外的系統(tǒng)庫即可實現(xiàn),不需要對系統(tǒng)內(nèi)核做任何的改動;而且其靈活性也相對較高,僅僅需要對其系統(tǒng)庫的配置做出一定的更改就可以適應不同環(huán)境的需求。
2)缺點
外核結(jié)構(gòu)最明顯的缺點就是其安全性能較為低下,整個系統(tǒng)的大多數(shù)共享服務都處于其應用層,對其的保護工作只能通過互聯(lián)網(wǎng)用戶來進行,這就對其系統(tǒng)的安全性帶來了一定的隱患。
上所述,本文研究的五種操作系統(tǒng)的體系結(jié)構(gòu)均各有各的優(yōu)點和缺點通過上文中對操作系統(tǒng)主要體系結(jié)構(gòu)的分析,我們可以看出,各種體系結(jié)構(gòu)均有其優(yōu)缺點。具體內(nèi)容如下表所示:
3 結(jié)束語
從目前操作系統(tǒng)的應用熱點來看,主要分為兩大種類的操作系統(tǒng),分別是安全的操作系統(tǒng)和嵌入式操作系統(tǒng),這兩種操作系統(tǒng)具備非常高的靈活性和擴充性。而嵌入式操作系統(tǒng)對于運行效率和實時性的要求相對較高,在設計安全的操作系統(tǒng)和嵌入式操作系統(tǒng)時最需要優(yōu)先考慮的問題就是其體系結(jié)構(gòu)是否符合實際情況。由上我們可以知道,在市場上比較主流的操作系統(tǒng)的體系結(jié)構(gòu)均有著各自的優(yōu)點和缺陷,沒有一種系統(tǒng)結(jié)構(gòu)可以滿足所有的情況。一般情況下,安全的操作系統(tǒng)使用的微內(nèi)核結(jié)構(gòu)或單體內(nèi)核結(jié)構(gòu)的操作系統(tǒng)體系結(jié)構(gòu)較多,而簡單結(jié)構(gòu)和外核結(jié)構(gòu)則是更多的適用于嵌入式操作系統(tǒng)。但是,在實際的操作系統(tǒng)的應用過程中,必須要根據(jù)實際情況(如硬件環(huán)境、安全性要求、靈活性需求、性能要求等)來選擇體系結(jié)構(gòu),必要時也可以對根據(jù)不同的需求對各個操作系統(tǒng)進行適當?shù)牟糠中薷?,進而滿足實際的需要。
參考文獻:
[1] 趙良,葉俊民,羅景,等.操作系統(tǒng)體系結(jié)構(gòu)風格的比較研究[J].計算機應用研究,2005(5):50-52.
[2] 王邦千.計算機操作系統(tǒng)體系結(jié)構(gòu)綜述[J].達縣師范高等??茖W校學報:自然科學版,2005(5):30-32,61.
[3] 汪杭軍,祁亨年,張廣群,等.操作系統(tǒng)內(nèi)核的比較與研究[J].湖州師范學院學報,2005(1):63-67.
[4] 王璐,周晏,師文科.操作系統(tǒng)體系結(jié)構(gòu)與內(nèi)核技術對操作系統(tǒng)設計的影響[J].電腦知識與技術:學術交流,2006(11):147-148.
[5] 熊安萍,蔣溢.淺析操作系統(tǒng)內(nèi)核體系結(jié)構(gòu)[J].重慶工商大學學報:自然科學版,2004(4):376-379.
[6] 侯方勇,王志英,戴葵,等.硬件支持的安全體系結(jié)構(gòu)研究[J].計算機工程與科學,2006(8):17-18.
[7] 趙天昀,李正文,徐振強.一種新穎的混合操作系統(tǒng)體系結(jié)構(gòu)[J].物探化探計算技術,2004(2):181-184.
【通聯(lián)編輯:朱寶貴】