久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

內(nèi)核

來(lái)自站長(zhǎng)百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

內(nèi)核(Kernel)在計(jì)算機(jī)科學(xué)中是操作系統(tǒng)最基本的部分,主要負(fù)責(zé)管理系統(tǒng)資源。

簡(jiǎn)介[ ]

內(nèi)核是為眾多應(yīng)用程序提供對(duì)計(jì)算機(jī)硬件的安全訪問(wèn)的一部分軟件,這種訪問(wèn)是有限的,并由內(nèi)核決定一個(gè)程序在什么時(shí)候?qū)δ巢糠钟布僮鞫嚅L(zhǎng)時(shí)間。直接對(duì)硬件操作是非常復(fù)雜的。所以內(nèi)核通常提供一種硬件抽象的方法,來(lái)完成這些操作。通過(guò)進(jìn)程間通信機(jī)制及系統(tǒng)調(diào)用,應(yīng)用進(jìn)程可間接控制所需的硬件資源(特別是處理器及IO設(shè)備)。

嚴(yán)格地說(shuō),內(nèi)核并不是計(jì)算機(jī)系統(tǒng)中必要的組成部分。程序可以直接地被調(diào)入計(jì)算機(jī)中執(zhí)行;這樣的設(shè)計(jì),說(shuō)明了設(shè)計(jì)者不希望提供任何硬件抽象和操作系統(tǒng)的支持;它常見(jiàn)于早期計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)中。最終,一些輔助性程序,例如程序加載器和調(diào)試器,被設(shè)計(jì)到機(jī)器核心當(dāng)中,或者寫(xiě)入在只讀存儲(chǔ)器里。這些變化發(fā)生時(shí),操作系統(tǒng)內(nèi)核的概念就漸漸明晰起來(lái)了。

內(nèi)核的分類(lèi)[ ]

  • 單內(nèi)核: 它為潛在的硬件,提供了大量完善的硬件抽象操作。
  • 微內(nèi)核 :只提供了很小一部分的硬件抽象,大部分功能由一種特殊的用戶態(tài)程序:服務(wù)來(lái)完成。
  • 混合內(nèi)核 :它很像微內(nèi)核結(jié)構(gòu),只不過(guò)它的的組件更多的在核心態(tài)中運(yùn)行,以獲得更快的執(zhí)行速度。
  • 外內(nèi)核 :這種內(nèi)核不提供任何硬件抽象操作,但是允許為內(nèi)核增加額外的運(yùn)行庫(kù),通過(guò)這些運(yùn)行庫(kù)應(yīng)用程序可以直接地或者接近直接地對(duì)硬件進(jìn)行操作。

以下將對(duì)不同各類(lèi)的內(nèi)核進(jìn)行詳細(xì)解析:

單內(nèi)核[ ]

單內(nèi)核結(jié)構(gòu)在硬件之上,定義了一個(gè)高階的抽象界面,應(yīng)用一組原語(yǔ)(或者叫系統(tǒng)調(diào)用)來(lái)實(shí)現(xiàn)操作系統(tǒng)的功能,例如進(jìn)程管理,文件系統(tǒng),和存儲(chǔ)管理等等,這些功能由多個(gè)運(yùn)行在核心態(tài)的模塊來(lái)完成。

盡管每一個(gè)模塊都是單獨(dú)地服務(wù)這些操作,內(nèi)核代碼是高度集成的,而且難以編寫(xiě)正確。因?yàn)樗械哪K都在同一個(gè)內(nèi)核空間上運(yùn)行,一個(gè)很小的Bug都會(huì)使整個(gè)系統(tǒng)崩潰。然而,如果開(kāi)發(fā)順利,單內(nèi)核結(jié)構(gòu)就可以從運(yùn)行效率上得到好處。

很多現(xiàn)代的單內(nèi)核結(jié)構(gòu)內(nèi)核,如Linux和FreeBSD內(nèi)核,能夠在運(yùn)行時(shí)將模塊調(diào)入執(zhí)行,這就可以使擴(kuò)充內(nèi)核的功能變得更簡(jiǎn)單,也可以使內(nèi)核的核心部分變得更簡(jiǎn)潔。

單內(nèi)核結(jié)構(gòu)的例子:

  • 傳統(tǒng)的UNIX內(nèi)核,例如伯克利大學(xué)發(fā)行的版本
  • Linux內(nèi)核
  • MS-DOS, Windows 9x (Windows 95, 98, Me)

微內(nèi)核[ ]

微內(nèi)核結(jié)構(gòu)由一個(gè)非常簡(jiǎn)單的硬件抽象層和一組比較關(guān)鍵的原語(yǔ)或系統(tǒng)調(diào)用組成;這些原語(yǔ),僅僅包括了創(chuàng)建一個(gè)系統(tǒng)必需的幾個(gè)部分;如 線程管理,地址空間和進(jìn)程間通信等。

微核的目標(biāo)是將系統(tǒng)服務(wù)的實(shí)現(xiàn)和系統(tǒng)的基本操作規(guī)則分離開(kāi)來(lái)。例如,進(jìn)程的輸入/輸出鎖定服務(wù)可以由運(yùn)行在微核之外的一個(gè)服務(wù)組件來(lái)提供。這些非常模塊化的用戶態(tài)服務(wù)器用于完成操作系統(tǒng)中比較高級(jí)的操作,這樣的設(shè)計(jì)使內(nèi)核中最核心的部分的設(shè)計(jì)更簡(jiǎn)單。一個(gè)服務(wù)組件的失效并不會(huì)導(dǎo)致整個(gè)系統(tǒng)的崩潰,內(nèi)核需要做的,僅僅是重新啟動(dòng)這個(gè)組件,而不必影響其它的部分

微內(nèi)核將許多OS服務(wù)放入分離的進(jìn)程,如文件系統(tǒng),設(shè)備驅(qū)動(dòng)程序,而進(jìn)程通過(guò)消息傳遞調(diào)用OS服務(wù).微內(nèi)核結(jié)構(gòu)必然是多線程的,第一代微內(nèi)核,在核心提供了較多的服務(wù),因此被稱為'胖微內(nèi)核',它的典型代表是MACH,它既是GNU HURD也是APPLE SERVER OS 的核心,可以說(shuō),蒸蒸日上.第二代微內(nèi)核只提供最基本的OS服務(wù),典型的OS是QNX,QNX在理論界很有名,被認(rèn)為是一種先進(jìn)的OS.

微內(nèi)核結(jié)構(gòu)的例子:

  • AIX
  • BeOS
  • L4微內(nèi)核系列
  • Mach, 用于GNU Hurd和Mac OS X
  • Minix
  • MorphOS
  • QNX
  • RadiOS
  • VSTa

單內(nèi)核與微內(nèi)核的比較[ ]

單內(nèi)核結(jié)構(gòu)是非常有吸引力的一種設(shè)計(jì),由于在同一個(gè)地址空間上實(shí)現(xiàn)所有復(fù)雜的低級(jí)操作系統(tǒng)控制代碼的效率會(huì)比在不同地址空間上實(shí)現(xiàn)更高些。

20世紀(jì)90年代初,單內(nèi)核結(jié)構(gòu)被認(rèn)為是過(guò)時(shí)的。把Linux設(shè)計(jì)成為單內(nèi)核結(jié)構(gòu)而不是微內(nèi)核,引起了無(wú)數(shù)的爭(zhēng)議(參見(jiàn)塔能鮑姆-林納斯辯論)。

現(xiàn)在,單核結(jié)構(gòu)正傾向于設(shè)計(jì)不容易出錯(cuò),所以它的發(fā)展會(huì)比微內(nèi)核結(jié)構(gòu)更迅速些。兩個(gè)陣營(yíng)中都有成功的案例。微核經(jīng)常被用于機(jī)器人和醫(yī)療器械的嵌入式設(shè)計(jì)中,因?yàn)樗南到y(tǒng)的關(guān)鍵部分都處在相互分開(kāi)的,被保護(hù)的存儲(chǔ)空間中。這對(duì)于單核設(shè)計(jì)來(lái)說(shuō)是不可能的,就算它采用了運(yùn)行時(shí)加載模塊的方式。

盡管Mach是眾所周知的多用途的微內(nèi)核,人們還是開(kāi)發(fā)了除此之外的幾個(gè)微內(nèi)核。L3是一個(gè)演示性的內(nèi)核,只是為了證明微內(nèi)核設(shè)計(jì)并不總是低運(yùn)行速度。它的后續(xù)版本L4,甚至可以將Linux內(nèi)核作為它的一個(gè)進(jìn)程,運(yùn)行在單獨(dú)的地址空間。

QNX是一個(gè)從20世紀(jì)80年代,就開(kāi)始設(shè)計(jì)的微內(nèi)核系統(tǒng)。它比Mach更接近微內(nèi)核的理念。它被用于一些特殊的領(lǐng)域;在這些情況下,由于軟件錯(cuò)誤,導(dǎo)致系統(tǒng)失效是不允許的。例如航天飛機(jī)上的機(jī)械手,還有研磨望遠(yuǎn)鏡鏡片的機(jī)器,一點(diǎn)點(diǎn)失誤就會(huì)導(dǎo)致上千美元的損失。

很多人相信,由于Mach不能夠解決一些提出微內(nèi)核理論時(shí)針對(duì)的問(wèn)題,所以微內(nèi)核技術(shù)毫無(wú)用處。Mach的愛(ài)好者表明這是非常狹隘的觀點(diǎn),遺憾的是似乎所有人都開(kāi)始接受這種觀點(diǎn)。

混合內(nèi)核[ ]

混合內(nèi)核實(shí)質(zhì)上是微內(nèi)核,只不過(guò)它讓一些微核結(jié)構(gòu)運(yùn)行在用戶空間的代碼運(yùn)行在內(nèi)核空間,這樣讓內(nèi)核的運(yùn)行效率更高些。這是一種妥協(xié)做法,設(shè)計(jì)者參考了微內(nèi)核結(jié)構(gòu)的系統(tǒng)運(yùn)行速度不佳的理論。然而后來(lái)的實(shí)驗(yàn)證明,純微內(nèi)核的系統(tǒng)實(shí)際上也可以是高效率的。大多數(shù)現(xiàn)代操作系統(tǒng)遵循這種設(shè)計(jì)范疇,微軟視窗就是一個(gè)典型的例子。另外還有XNU,運(yùn)行在蘋(píng)果Mac OS X上的內(nèi)核,也是一個(gè)混合內(nèi)核。

混合內(nèi)核的例子:

  • Windows NT、Windows 2000、Windows XP、Windows Server 2003以及Windows Vista和Windows 7等基于NT技術(shù)的微軟視窗操作系統(tǒng)
  • BeOS 內(nèi)核
  • DragonFly BSD
  • ReactOS 內(nèi)核
  • XNU

一些人認(rèn)為可以在運(yùn)行時(shí)加載模塊的單核系統(tǒng)和混合內(nèi)核系統(tǒng)沒(méi)有區(qū)別。這是不正確的?;旌弦馕吨鼜膯魏撕臀⒑讼到y(tǒng)中都吸取了一定的設(shè)計(jì)模式,例如一些非關(guān)鍵的代碼在用戶空間運(yùn)行,另一些在內(nèi)核空間運(yùn)行,單純是為了效率的原因。

外內(nèi)核[ ]

外內(nèi)核系統(tǒng),也被稱為縱向結(jié)構(gòu)操作系統(tǒng),是一種比較極端的設(shè)計(jì)方法。

它的設(shè)計(jì)理念是讓用戶程序的設(shè)計(jì)者來(lái)決定硬件接口的設(shè)計(jì)。外內(nèi)核本身非常的小,它通常只負(fù)責(zé)系統(tǒng)保護(hù)和系統(tǒng)資源復(fù)用相關(guān)的服務(wù)。

傳統(tǒng)的內(nèi)核設(shè)計(jì)(包括單核和微核)都對(duì)硬件作了抽象,把硬件資源或設(shè)備驅(qū)動(dòng)程序都隱藏在硬件抽象層下。比方說(shuō),在這些系統(tǒng)中,如果分配一段物理存儲(chǔ),應(yīng)用程序并不知道它的實(shí)際位置。而外核的目標(biāo)就是讓?xiě)?yīng)用程序直接請(qǐng)求一塊特定的物理空間,一塊特定的磁盤(pán)塊等等。系統(tǒng)本身只保證被請(qǐng)求的資源當(dāng)前是空閑的,應(yīng)用程序就允許直接訪問(wèn)它。既然外核系統(tǒng)只提供了比較低級(jí)的硬件操作,而沒(méi)有像其他系統(tǒng)一樣提供高級(jí)的硬件抽象,那么就需要增加額外的運(yùn)行庫(kù)支持。這些運(yùn)行庫(kù)運(yùn)行在外核之上,給用戶程序提供了完整的功能。

理論上,這種設(shè)計(jì)可以讓各種操作系統(tǒng)運(yùn)行在一個(gè)外核之上,如Windows和Unix。并且設(shè)計(jì)人員可以根據(jù)運(yùn)行效率調(diào)整系統(tǒng)的各部分功能。

現(xiàn)在,外核設(shè)計(jì)還停留在研究階段,沒(méi)有任何一個(gè)商業(yè)系統(tǒng)采用了這種設(shè)計(jì)。幾種概念上的操作系統(tǒng)正在被開(kāi)發(fā),如劍橋大學(xué)的Nemesis,格拉斯哥大學(xué)的Citrix系統(tǒng)和瑞士計(jì)算機(jī)科學(xué)院的一套系統(tǒng)。麻省理工學(xué)院也在進(jìn)行著這類(lèi)研究。

瀏覽器內(nèi)核簡(jiǎn)介[ ]

瀏覽器的核心作用就是用來(lái)上網(wǎng)瀏覽,因此它對(duì)頁(yè)面載入速度的快慢,直接影響到我們的使用。

一款優(yōu)秀的網(wǎng)頁(yè)瀏覽器,不僅要具備美觀大方的外表,還必須能夠以較快的速度載入用戶訪問(wèn)的網(wǎng)頁(yè),將頁(yè)面的內(nèi)容完整地呈現(xiàn)在窗口中?;蛘?,在這里我們可以說(shuō)一個(gè)出色的瀏覽器,其內(nèi)核必須擁有良好的解析速度。

通常所謂的瀏覽器內(nèi)核也就是瀏覽器所采用的渲染引擎,渲染引擎決定了瀏覽器如何顯示網(wǎng)頁(yè)的內(nèi)容以及頁(yè)面的格式信息。不同的瀏覽器內(nèi)核對(duì)網(wǎng)頁(yè)編寫(xiě)語(yǔ)法的解釋也有不同,因此同一網(wǎng)頁(yè)在不同的內(nèi)核的瀏覽器里的渲染(顯示)效果也可能不同,這也是網(wǎng)頁(yè)編寫(xiě)者需要在不同內(nèi)核的瀏覽器中測(cè)試網(wǎng)頁(yè)顯示效果的原因。

常用瀏覽器內(nèi)核介紹[ ]

瀏覽器內(nèi)核很多,如果加上所有的幾乎沒(méi)有什么人在用的非商業(yè)的免費(fèi)內(nèi)核,那么可能大約有10款以上甚至更多,不過(guò)通常我們比較常見(jiàn)的大約只有以下四種,下面先簡(jiǎn)單介紹一下。

  • Trident: IE瀏覽器使用的內(nèi)核,該內(nèi)核程序在1997年的IE4中首次被采用,是微軟在Mosaic代碼的基礎(chǔ)之上修改而來(lái)的,并沿用到目前的IE7。Trident實(shí)際上是一款開(kāi)放的內(nèi)核,其接口內(nèi)核設(shè)計(jì)的相當(dāng)成熟,因此才有許多采用IE內(nèi)核而非IE的瀏覽器涌現(xiàn)。此外,為了方便也有很多人直接簡(jiǎn)稱其為IE內(nèi)核(當(dāng)然也不排除有部分人是因?yàn)椴恢纼?nèi)核名稱而只好如此說(shuō))。

由于IE本身的“壟斷性”(雖然名義上IE并非壟斷,但實(shí)際上,特別是從Windows 95年代一直到XP初期,就市場(chǎng)占有率來(lái)說(shuō)IE的確借助Windows的東風(fēng)處于“壟斷”的地位)而使得Trident內(nèi)核的長(zhǎng)期一家獨(dú)大,微軟很長(zhǎng)時(shí)間都并沒(méi)有更新Trident內(nèi)核,這導(dǎo)致了兩個(gè)后果——一是Trident內(nèi)核曾經(jīng)幾乎與W3C標(biāo)準(zhǔn)脫節(jié)(2005年),二是Trident內(nèi)核的大量Bug等安全性問(wèn)題沒(méi)有得到及時(shí)解決,然后加上一些致力于開(kāi)源的開(kāi)發(fā)者和一些學(xué)者們公開(kāi)自己認(rèn)為IE瀏覽器不安全的觀點(diǎn),也有很多用戶轉(zhuǎn)向了其他瀏覽器,FirefoxOpera就是這個(gè)時(shí)候興起的。

非Trident內(nèi)核瀏覽器的市場(chǎng)占有率大幅提高也致使許多網(wǎng)頁(yè)開(kāi)發(fā)人員開(kāi)始注意網(wǎng)頁(yè)標(biāo)準(zhǔn)和非IE瀏覽器的瀏覽效果問(wèn)題。使用Trident內(nèi)核的瀏覽器大量出現(xiàn),除了常見(jiàn)的IE、Maxthon、TT等,還有GreenBrowser、AvantBrowser等等

  • Geckos: Netcape6開(kāi)始采用的內(nèi)核,后來(lái)的Mozilla FireFox也采用了該內(nèi)核,Geckos的特點(diǎn)是代碼完全公開(kāi),因此,其可開(kāi)發(fā)程度很高,全世界的程序員都可以為其編寫(xiě)代碼,增加功能。而且這個(gè)內(nèi)核跟Mosaic的關(guān)系更深,或者說(shuō)事實(shí)上現(xiàn)在的Netscape Navigator已經(jīng)改用這個(gè)內(nèi)核了,因此Firefox的插件能夠在Navigator上使用——當(dāng)然,不是所有的都能兼容。因?yàn)檫@是個(gè)開(kāi)源內(nèi)核,因此受到許多人的青睞,Geckos內(nèi)核的瀏覽器也很多,這也是Geckos內(nèi)核雖然年輕但市場(chǎng)占有率能夠迅速提高的重要原因。

事實(shí)上,Geckos引擎的由來(lái)跟IE不無(wú)關(guān)系,前面說(shuō)過(guò)IE沒(méi)有使用W3C的標(biāo)準(zhǔn),這導(dǎo)致了微軟內(nèi)部一些開(kāi)發(fā)人員的不滿;他們與當(dāng)時(shí)已經(jīng)停止更新了的Netscape的一些員工一起創(chuàng)辦了Mozilla,以當(dāng)時(shí)的Mosaic內(nèi)核為基礎(chǔ)重新編寫(xiě)內(nèi)核,于是開(kāi)發(fā)出了Geckos。不過(guò)事實(shí)上,Gecko內(nèi)核的瀏覽器仍然還是Firefox用戶最多,所以有時(shí)也會(huì)被稱為Firefox內(nèi)核。此外Gecko也是一個(gè)跨平臺(tái)內(nèi)核,可以在Windows、BSD、Linux和Mac OS X中使用。

  • Presto:目前Opera采用的內(nèi)核,該內(nèi)核在2003年的Opera7中首次被使用,也是由Opera Software開(kāi)發(fā)出來(lái)的用以代替早期的Elektra內(nèi)核(Opera 4~6)。該款引擎的特點(diǎn)就是渲染速度的優(yōu)化達(dá)到了極致,也是目前公認(rèn)網(wǎng)頁(yè)瀏覽速度最快的瀏覽器內(nèi)核,然而代價(jià)是犧牲了網(wǎng)頁(yè)的兼容性。

它實(shí)際上這是一個(gè)動(dòng)態(tài)內(nèi)核,與前面幾個(gè)內(nèi)核的最大的區(qū)別就在腳本處理上,Presto有著天生的優(yōu)勢(shì),頁(yè)面的全部或者部分都能夠在回應(yīng)腳本事件時(shí)等情況下被重新解析。此外該內(nèi)核在執(zhí)行JavaScript的時(shí)候有著最快的速度,根據(jù)在同等條件下的測(cè)試,Presto內(nèi)核執(zhí)行同等Javascrīpt所需的時(shí)間僅有Trident和Gecko內(nèi)核的約1/3(Trident內(nèi)核最慢,不過(guò)兩者相差沒(méi)有多大)。

  • Webkit:蘋(píng)果公司自己的內(nèi)核,也是蘋(píng)果的Safari瀏覽器使用的內(nèi)核。 Webkit引擎包含WebCore排版引擎及JavascrīptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來(lái),它們都是自由軟件,在GPL條約下授權(quán),同時(shí)支持BSD系統(tǒng)的開(kāi)發(fā)。所以Webkit也是自由軟件,同時(shí)開(kāi)放源代碼。在安全方面不受IE、Firefox的制約,所以Safari瀏覽器在國(guó)內(nèi)還是很安全的。

限于Mac OS X的使用不廣泛和Safari瀏覽器曾經(jīng)只是Mac OS X的專屬瀏覽器,這個(gè)內(nèi)核本身應(yīng)該說(shuō)市場(chǎng)范圍并不大;但似乎根據(jù)最新的瀏覽器調(diào)查表明,該瀏覽器的市場(chǎng)甚至已經(jīng)超過(guò)了Opera的Presto了——當(dāng)然這一方面得益于蘋(píng)果轉(zhuǎn)到x86架構(gòu)之后的人氣暴漲,另外也是因?yàn)镾afari 3終于推出了Windows版的緣故吧。

相關(guān)條目[ ]

參考來(lái)源[ ]