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

打開(kāi)APP
userphoto
未登錄

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

開(kāi)通VIP
微內(nèi)核操作系統(tǒng)及L4概述

杰夫

jliu71@gmail.com

 

摘要:本文是對(duì)微內(nèi)核操作系統(tǒng)及L4的發(fā)展歷程和主要功能的綜述。本文還對(duì)微內(nèi)核操作系統(tǒng)的優(yōu)缺點(diǎn)及發(fā)展前景發(fā)表評(píng)論。

關(guān)鍵詞:微內(nèi)核,操作系統(tǒng),L4

Abstract : This paper describes the history of microkernel-based operating systems, andthe structure and main functions ofL4.  It al so discusses the pros and consof microkernelsystems and their prospect of actualdeployments in the industry.

Keywords: microkernel, operating system, L4

 

1. Introduction

       微內(nèi)核(microkernel) 并非是一個(gè)新的概念,這個(gè)名詞至少在七十年代初就有了。一般認(rèn)為,他的發(fā)明權(quán)屬于Hansen [Han70]  和Wulf[Wul74].  但是在這一名詞出現(xiàn)之前已經(jīng)有人使用類(lèi)似的想法設(shè)計(jì)計(jì)算機(jī)操作系統(tǒng)了。早期的操作系統(tǒng)絕大多數(shù)是Monolithic Kernel, 意思是整個(gè)操作系統(tǒng) - 包括Scheduling (調(diào)度), File system  (文件系統(tǒng)),Networking  (網(wǎng)絡(luò)), Devicedriver(設(shè)備驅(qū)動(dòng)程序), Memory management  (存儲(chǔ)管理),Paging (存儲(chǔ)頁(yè)面管理)–都在內(nèi)核中完成。一直到現(xiàn)在廣泛應(yīng)用的操作系統(tǒng),如 UNIX,Linux,和Windows 還大都是monolithic kernel操作系統(tǒng)。但隨著操作系統(tǒng)變得越來(lái)越復(fù)雜(現(xiàn)代操作系統(tǒng)的內(nèi)核有一兩百萬(wàn)行C 程序是很常見(jiàn)的事情),把所有這些功能都放在內(nèi)核中使設(shè)計(jì)難度迅速增加。微內(nèi)核是一個(gè)與Monolithic Kernel相反的設(shè)計(jì)理念。它的目的是使內(nèi)核縮到最小,把所有可能的功能模塊移出內(nèi)核。理想情況下,內(nèi)核中僅留下Address SpaceSupport(地址空間支持),IPC(Inter-Process Communication ,進(jìn)程間通訊) ,和Scheduling(調(diào)度),其他功能模塊做為用戶(hù)進(jìn)程運(yùn)行。對(duì)于內(nèi)核來(lái)說(shuō),他們和一般用戶(hù)進(jìn)程并無(wú)區(qū)別。它們與其他用戶(hù)進(jìn)程之間的通訊通過(guò)IPC 進(jìn)行。在八十年代中期,微內(nèi)核的概念開(kāi)始變得非常熱門(mén)。第一代微內(nèi)核操作系統(tǒng)的代表作品是Mach [Mac85]。Mach是由位于痞子堡的卡內(nèi)基梅隆大學(xué)(CMU)設(shè)計(jì)。CMU 是美國(guó)計(jì)算機(jī)科學(xué)研究重鎮(zhèn),其計(jì)算機(jī)排名長(zhǎng)期位于美國(guó)大學(xué)前五位。美國(guó)只有少數(shù)幾所大學(xué)的計(jì)算機(jī)是學(xué)院不是系,CMU 就是其中之一。除Mach外,CMU 的另一重要成果是衡量計(jì)算機(jī)軟件設(shè)計(jì)能力的CMM(Capability Maturity Model) 模型,廣泛用于評(píng)價(jià)業(yè)界軟件公司的計(jì)算機(jī)軟件開(kāi)發(fā)能力。好像印度的軟件公司們非常熱衷于此,通過(guò)CMM-5 最高規(guī)格評(píng)價(jià)的軟件公司們有一半是印度的。

在微內(nèi)核剛興起時(shí),學(xué)術(shù)界普遍認(rèn)為其優(yōu)點(diǎn)是顯而易見(jiàn)的:

·   支持更加模塊化的設(shè)計(jì);

·   小的內(nèi)核更易于更新與維護(hù),bug會(huì)更少。大家知道Windows 的死機(jī)很多是因?yàn)閐evice drivers 造成的。如果把他們移出內(nèi)核,他們中的bugs 很可能就不會(huì)造成死機(jī);

·   許多模塊的bugs 可被封閉在其模塊內(nèi),更加易于debug。軟件工程師都知道 kernel debug  是件非常頭疼的事情。如果filesystem , memory management,和device drivers 成為一個(gè)個(gè)獨(dú)立的進(jìn)程,不用說(shuō)這肯定會(huì)使kernel engineers 的日子好過(guò)許多。

        由于上述原因,很多學(xué)術(shù)研究人員和軟件廠(chǎng)家開(kāi)始嘗試使用微內(nèi)核的概念設(shè)計(jì)操作系統(tǒng)。甚至Microsoft 也有所動(dòng)作,在設(shè)計(jì) Windows NT 時(shí),他們把UI (User Interface) 從Windows kernel 中整個(gè)拿了出來(lái)。由此可看出microkernel的流行程度,因?yàn)镸icrosoft 總是最后一個(gè)嘗試新想法的。但是這一熱潮很快就冷了下來(lái),原因只有一個(gè)字Performance(Well ,漢語(yǔ)是兩個(gè)字:性能)。Microsoft 在Windows NT后續(xù)版本中,又把部分底層UI放回了Windowskernel。這種現(xiàn)象在計(jì)算機(jī)界并不少見(jiàn)。在Java 剛開(kāi)始流行時(shí),由于其許多C/C++ 沒(méi)有的優(yōu)點(diǎn),很多人認(rèn)為它會(huì)很快取代C/C++ 成為第一編程語(yǔ)言。但直至今天也沒(méi)有發(fā)生,其中一個(gè)重要原因就是Java 程序的performance落后于C 程序,至今還限制著它在許多場(chǎng)合的應(yīng)用。

        第一代的微內(nèi)核操作系統(tǒng)的性能,包括Mach在內(nèi),遠(yuǎn)不及monolithic kernel操作系統(tǒng)。所以大多數(shù)人又回到傳統(tǒng)技術(shù)中去了。Microkernel 也像過(guò)時(shí)的流行歌曲或減肥方法,很快被遺忘了。但在九十年代后期,微內(nèi)核迎來(lái)了其生命中的第二春。一些研究人員認(rèn)真分析了微內(nèi)核系統(tǒng)性能差的原因,指出其性能差并非根本內(nèi)在的因素造成,而是設(shè)計(jì)實(shí)現(xiàn)的失誤。為證明其論點(diǎn),他們?cè)O(shè)計(jì)并實(shí)現(xiàn)了幾個(gè)性能遠(yuǎn)超第一代的微內(nèi)核操作系統(tǒng),我們把它們稱(chēng)為第二代微內(nèi)核系統(tǒng) [Bar03, Eng95, Lie93A] 。其中的一個(gè)代表作品就是L4 [Lie93A, Lie93B, Lie95, Lie96]。

         L4由德國(guó)的GMD設(shè)計(jì)。GMD是德國(guó)國(guó)家信息技術(shù)研究院,相當(dāng)于中科院計(jì)算所加上軟件所(但在計(jì)算機(jī)研究能力方面,GMD 遠(yuǎn)非中科院可比。與作者一起工作過(guò)的幾位GMD研究人員都是extremely smart )。L4的創(chuàng)始人和總設(shè)計(jì)師是 JochenLiedtke [Kar05] 。此公在GMD 之后,還供職于 IBM 的T.J. WatsonResearch Center ,后成為德Univ. ofKarlsruhe 操作系統(tǒng)方向的正教授(full professor )。了解德國(guó)大學(xué)系統(tǒng)的人都知道,當(dāng)?shù)聡?guó)的正教授可比當(dāng)美國(guó)的正教授要難許多倍,地位也要高許多,因?yàn)橐粋€(gè)系往往只有一兩個(gè)正教授。Prof. Liedtke已于2001年過(guò)世,但他創(chuàng)建的L4正在發(fā)展壯大中。近年來(lái),多個(gè)運(yùn)行于不同硬件平臺(tái)的L4系統(tǒng)已被幾個(gè)不同研究機(jī)構(gòu)設(shè)計(jì)出來(lái) [SAG03, Tew01]。

       本文以后的部分將分析微內(nèi)核系統(tǒng)的performance bottleneck 所在,以及 L4如何試圖克服這一困難。微內(nèi)核系統(tǒng)到底有沒(méi)有固有的障礙,先天的缺陷?以L(fǎng)4為代表的新一代微內(nèi)核系統(tǒng)的前景如何?請(qǐng)看下文。

 

2.微內(nèi)核系統(tǒng)的性能為什么會(huì)這麼差?

        基于消息傳遞(Message Passing )IPC 機(jī)制是微內(nèi)核系統(tǒng)的基本特點(diǎn)之一。這一設(shè)計(jì)理念有助于提高系統(tǒng)的靈活性,模塊化,安全性,以及可擴(kuò)展性。IPC 的性能表現(xiàn)是決定微內(nèi)核系統(tǒng)性能的關(guān)鍵因素,因?yàn)榻^大多數(shù)系統(tǒng)調(diào)用和很多應(yīng)用程序的服務(wù)都需要兩個(gè)IPC, 一個(gè)服務(wù)請(qǐng)求,一個(gè)結(jié)果返回。消息傳遞IPC 機(jī)制現(xiàn)在已經(jīng)大量用于多種計(jì)算機(jī)系統(tǒng)中,但是很多IPC 實(shí)現(xiàn)的性能并不太好。根據(jù)CPU 性能和消息長(zhǎng)短不同,一個(gè)IPC 大概需要50到500  μs。經(jīng)過(guò)許多研究人員多年的努力,也沒(méi)有實(shí)現(xiàn)IPC 性能的突破,所以直至最近,消息傳遞IPC 被公認(rèn)為使一個(gè)很好的設(shè)計(jì)理念,但對(duì)其適用范圍學(xué)術(shù)界還存在很大爭(zhēng)

議。

        linux Kernel 創(chuàng)始人LinusTorvalds  在2000 年的一段話(huà)說(shuō)得生動(dòng)(Sorry,是極端),也代表了當(dāng)時(shí)很多人的觀(guān)點(diǎn)。為了在有些讀者受到冒犯時(shí)擺脫干系,作者決定不翻譯以下這段話(huà)。如果您看不懂,good for you.“Message passing as the fundamental operation of the operating system is just  an exercise in computer science masturbation.  It may feel good, but you don't actually get anything DONE. Nobody has ever shown that it made sense in the real world.”由于IPC 對(duì)微內(nèi)核系統(tǒng)的重要性,其設(shè)計(jì)人員們也花費(fèi)了大量時(shí)間在改善它的性能上面。微內(nèi)核系統(tǒng)中IPC 性能不斷提高,但到90年代初似乎達(dá)到了頂峰。Mach3 的IPC 最好性能大約是115 μs( 在486-DX 50 機(jī)器上),其它微內(nèi)核系統(tǒng)也大致如此。當(dāng)時(shí)許多研究人員認(rèn)為,有100 μs 左右的時(shí)間是IPC 的固有消耗,這一時(shí)間已無(wú)法縮短。但是與之相比,在同樣硬件平臺(tái)上,一個(gè)UNIX 系統(tǒng)調(diào)用只需20 μs, 好過(guò)微內(nèi)核系統(tǒng)10倍。

        第一代微內(nèi)核系統(tǒng)一直未在IPC 性能上有重大突破,這是導(dǎo)致他們失敗的根本原因。對(duì)第一代微內(nèi)核系統(tǒng)的性能分析表明,他的耗時(shí)巨大的操作包括用戶(hù)- 內(nèi)核模式轉(zhuǎn)換,地址空間轉(zhuǎn)換,和內(nèi)存訪(fǎng)問(wèn)。表面上看起來(lái)這一結(jié)果似乎合理,但進(jìn)一步分析發(fā)現(xiàn)它們并非真正問(wèn)題所在。[Lie96]  中給出Figure 1, 顯示這些操作的硬件固


Figure 1. IPC 耗時(shí)分析

        有的時(shí)間消耗只占IPC 總耗時(shí)的3%- 7% (圖中深色為硬件固有時(shí)間消耗)。這些證據(jù)表明早期微內(nèi)核的性能差距其實(shí)來(lái)自于它們的基本構(gòu)造。早期的微內(nèi)核系統(tǒng)大多是由Monolithic Kernel 一步步逐漸改進(jìn)而來(lái)。其很多設(shè)計(jì)并未發(fā)生重大改變。他們雖然被稱(chēng)為微內(nèi)核,但其代碼量還是很大。例如,Mach 3內(nèi)核支持140個(gè)系統(tǒng)調(diào)用,代碼量為300K  字節(jié)。

        這種情況不改變,微內(nèi)核系統(tǒng)的性能恐難提高。第二代微內(nèi)核系統(tǒng)設(shè)計(jì)者認(rèn)識(shí)到這一問(wèn)題,他們對(duì)系統(tǒng)內(nèi)核的基本構(gòu)造做出重大精簡(jiǎn),從而使其性能大步提高。L4只支持7 個(gè)系統(tǒng)調(diào)用,代碼量只有12K 字節(jié)。本文下一部分將簡(jiǎn)單介紹L4的一些基本設(shè)計(jì),有興趣的讀者可在 [Lie95]  中找到對(duì)L4的詳細(xì)介紹。

 

3. L4  基本結(jié)構(gòu)

        L4是由GMD于1995年設(shè)計(jì),它的兩個(gè)基本設(shè)計(jì)原則是:1)高性能和靈活性的要求決定微內(nèi)核必須盡可能縮到最小,2 )微內(nèi)核實(shí)現(xiàn)本身取決于硬件結(jié)構(gòu),它是不可移植的。雖然微內(nèi)核可以改善整個(gè)系統(tǒng)的移植性,但它本身是不可移植的,因?yàn)橐_(dá)到高性能,它的實(shí)現(xiàn)必須緊密聯(lián)系于硬件結(jié)構(gòu)。L4內(nèi)核支持三種抽象概念:地址空間,線(xiàn)程,和IPC。他只提供7 個(gè)系統(tǒng)調(diào)用,只有12K 字節(jié)代碼。在486-DX50  機(jī)器上,一個(gè)地址空間切換IPC,8  字節(jié)參數(shù)傳遞,只需要5 μs 。如果參數(shù)量為512 字節(jié),只需要18 μs。Mach 3 相應(yīng)的時(shí)間消耗為115 μs (8 字節(jié))  和172 μs (512 字節(jié)) 。下面我們來(lái)看L4時(shí)如何實(shí)現(xiàn)高性能 IPC 的。進(jìn)程間通信的一個(gè)基本問(wèn)題是數(shù)據(jù)需要跨越不同的地址空間。大多數(shù)操作系統(tǒng)的解決辦法是用兩次數(shù)據(jù)拷貝:用戶(hù)地址空間A -> 內(nèi)核地址空間 ->  用戶(hù)地址空間 B。用戶(hù)數(shù)據(jù)被拷貝兩次,因?yàn)榇蠖鄶?shù)操作系統(tǒng)的地址空間分配模型是用戶(hù)可防問(wèn)的地址空間加上內(nèi)核地址空間,內(nèi)核空間為所有用戶(hù)共享。因?yàn)橛脩?hù)的地址空間各個(gè)不同用戶(hù)是不同的,所以數(shù)據(jù)拷貝必須通告內(nèi)核空間進(jìn)行,如Figure 2 所示。


Figure 2. 兩次拷貝的信息傳遞過(guò)程

        這兩次數(shù)據(jù)拷貝可能耗時(shí)很大,如果引起TLB 和Cache miss  耗時(shí)會(huì)更大。如果數(shù)據(jù)可以由用戶(hù)空間A 直接轉(zhuǎn)移到用戶(hù)空間B,這將大大提高IPC 性能。但兩個(gè)用

戶(hù)直接共享邏輯地址空間會(huì)帶來(lái)一系列的安全問(wèn)題。L4的解決辦法是通過(guò)暫時(shí)地址映射:內(nèi)核把數(shù)據(jù)的目的地址暫時(shí)映射到一個(gè)通訊窗口(Communication Window),這一窗口存在于內(nèi)核地址空間。然后內(nèi)核把數(shù)據(jù)從用戶(hù)A 地址空間拷貝到通訊窗口供用戶(hù)B 使用。如Figure 3  所示,這一窗口屬于內(nèi)核所有,但用戶(hù)B,只有用戶(hù)B,可以訪(fǎng)問(wèn)。除以上討論的方法之外,L4還采用了許多新穎的技術(shù)來(lái)提高內(nèi)核性能,例如,直接地址轉(zhuǎn)換,懶惰調(diào)度(Lazy Scheduling ),使用寄存器傳送短消息,減少緩存及TLB Miss等等。本文不再詳述,請(qǐng)參見(jiàn)[Lie95] 。

 

Fi gure 3. L4 的信息傳遞過(guò)程

4. Conclusion

        微內(nèi)核操作系統(tǒng)已有二三十年的發(fā)展歷史,但早期系統(tǒng)的性能不夠理想。所以盡管微內(nèi)核的概念有許多可取之處,但它并未廣泛應(yīng)用于工業(yè)界。近年來(lái),新一代的微內(nèi)核系統(tǒng),如L4,Exokernel,在性能上取得了巨大突破,所以學(xué)術(shù)界,工業(yè)界對(duì)微內(nèi)核的興趣又出現(xiàn)了復(fù)蘇。對(duì)微內(nèi)核被廣泛應(yīng)用,取代傳統(tǒng)Monolithic Kernel操作系統(tǒng),的前景作出預(yù)測(cè)還為時(shí)尚早。但是,至少在一些應(yīng)用場(chǎng)合,例如,嵌入式系統(tǒng),實(shí)時(shí)系統(tǒng),作者對(duì)微內(nèi)核系統(tǒng)的前景持樂(lè)觀(guān)態(tài)度。

 

References

[Bar03] Xen and the Art of  Virtualization, Barham, Paul , etc, ACMSymposium on Operating Systems, Oct, 2003, BoltonLanding, New York.

[Eng95] Exokernel, an operating systemarchitecture of application-level resource management, Engler, Dl, Kaashock, M.F., andO’Toole, J., 15 the ACM Symposium on Operating Systems, Dec. 1995, CoperMountain, Colorado.

[Han70] The mucleus of a multiprogrammi ngsystem, Hansen, Brinch, Communication of ACM 13, April, 1970, 238-241.

[Kar05] http://i30www.ira.uka.de/aboutus/people/personal/liedtke?lid=en&publ=y, Prof.Liedtke memorial page, Univ. of Karlsruhe,2005.

[Lie93A] A persistent System in Real Use –Experiences of the First 13 years, Liedtke, Jochen, German National Research Center forComputer Science, 1993.

[Lie94B] Improving IPC by Kernel Design,Liedtke, Jochen, 14 the ACMSymposium on Operating Systems, Dec. 1993, Asheville,North Carolina.

[Lie95] On u-Kernel Construction, Liedtke,Jochen, 15 the ACMSymposium on Operating Systems, Dec. 1995, Coper Mountain,Colorado.

[Lie96] Toward Real Microkernels,Liedtke,  Jochen, Communications of theACM, Sep.,1996.

[Mac85]http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html, the mach project, CMU, 1985-1994.

[SAG03] The L4Ka:: Pistachio Microkernel,Sy stem Architecture Group, University ofKarlsruhe, white paper, May, 2003.

[Tew01] VFiasco - Towards a ProvablyCorrect Microkernel, He ndrik Tews, Hermann H?rtig, Michael Hohmuth, TU Dresden TechnicalReport TUD-FI01-1,Jan. 2001.

[Wul74] Hydram: The kernel of a multiprocessing operating system, Wulf, W., Cohen, E.,Corwin, W., Jones, A., Levin, R., Pierson,C. and Pollack, F., 1974, Communication of ACM 17, July, 1974, 337-345.

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

聯(lián)系客服