小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

微內(nèi)核和單體內(nèi)核的區(qū)別

 sofes 2017-08-07
單體內(nèi)核:提供調(diào)度、文件系統(tǒng)、網(wǎng)絡(luò)、設(shè)備驅(qū)動、存儲管理等作為一個進(jìn)程實現(xiàn),所有元素共享相同的地址空間。
微內(nèi)核:系統(tǒng)內(nèi)核僅僅包含一些基本功能如地址空間,進(jìn)程間通信,基本的調(diào)度,其他都由服務(wù)程序提供。
    單內(nèi)核與微內(nèi)核設(shè)計之比較
   操作系統(tǒng)內(nèi)核可以分為兩大設(shè)計陣營:單內(nèi)核和微內(nèi)核(第三陣營外內(nèi)核,主要用在科研系統(tǒng)中,
但也逐漸在現(xiàn)實世界中壯大起來)。
   單內(nèi)核是兩大陣營中一種較為簡單的設(shè)計,在1980年之前,所有的內(nèi)核都設(shè)計成單內(nèi)核。所謂單內(nèi)
核就是把它從整體上作為一個單獨的大過程來實現(xiàn),并同時運行在一個單獨的地址空間。因此,這樣的
內(nèi)核通常以單個靜態(tài)二進(jìn)制文件的形式存放于磁盤。所有內(nèi)核服務(wù)都在這樣的一個大內(nèi)核空間中運行。
內(nèi)核之間的通信是微不足道的,因為大家都運行在內(nèi)核態(tài),并身處同一地址空間:內(nèi)核可以直接調(diào)用函
數(shù),這與用戶空間沒有什么區(qū)別。這種模式的支持者認(rèn)為單模塊具有簡單和高性能的特點。大多數(shù)Unix
系統(tǒng)都設(shè)計為單模塊。
   另一方面,微內(nèi)核并不作為一個單獨的大過程來實現(xiàn)。相反,微內(nèi)核的功能被劃分為獨立的過程,
每個過程叫做一個服務(wù)器。理想情況下,只有強烈請求特權(quán)服務(wù)的服務(wù)器才運行在特權(quán)模式下,其他服
務(wù)器都運行在用戶空間。不過,所有的服務(wù)器都保持獨立并運行在各自的地址空間。因此,就不可能像
單模塊內(nèi)核那樣直接調(diào)用函數(shù),而是通過消息傳遞處理微內(nèi)核通信:系統(tǒng)采用了進(jìn)程間通信(IPC)機制,
因此,各種服務(wù)器之間通過IPC機制互通消息,互換“服務(wù)”。服務(wù)器的各自獨立有效地避免了一個服務(wù)
器的失效禍及另一個。
   同樣,模塊化的系統(tǒng)允許一個服務(wù)器為了另一個服務(wù)器而換出。因為IPC機制的開銷比函數(shù)調(diào)用多,
又因為會涉及內(nèi)核空間到用戶空間的上下文切換,因此,消息傳遞需要一定的周期,而單內(nèi)核中簡單的
函數(shù)調(diào)用沒有這些開銷?;诖?,付之于實際的微內(nèi)核系統(tǒng)讓大部分或全部服務(wù)器位于內(nèi)核,這樣,就
可以直接調(diào)用函數(shù),消除頻繁的上下文切換。Windows NT內(nèi)核和Mach(Mac OSX的組成部分)是微內(nèi)核
的典型實例。不管是Windows NT還是Mac OS X,都在其新近版本中不讓任何微內(nèi)核服務(wù)器運行在用戶空
間,這違背了微內(nèi)核設(shè)計的初衷。
   Linux是一個單內(nèi)核,也就是說,Linux內(nèi)核運行在單獨的內(nèi)核地址空間。不過,Linux汲取了微內(nèi)核
的精華:其引以為豪的是模塊化設(shè)計、搶占式內(nèi)核、支持內(nèi)核線程以及動態(tài)裝載內(nèi)核模塊的能力。不僅
如此,Linux還避其微內(nèi)核設(shè)計上性能損失的缺陷,讓所有事情都運行在內(nèi)核態(tài),直接調(diào)用函數(shù),無需消
息傳遞。至今,Linux是模塊化的、多線程的以及內(nèi)核本身可調(diào)度的操作系統(tǒng)。實用主義再次占了上風(fēng)。
    當(dāng)Linus和其他內(nèi)核開發(fā)者設(shè)計Linux內(nèi)核時,他們并沒有完全徹底地與Unix訣別。他們充分地認(rèn)識
到,不能忽視Unix的底蘊(特別是Unix的 API)。而由于Linux并沒有基于某種特定的Unix,Linus和他
的伙伴們對每個特定的問題都可以選擇已知最理想的解決方案—在有些時候,當(dāng)然也可以創(chuàng)造一些新的
方案。以下是對Linux內(nèi)核與Unix各種變體的內(nèi)核特點所作的分析比較:
   ·Linux支持動態(tài)加載內(nèi)核模塊。盡管Linux內(nèi)核也是單內(nèi)核,可是允許在需要的時候動態(tài)地卸除和
加載部分內(nèi)核代碼。
   ·Linux支持對稱多處理(SMP)機制,盡管許多Unix的變體也支持SMP,但傳統(tǒng)的Unix并不支持這種
機制。
   ·Linux內(nèi)核可以搶占(preemptive)。與傳統(tǒng)的Unix不同,Linux內(nèi)核具有允許在內(nèi)核運行的任務(wù)
優(yōu)先執(zhí)行的能力。在其他各種Unix產(chǎn)品中,只有Solaris和IRIX支持搶占,但是大多數(shù)傳統(tǒng)的Unix內(nèi)核不
支持搶占。
   ·Linux對線程支持的實現(xiàn)比較有意思:內(nèi)核并不區(qū)分線程和其他的一般進(jìn)程。對于內(nèi)核來說,所有
的進(jìn)程都一樣—只不過其中的一些共享資源而已。
   ·Linux提供具有設(shè)備類的面向?qū)ο蟮脑O(shè)備模型、熱插拔事件,以及用戶空間的設(shè)備文件系統(tǒng)
(sysfs)。
   ·Linux忽略了一些被認(rèn)為是設(shè)計得很拙劣的Unix特性,像STREAMS,它還忽略了那些實際上已經(jīng)根
本不會使用的過時標(biāo)準(zhǔn)。
   ·Linux體現(xiàn)了自由這個詞的精髓?,F(xiàn)有的Linux特性集就是Linux公開開發(fā)模型自由發(fā)展的結(jié)果。如
果一個特性沒有任何價值或者創(chuàng)意很差,沒有任何人會被迫去實現(xiàn)它。相反的,在Linux的發(fā)展過程中已
經(jīng)形成了一種值得稱贊的務(wù)實態(tài)度:任何改變都要針對現(xiàn)實中確實存在的問題,經(jīng)過完善的設(shè)計并有正
確簡潔的實現(xiàn)。于是,許多其他現(xiàn)代Unix系統(tǒng)包含的特性,如內(nèi)核換頁機制,都被毫不遲疑的引入進(jìn)來

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多