九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
概念篇

微內(nèi)核

1.Microkernel and  Monolithic-kernel

    來自Wiki的圖片:


2.微內(nèi)核(以下出自 Microkernels

1)簡介

    傳統(tǒng)上,操作系統(tǒng)的“內(nèi)核”是系統(tǒng)上運(yùn)行的所有其他軟件都需要的部分。因此,內(nèi)核對(duì)應(yīng)于可信計(jì)算基礎(chǔ)(Trusted Computing Base ,TCB)的OS部分,這些部分的正確行為是任何其他部分正確操作的先決條件。

    微內(nèi)核的基本思想是最小化內(nèi)核,并在TCB之外實(shí)現(xiàn)盡可能多的內(nèi)核。內(nèi)核應(yīng)該只導(dǎo)出簡單的、低級(jí)的操作,希望這些操作能夠?qū)崿F(xiàn)更高效的應(yīng)用程序。這個(gè)想法可以追溯到[Per Brinch Hansen在1970年發(fā)表的<The nucleus of a multiprogramming system>],一個(gè)好的概述可以在[J. Liedtke. Toward Real Microkernels. 1996]中找到。傳統(tǒng)的內(nèi)核是“單結(jié)構(gòu)的”,在某種意義上說,它們?cè)赥CB內(nèi)以相對(duì)非結(jié)構(gòu)化的方式實(shí)現(xiàn)其所有功能。從軟件工程的角度來看,微內(nèi)核的優(yōu)點(diǎn)是顯而易見的:

  • TCB變得更小,減少了由于它的錯(cuò)誤實(shí)現(xiàn)而產(chǎn)生錯(cuò)誤的機(jī)會(huì)。
  • 操作系統(tǒng)更加模塊化,因此更加靈活和可擴(kuò)展性。
  • 在TCB中以前的服務(wù)現(xiàn)在可能有多個(gè)不同的實(shí)現(xiàn),甚至可能并發(fā)運(yùn)行。

    微內(nèi)核最初受到了極大的熱情,在80年代后期,在學(xué)術(shù)和商業(yè)環(huán)境中都有很多關(guān)于微內(nèi)核的工作。當(dāng)人們開始遇到似乎與微內(nèi)核實(shí)現(xiàn)的靈活性和效率有關(guān)的內(nèi)在困難時(shí),最初的熱情消退了:

  • 對(duì)于一些頻繁的操作,例如網(wǎng)絡(luò)化,上下文切換的開銷對(duì)于內(nèi)核實(shí)現(xiàn)來說太大了。因此,微內(nèi)核不像最初想象的那樣有效。
  • 支持多個(gè)基本系統(tǒng)服務(wù)的實(shí)現(xiàn)存在很大的困難,特別是當(dāng)多個(gè)并發(fā)運(yùn)行時(shí)。因此,微內(nèi)核并不像假設(shè)的那樣靈活。

    通過對(duì)原始微內(nèi)核理想的各種妥協(xié)克服了這些困難。幾個(gè)效率關(guān)鍵的特性被重新引入內(nèi)核,并且通過可下載的二進(jìn)制代碼或可信的“內(nèi)核加載模塊”支持向內(nèi)核添加新特性。

    但是,將大多數(shù)驅(qū)動(dòng)程序和服務(wù)器集成回TCB,在很大程度上消除了微內(nèi)核方法的好處,最終導(dǎo)致更復(fù)雜的單內(nèi)核操作系統(tǒng)內(nèi)核。

    最近,在微內(nèi)核理念之后出現(xiàn)了幾種第二代實(shí)現(xiàn),它們聲稱可以解決第一代的靈活性和效率問題。這些實(shí)現(xiàn)如何實(shí)現(xiàn)這個(gè)目標(biāo)有很大的不同,以下三個(gè)具有代表性:

  • L4 [J. Liedtke. Toward Real Microkernels. 1996]擁有一個(gè)非常小的微內(nèi)核,并按照第一代的精神使用用戶級(jí)服務(wù)器。它通過非??焖俚倪M(jìn)程間通信和靈活的內(nèi)存管理方案來實(shí)現(xiàn)它的目標(biāo)。
  • Exokernel,是一個(gè)微型微內(nèi)核,它消除了所有傳統(tǒng)的OS內(nèi)核抽象,將內(nèi)核的任務(wù)簡化為安全的多任務(wù)資源。
  • SPIN采用的方法是將代碼下載到內(nèi)核中,但是是以一種安全的方式,不會(huì)真正擴(kuò)大TCB。

    目前尚不清楚這些新一代解決方案是否真正適用于實(shí)際操作系統(tǒng)。缺少的是使用上述系統(tǒng)的策略構(gòu)建的真實(shí)操作系統(tǒng)的存在,就像Chorus和Mach是使用第一代微內(nèi)核策略構(gòu)建的真實(shí)操作系統(tǒng)一樣。盡管如此,上述系統(tǒng)的出現(xiàn)給微內(nèi)核方法的未來帶來了巨大的希望。

2)第一代

    在八十年代末和九十年代初期,有幾個(gè)真正的基于微內(nèi)核的操作系統(tǒng)。也許其中最引人注目的兩個(gè)是MachChorus。Mach在CMU開發(fā),是最成功的,并且已經(jīng)被應(yīng)用到幾個(gè)商業(yè)系統(tǒng)中,比如NeXTSTEP OS。

    2.1 最初的目標(biāo)

    為了獲得廣泛的認(rèn)可,新系統(tǒng)架構(gòu)必須實(shí)現(xiàn)兩個(gè)目標(biāo),即效率靈活性。因此,最初微內(nèi)核的目標(biāo)是運(yùn)行應(yīng)用程序比現(xiàn)有的宏內(nèi)核快,或者至少不比它慢。此外,為了在OS設(shè)計(jì)中取得真正的進(jìn)展,微內(nèi)核必須允許新的應(yīng)用程序結(jié)構(gòu),以及支持所有現(xiàn)有類型的應(yīng)用程序。除了上面提到的之外,人們對(duì)引入微內(nèi)核的方法有很大的期望,許多人期望得到以下好處:
  • 一個(gè)小而簡單的內(nèi)核意味著更少的代碼,以及更簡單的代碼,在TCB中,因此出錯(cuò)的幾率更小。
  • 一個(gè)干凈的微內(nèi)核設(shè)計(jì)將加強(qiáng)并支持整個(gè)操作系統(tǒng)的高度模塊化結(jié)構(gòu)。
  • 較小的內(nèi)核意味著更大的靈活性和可擴(kuò)展性,因?yàn)榉恋K更改的現(xiàn)有結(jié)構(gòu)較少。添加新服務(wù)要容易得多,因?yàn)榉?wù)器彼此獨(dú)立運(yùn)行,理想情況下不需要內(nèi)核提供任何特定于服務(wù)的支持。
  • 以前內(nèi)核中的服務(wù),現(xiàn)在由外部服務(wù)提供,以此使用內(nèi)核服務(wù),如多任務(wù)處理和進(jìn)程間通信(IPC)。
  • 服務(wù)器可能會(huì)在操作系統(tǒng)沒有崩潰的情況下崩潰,操作系統(tǒng)甚至可能啟動(dòng)一個(gè)新的服務(wù)器副本來替換掉發(fā)生故障的服務(wù)器。
  • 設(shè)備驅(qū)動(dòng)程序可以作為服務(wù)器運(yùn)行,并獲得上面描述的所有服務(wù)器好處。
  • 微內(nèi)核應(yīng)該能夠以不同服務(wù)的形式支持多個(gè)特性,例如APIs、覆蓋一般的OSs等,而不需要在成熟的操作系統(tǒng)上進(jìn)行仿真。

    2.2 效率低下的原因

    在將幾個(gè)微內(nèi)核構(gòu)建到真正的OSs中并用于實(shí)際應(yīng)用之后,人們發(fā)現(xiàn),當(dāng)客觀地測(cè)量它們的性能時(shí),它們的性能相當(dāng)差。這種低效率有幾個(gè)罪魁禍?zhǔn)?,包?
  • 1.在用戶模式下運(yùn)行以前內(nèi)核集成的服務(wù),需要在內(nèi)核或客戶端使用服務(wù)時(shí),使用(RPC)遠(yuǎn)程過程調(diào)用(用兩個(gè)IPC實(shí)現(xiàn))。RPC的成本比對(duì)內(nèi)核的簡單系統(tǒng)調(diào)用要高得多,大約是每RPC 200微秒,而傳統(tǒng)的系統(tǒng)調(diào)用是40微秒。
  • 2.在微內(nèi)核操作系統(tǒng)中,當(dāng)運(yùn)行相同的應(yīng)用程序時(shí),內(nèi)存引用的成本(每個(gè)指令的內(nèi)存周期,MCPI)要比宏內(nèi)核操作系統(tǒng)高得多。原因包括:
            1.合并的微內(nèi)核OS代碼的局部性更差。
            2.系統(tǒng)的自身干擾,錯(cuò)誤地緩存高速緩存行,歸咎于系統(tǒng)的高度模塊化。
            3.由于操作系統(tǒng)的模塊化程度較高,模塊間的復(fù)制更多。
  • 3.微內(nèi)核的“遺留”接口和實(shí)現(xiàn)代碼不支持某些操作系統(tǒng)特性的有效功能。這在很大程度上是由于微內(nèi)核的開發(fā)歷史,它是從宏內(nèi)核派生出來的,繼承了它們的許多接口和實(shí)現(xiàn)策略。

    2.3 進(jìn)程間通信的性能

    上面的第一項(xiàng),IPC成本,是改進(jìn)微內(nèi)核性能的主要工作重點(diǎn),因?yàn)樗萂CPI的影響要大得多。盡管如此,由于上述第三個(gè)原因,改進(jìn)第一代微內(nèi)核(特別是Mach)的IPC成本的嘗試還不夠成功。下面的表1顯示了在優(yōu)化IPC的大量工作之后,Mach OS的最終IPC性能。L3的工作,導(dǎo)致L4,最終成功打破了這一性能障礙。
    值得注意的是,Mach IPC性能已經(jīng)很糟糕了,在連續(xù)的RPC調(diào)用之間必須執(zhí)行大約10000條指令,相對(duì)于宏內(nèi)核來說,速度只降低了10%。這阻止了細(xì)粒度的客戶端/服務(wù)器應(yīng)用程序結(jié)構(gòu)。更廣泛地說,第一代內(nèi)核和傳統(tǒng)內(nèi)核缺乏效率,這就限制了靈活的應(yīng)用程序/操作系統(tǒng)結(jié)構(gòu),比如IPC支持的那些結(jié)構(gòu)。
    相比之下,L4和Exokernel IPCs的速度要快很多,因?yàn)樗鼈儾捎玫氖侨碌膶?shí)現(xiàn)。這些內(nèi)核能夠在每400條指令中執(zhí)行一次RPC調(diào)用,速度降低10%,這對(duì)于幾乎所有的應(yīng)用程序來說都足夠細(xì)粒度。Spin內(nèi)核是基于Mach的,因此分擔(dān)了它高昂的IPC成本,但這可能不會(huì)對(duì)它的性能造成致命的影響,因?yàn)樗捎昧丝蓴U(kuò)展性的替代方法。
表1  競爭對(duì)手的IPC性能
OSmicrosecondsinstructions
Mach115.0 us1150
L45.0 us50
Exokernel1.4 us30
SPIN102.0 us1100

3) 目前這一代

    以下三個(gè)系統(tǒng)采用完全不同的方法來提高第一代微內(nèi)核的性能。因此,我們對(duì)每個(gè)系統(tǒng)都作了一些詳細(xì)的描述,并將它們與其他系統(tǒng)隔離開來,并將它們與結(jié)論進(jìn)行比較。

    3.1 L4

    L4是J. Liedtke和他的團(tuán)隊(duì)在1995年開發(fā)的,是L3的直接后代,L3是第一代微核。L4的從頭開始開發(fā),加上它的小尺寸和簡單的接口,使它能夠擺脫第三種'遺留'代碼類型的微內(nèi)核問題。

    L4基于微內(nèi)核是處理器相關(guān)的理論,即像代碼優(yōu)化器一樣,微內(nèi)核本身就不能移植,盡管它們提高了整個(gè)系統(tǒng)的可移植性。L4提供了三個(gè)抽象,地址空間線程IPC,并且只實(shí)現(xiàn)了七個(gè)系統(tǒng)調(diào)用。L4中的線程是用戶級(jí)的,但是內(nèi)核支持通信和地址空間管理。最后兩個(gè)抽象,地址空間和IPC,在L4中特別有趣,下面將詳細(xì)討論。

    3.1.1 地址空間

        L4微內(nèi)核提供了實(shí)現(xiàn)物理內(nèi)存管理和各種保護(hù)方案的基本機(jī)制?;舅枷胧侵С謨?nèi)核之外的地址空間的遞歸構(gòu)建,如下面的圖1所示。

圖1 L4中遞歸構(gòu)造的地址空間


    初始地址空間表示物理內(nèi)存,并由初始內(nèi)存服務(wù)器擁有。虛擬頁面的所有者可以使用L4提供的操作,將其所有權(quán)轉(zhuǎn)移到(grant)或與(map)共享,這是一個(gè)同意的接收進(jìn)程。所有者還可以從接收者的地址空間中刪除任何共享頁面(demap),而不需要在兩個(gè)進(jìn)程之間達(dá)成任何協(xié)議。

    此功能允許實(shí)現(xiàn)內(nèi)核之外的內(nèi)存管理和分頁。映射和解調(diào)足以在微內(nèi)核之上實(shí)現(xiàn)內(nèi)存管理和分頁。授予僅在特殊情況下使用,以避免雙重簿記(bookkeeping)和地址空間溢出。為了驗(yàn)證進(jìn)程一致性,采用IPC實(shí)現(xiàn)內(nèi)存管理和分頁,進(jìn)一步強(qiáng)調(diào)了快速IPC的必要性。

    3.1.2 IPC實(shí)現(xiàn)

    L4繼承了L3改進(jìn)版本的IPC實(shí)現(xiàn),速度驚人,其性能如表1所示。IPC時(shí)間的這種數(shù)量級(jí)改進(jìn)是通過各種優(yōu)化技術(shù)實(shí)現(xiàn)的。下面我們將討論其中的一些技術(shù),這些技術(shù)帶來了最大的性能收益。

  • 傳遞短消息的IPC消息中很大比例是非常短的。通過在寄存器中傳輸這些消息,可以獲得兩倍的性能改進(jìn)。
  • 復(fù)制大量數(shù)據(jù)信息,大多數(shù)微內(nèi)核通過兩個(gè)副本在進(jìn)程之間傳輸消息,從進(jìn)程A空間到內(nèi)核空間再到進(jìn)程B空間。性能影響非常大,特別是對(duì)于長消息,因?yàn)闀?huì)發(fā)生Translation Lookaside Buffer(TLB)和緩存未命中。L4允許通過臨時(shí)與發(fā)送方共享目標(biāo)區(qū)域的方式進(jìn)行單拷貝傳輸,從而使512字節(jié)的消息性能提高了兩倍,對(duì)更長的消息性能提高更多。
  • 延遲調(diào)度,傳統(tǒng)的IPC需要更新線程調(diào)度程序隊(duì)列??梢酝ㄟ^延遲隊(duì)列內(nèi)/隊(duì)列之間的線程移動(dòng)來提高性能,直到隊(duì)列被查詢。這種“延遲”調(diào)度是通過在線程控制塊中設(shè)置狀態(tài)標(biāo)志來實(shí)現(xiàn)的,然后在查詢時(shí)掃描應(yīng)該移動(dòng)到不同隊(duì)列的線程的隊(duì)列。這削弱了隊(duì)列的語義,偶爾會(huì)導(dǎo)致代價(jià)高昂的隊(duì)列操作,但是總體上提高了小消息IPC的性能大約25%。

3.2 Exokernel

    Exokernel,于1994 - 1995年在麻省理工學(xué)院開發(fā)。其開發(fā)背后的主要?jiǎng)訖C(jī)是內(nèi)核提供的抽象代價(jià)太高而且限制了靈活性。本論文得到了“end-to-end”論證的支持:應(yīng)用程序比OSs更清楚它們的資源管理決策的目標(biāo)是什么,因此,應(yīng)該盡可能多地控制這些決策。

    因此,微內(nèi)核應(yīng)該只提供最小必要的原語集,以安全地多路復(fù)用硬件資源。高級(jí)功能由庫OSs提供,庫OSs是用戶提供的,不受Exokernel信任。為了使Exokernel盡可能簡單和高效,甚至它的導(dǎo)出接口也依賴于硬件。大多數(shù)時(shí)候,Exokernel只是導(dǎo)出硬件功能。

圖2 基于Exokernel的應(yīng)用程序/操作系統(tǒng)的結(jié)構(gòu)


    圖2顯示了基于exokernel的系統(tǒng)的結(jié)構(gòu),兩個(gè)應(yīng)用程序使用不同的庫OSs。由于Exokernel必須適應(yīng)不受信任的高級(jí)別OSs,其主要目標(biāo)是安全地導(dǎo)出和復(fù)用硬件原語和資源。Exokernel使用了三種技術(shù)來實(shí)現(xiàn)這一點(diǎn):安全綁定、可見資源撤銷和中止協(xié)議,下面將討論其中的每一種。

    3.2.1 安全綁定

    由于資源的實(shí)際管理留給了庫操作系統(tǒng),因此必須有一個(gè)將資源保護(hù)與資源管理分開的機(jī)制。安全綁定就是這種機(jī)制,Exokernel使用三種不同的技術(shù)實(shí)現(xiàn)它們:硬件機(jī)制、軟件緩存和可下載的應(yīng)用程序代碼。

    一種常見的硬件機(jī)制是TLB。安全綁定可以實(shí)現(xiàn)為從虛擬地址到物理地址的映射,例如,作為TLB入口。如果硬件TLB不夠大,則將其封裝在較大的軟件TLB中,以緩存此類映射。在一些Silicon Graphics系統(tǒng)上可用的另一種硬件機(jī)制是具有與每個(gè)像素相關(guān)聯(lián)的所有權(quán)字段的幀緩沖器。在那里,硬件處理幀緩沖區(qū)的保護(hù),只有當(dāng)像素改變所有權(quán)時(shí)才涉及到Exokernel。還可以將代碼下載到內(nèi)核中,在每個(gè)資源訪問或事件中調(diào)用它來確定所有權(quán)以及內(nèi)核應(yīng)該執(zhí)行的操作。包過濾器就是這種代碼的一個(gè)例子。

    實(shí)際上,下載代碼的這個(gè)特性不僅可以用于安全綁定的實(shí)現(xiàn)。更一般地說,可以將特定于應(yīng)用程序的安全處理程序(ASH)下載到內(nèi)核中,并允許它執(zhí)行一般的計(jì)算。這種功能是基于性能的,用于減少內(nèi)核和用戶模式之間的上下文切換,特別是在時(shí)間限制使這些切換不切實(shí)際的情況下,如包接收上的網(wǎng)絡(luò)ack。ASHs和所有下載的代碼都是不受信任的,并且通過代碼檢查(使用類型安全語言)、保護(hù)解釋和沙箱(與SPIN類似)的組合而變得安全。

    3.2.2 可見資源撤銷

    可見撤銷比傳統(tǒng)的隱形撤銷具有更高的延遲,但允許庫操作系統(tǒng)指導(dǎo)解除分配并了解資源稀缺性。Exokernel導(dǎo)出物理名稱以提高效率和更好的資源管理,因?yàn)檫@允許消除間接級(jí)別,而且物理名稱通常編碼有用的資源屬性。這使得可見撤銷成為必要,因?yàn)閹霴S需要更新它的物理引用。

    3.2.3 中止協(xié)議

    由于庫操作系統(tǒng)不受信任,因此Exokernel應(yīng)該適應(yīng)他們的不合作。當(dāng)撤銷請(qǐng)求沒有及時(shí)得到滿足時(shí),Exokernel有權(quán)“強(qiáng)制”打破任何相關(guān)的安全綁定,并重新獲得所請(qǐng)求的資源。Exokernel通知不友好的庫操作系統(tǒng)撤銷,但不采取任何更激烈的措施。另一種方法是殺死相關(guān)的應(yīng)用程序,但這是為了減少損失而決定的。

    3.2.4 保留

    Exokernel方法是非常激進(jìn)的,它激發(fā)了人們對(duì)原始微內(nèi)核的熱情。然而,這些微內(nèi)核的命運(yùn)應(yīng)該有一個(gè)發(fā)人深省的影響。應(yīng)該注意的是,主要的Exokernel論文沒有討論OSs的幾個(gè)關(guān)鍵方面,比如文件系統(tǒng),而且它們對(duì)高效框架緩沖區(qū)的特殊硬件的依賴感覺像是作弊。因此,硬件級(jí)非抽象的Exokernel方法可能只適用于專門的機(jī)器代碼級(jí)應(yīng)用程序。即便如此,這種不完整性可能只是當(dāng)前Exokernel實(shí)現(xiàn)的不成熟的標(biāo)志,而不是該方法的固有問題。確實(shí)有一篇新的論文,它討論了高效的“Exo-file-system”的實(shí)現(xiàn)。

3.3 SPIN

    SPIN,基于Mach微內(nèi)核的最新版本,增加了下載安全代碼的能力,從而擴(kuò)展了內(nèi)核。因此,它在某種程度上表明了為抵御第一代微內(nèi)核操作系統(tǒng)的低迷性能而開發(fā)的最新一代技術(shù)。因此,這里的介紹既合適又必要。

    SPIN使用語言和鏈接時(shí)機(jī)制來允許動(dòng)態(tài)擴(kuò)展內(nèi)核服務(wù)。應(yīng)用程序可以將新OS服務(wù)的代碼下載到內(nèi)核中,因此可以根據(jù)自己的特定需求創(chuàng)建細(xì)粒度的OS接口。擴(kuò)展由內(nèi)核編譯器轉(zhuǎn)換,動(dòng)態(tài)鏈接到內(nèi)核并在內(nèi)核的虛擬地址空間內(nèi)執(zhí)行。

    3.3.1 靈活性

    上面的內(nèi)核可擴(kuò)展性方法立即提出了安全問題:用戶提供的代碼可以信任嗎?SPIN通過使用類型安全語言Modula-3和沙箱下載的代碼來解決這個(gè)問題。因此,編譯器執(zhí)行靜態(tài)分析并插入運(yùn)行時(shí)檢查,確保編譯后的代碼不會(huì)違反內(nèi)核、其他模塊或用戶級(jí)代碼的完整性。由于內(nèi)核不對(duì)導(dǎo)入代碼的安全性做出任何假設(shè),因此可以聲稱編譯后的擴(kuò)展不會(huì)增加TCB。每個(gè)單獨(dú)模塊的隔離保證了如果應(yīng)用程序崩潰,例如,由于下載到內(nèi)核的擴(kuò)展模塊錯(cuò)誤,系統(tǒng)的其余部分不會(huì)受到影響。

    SPIN提供了一組用于管理內(nèi)存和處理器資源的核心服務(wù)。它們的級(jí)別類似于宏內(nèi)核操作系統(tǒng)中的內(nèi)部接口。內(nèi)核擴(kuò)展可以將核心服務(wù)用作構(gòu)建塊,也可以執(zhí)行任意計(jì)算。核心服務(wù)包括支持對(duì)虛擬內(nèi)存的應(yīng)用程序控制的操作,例如地址的轉(zhuǎn)換服務(wù)。核心服務(wù)還包括用于進(jìn)程管理的低級(jí)接口,定義要由用戶線程包和調(diào)度程序處理的一組事件,以及包括確定事件的接收者線程包的全局調(diào)度程序。

    3.3.2 性能

    內(nèi)核擴(kuò)展在靈活性和可擴(kuò)展性方面的優(yōu)勢(shì)是顯而易見的,甚至可以在線修改內(nèi)核。至于性能,向內(nèi)核添加功能在一定程度上減少了內(nèi)核和進(jìn)程之間的IPC數(shù)量。這在某種程度上補(bǔ)償了測(cè)量的高IPC成本。即便如此,應(yīng)用于L4的優(yōu)化也可能適用于SPIN,從而降低了剩余IPC操作的成本。

    另一個(gè)可能更重要的性能問題是內(nèi)核編譯器的效率。證明代碼模塊安全并不是一項(xiàng)簡單的任務(wù),安裝新內(nèi)核擴(kuò)展所產(chǎn)生的延遲有時(shí)是不可接受的。但是,當(dāng)前版本的SPIN使用了一個(gè)外部編譯器,這是對(duì)以前的解釋器或基于內(nèi)部編譯器的系統(tǒng)的改進(jìn)。在SPIN中,編譯器可以是多任務(wù)的,并且內(nèi)核的大小更小。對(duì)編譯器接口的進(jìn)一步改進(jìn)可能包括緩存已編譯的代碼以減少分?jǐn)偟木幾g時(shí)延遲,以及處理嵌套IPC重定向等事務(wù)的專門優(yōu)化。

4) 總結(jié)

    首先讓我們看一下上面檢查的三個(gè)系統(tǒng)如何滿足2.1節(jié)中所述的微內(nèi)核的原始目標(biāo)。與傳統(tǒng)的宏內(nèi)核相比,這三個(gè)系統(tǒng)的性能都是一樣的,或者更好,這三個(gè)系統(tǒng)都可以支持新的應(yīng)用程序結(jié)構(gòu)(分別是遞歸地址空間、庫OSs和內(nèi)核擴(kuò)展)。那么剩下的就是檢查2.1節(jié)的枚舉列表:

  1. 這三個(gè)都有小型TCB,L4和Exokernel的大小只有幾KB。SPIN是三者中最大的,和Mach(幾百KB)一樣大。
  2. 這可以從兩方面來論證這三種系統(tǒng)。L4提供了一組簡單的接口,并且確實(shí)支持模塊化結(jié)構(gòu)。但是,Exokernel和SPIN允許應(yīng)用程序和OS部件分別根據(jù)需要在內(nèi)核外部和內(nèi)部交織在一起。
  3. 這三個(gè)系統(tǒng)似乎都滿足這個(gè)標(biāo)準(zhǔn)。Exokernel缺乏抽象,確實(shí)非常靈活;L4具有盡可能靈活的簡單抽象;SPIN有一個(gè)直接可擴(kuò)展的內(nèi)核。然而,對(duì)于L4和SPIN來說,是否可以有兩個(gè)完全不同的服務(wù)器同時(shí)運(yùn)行同一資源,這一點(diǎn)尚不清楚,因?yàn)榻o定的抽象可能不夠靈活。
  4. 這在所有三個(gè)系統(tǒng)中都得到了滿足,盡管由于內(nèi)核內(nèi)部和外部運(yùn)行的代碼的交互,傳統(tǒng)上比SPIN更復(fù)雜。
  5. 所有這三個(gè)系統(tǒng)都完全支持這一點(diǎn),至少對(duì)于不需要訪問硬件特性的服務(wù)器是如此,這些硬件特性可能會(huì)破壞整個(gè)系統(tǒng),比如DMA。然而,對(duì)于這些服務(wù)器,沒有什么可以消除系統(tǒng)損壞的可能性,盡管靜態(tài)檢查和沙箱應(yīng)該會(huì)減少問題。
  6. 與上面相同。
  7. 對(duì)于Exokernel尤其如此,對(duì)于L4也是如此。Spin還應(yīng)該能夠支持多個(gè)特性,但由于其內(nèi)核的重量級(jí)特性,尚不清楚是否所有代碼都需要在內(nèi)核中運(yùn)行,如果需要的話,必要的內(nèi)核膨脹是否會(huì)產(chǎn)生許多負(fù)面影響。

    從上面可以看出,當(dāng)前的微內(nèi)核已經(jīng)解決了2.2節(jié)中提到的IPC和遺留問題,但是它們似乎并沒有解決微內(nèi)核中高M(jìn)CPI的問題。這實(shí)際上是一個(gè)值得關(guān)注的大問題,因?yàn)殡S著內(nèi)部CPU速度的快速增長,緩存性能越來越成為一個(gè)問題。然而有人指出,使內(nèi)核小到足以完全適應(yīng)緩存,將消除這個(gè)問題。SPIN在內(nèi)核中進(jìn)行計(jì)算的方法也可能解決這個(gè)問題,盡管內(nèi)核很大。

    目前這一代微內(nèi)核的一個(gè)共同方面是可擴(kuò)展性,通過下載代碼驗(yàn)證安全。這種能力對(duì)于未來的高速網(wǎng)絡(luò)和分布式OSs顯得至關(guān)重要,特別是在進(jìn)程切換的相對(duì)成本急劇上升的情況下。因此,奇怪的是L4還不支持內(nèi)核可下載擴(kuò)展。然而,閱讀L4的論文就會(huì)發(fā)現(xiàn),該系統(tǒng)實(shí)際上沒有很好的網(wǎng)絡(luò)性能,人們可以猜測(cè),他們用可下載的擴(kuò)展來糾正這一點(diǎn)只是時(shí)間問題。

    第二代微內(nèi)核導(dǎo)出的接口的復(fù)雜性差異很大。L4和Exokernel都提供簡單的低級(jí)操作。L4提供了地址空間和線程管理所需的基本內(nèi)核抽象,而Exokernel提供了安全的多任務(wù)資源所需的裸硬件相關(guān)原語。另一方面,SPIN導(dǎo)出各種接口,應(yīng)用程序看到繼承自Mach的第一代微內(nèi)核接口,以及內(nèi)核下載代碼的內(nèi)部接口。Exokernel中ASHes的存在更難以區(qū)分全局描述。因此,適當(dāng)?shù)膬?nèi)核提供的操作集可能是有效的低級(jí)操作和在需要時(shí)使用高級(jí)操作擴(kuò)展內(nèi)核的能力的混合,例如,支持關(guān)鍵時(shí)間的功能,如網(wǎng)絡(luò)。

    Exokernel的硬件依賴可能是一個(gè)嚴(yán)重的缺點(diǎn)。我們發(fā)現(xiàn),構(gòu)建非常低層次的抽象(如L4導(dǎo)出的抽象)是非常依賴于CPU的,對(duì)于Intel x86家族的后續(xù)成員,需要完全不同的方法。這似乎表明,在Exokernels之上構(gòu)建低級(jí)庫OSs可能是每一代處理器都需要重新做的事情。如此高的不可移植性將成為任何真正接受基于Exokernel的操作系統(tǒng)的嚴(yán)重障礙。

    總之,我們應(yīng)該強(qiáng)調(diào)我們?cè)谝灾幸呀?jīng)指出的內(nèi)容。第二代微內(nèi)核最重要的責(zé)任是完全缺乏基于它們的真實(shí)操作系統(tǒng)。只有每天的實(shí)踐經(jīng)驗(yàn)才能證明操作系統(tǒng)是真正可行的。由于這些微內(nèi)核是最新的,它們的最終判斷還為時(shí)尚早。時(shí)間是他們唯一確定的判斷。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
微內(nèi)核與第二代微內(nèi)核
鴻蒙操作系統(tǒng)用的微內(nèi)核到底是什么?
*** (操作系統(tǒng)介紹詳細(xì))什么是微內(nèi)核,什么是宏內(nèi)核?這兩者之間有何區(qū)別?
漫談QNX(架構(gòu)/進(jìn)程,線程,同步,進(jìn)程間通信IPC)
macOS 內(nèi)核之 OS X 系統(tǒng)的起源
微內(nèi)核操作系統(tǒng)及L4概述
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服