色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

讓我們一起來認識下微內核吧

Q4MP_gh_c472c21 ? 來源:嵌入式ARM ? 2020-01-30 15:12 ? 次閱讀

最近微內核的概念常常被大家提及,同時還有 Google Fuchisa 這樣的微內核新星,這里讓我們一起來認識下微內核吧。 1背景龐大的 UNIX 家族

計算機技術在二戰后快速發展,構成計算機的主要基本單元從電子管發展到分立晶體管,再到后來的大規模集成電路。隨著計算機技術發展,計算機性能越來越強勁,硬件越來越復雜,人們發現很難去直接管理計算機了,于是人們開始設計軟件用于管理越來越復雜的計算機系統,這些軟件稱作系統級軟件。從最開始的批處理系統,多道程序系統,分時系統到上世紀 60 年代開始出現通用操作系統,計算機系統層出不窮,直到上世紀 70 年代才出現被大家廣泛接受廣泛使用的通用操作系統。其中最經典的當然就是 UNIX 系統了。

UNIX 系統,1971 年誕生于大名鼎鼎的貝爾實驗室的一臺 PDP-11/24 機器上,其后經過不斷發展與傳播,在 80 年代取得了巨大成功,UNIX 被移植到眾多的處理器架構,并在眾多行業得到廣泛使用,甚至成為行業標準影響至今。

UNIX 以及類 UNIX 系統如 Linux 都是典型的宏內核設計,也就是把所有系統服務都放到內核里,因為系統服務代碼之間存在大量數據交換和大量的服務請求,而在同一個代碼段內進行函數調用 (C 語言) 或跳轉 (匯編或者機器碼時代) 是最直接、最高效的方法,在同一片地址空間也方便數據交換,所以這樣的宏內核設計是很自然的。

但是隨著 UNIX 內核功能的拓展 (文件系統、TCP/IP 網絡協議棧、進程管理、內存管理、驅動程序等),UNIX 內核代碼也相應增加了很多,進而在可維護性. 穩定性,安全性方面面臨一些挑戰。為了試圖解決這些挑戰,人們開始嘗試使用微內核的思想來設計系統內核。

2什么是微內核?

微內核設計的基本思想是簡化內核功能,在內核之外的用戶態盡可能多地實現系統服務,同時加入相互之間的安全保護。內核只提供最基礎的服務,比如多進程調度、多進程通信(IPC) 等。其中進程通信是作為連接應用與用戶態系統服務的橋梁。

下圖是宏內核與微內核的對比示意圖

宏內核系統相關的服務基本都是放于內核態內核中,例如文件系統、設備驅動、虛擬內存管理、網絡協議棧等;而微內核則把更多的系統服務(例如文件系統、POSIX 服務、網絡協議棧甚至外設驅動)放到用戶態應用,形成一個個服務,等待其他應用的請求。而后來,為了在宏內核與微內核之間揚長避短,也發展出了中間的混合內核的形態,部分服務也會放置于內核中。

3微內核的發展歷史

微內核這個概念從提出開始就在不斷地發展、完善進步之中,到目前為止可以分為三代。

第一代微內核:從無到有

第一代微內核的主要代表是 Mach,該系統由卡內基 - 梅隆大學的 Avie Tevanian 和 Richard Rashid 主導開發。在 Mach 剛剛開始設計時,UNIX 的發展正如日中天,所以 Mach 在設計時的一大目標就是兼容 UNIX,但是與 UNIX 不同的是 Mach 嘗試使用微內核架構去設計。Mach 以 IPC 是作為所有系統服務與內核交換數據的基礎機制,充分運用 IPC、虛擬內存、多進程等特性將冗余的系統服務移出內核作為進程運行。

1986 年,經過兩年的開發,第一版的 Mach 發布后的第二年,Mach 就發布了第 2 版,不過由于時間倉促,加之沒有足夠的人手與資金,所以此時 Mach 內核并不提供完全的系統服務。為了支撐系統上層運行,這一版的內核包含了大量 4.3 版本的 BSD 系統 (UNIX 的一個分支) 代碼提供系統服務,并且 BSD 系統服務運行在內核狀態,這導致 Mach 內核的代碼體積甚至大于常規 UNIX 內核。第一版和第二版的 Mach 主要做了如下工作:1. 驗證了微內核的可行性;2. 在多處理器計算機上進行移植驗證了微內核在多處理器計算機上的運行;3. 最后為了提高 IPC 的效率,Mach 使用共享內存機制來完成 IPC。而 Mach 的共享內存機制是在虛擬內存技術的支持下實現的,只有需要對內存進行寫入時才進行復制。這么一處理比每次都復制一遍內存節省了內存使用同時又加快了 IPC 機制的處理時間,這個改進稱為寫時復制,并且在如今的通用操作系統如 Linux 中常常用到。

經過測試,Mach 2.5 的效率最多比 UNIX 少 25%,但是考慮到 Mach 帶來的可靠性、可拓展性、安全性,這個效率損失尚可以接受。當然此時 Mach 內核還不算完全的微內核。而考慮到微內核可以更高效地利用多處理器計算機的處理器核心資源,人們期待著等 Mach 把系統服務都搬到內核之外后可以把運行效率損失降下來。同時 Mach 在微內核方面小小的嘗試迅速吸引了大批公司與組織的注意,開放軟件基金會 (Open Software Foundation, OSF) 宣布下一代系統 OSF/1 將基于 Mach 的內核, NeXTSTEP 也將使用 Mach2.5, 甚至 IBM 也打算利用 Mach 構建 Workplace OS。蘋果公司這個時候也出手了,蘋果公司也從此基于 Mach2.5 打造其操作系統內核 XNU,XNU 的構成如下圖所示,Mach 作為內核的內環,外環右側是蘋果的驅動框架(I/O Kit),外環左側是 BSD 的系統服務代碼提供 UNIX 兼容的服務層,這三者共同協作向上層提供完整的系統服務。XNU 廣泛地使用在蘋果公司的 OSX,IOS 等系統中。

這個時候由于 UNIX 系統廣泛使用帶來的商業利益,此時 BSD 系統開發者與 UNIX 的擁有者 AT&T 陷入了法律大戰,Mach 使用的 BSD 相關代碼有了法律風險。提升性能的期望和規避法律風險的需求推動著 Mach 3.0 的開發,Mach 3.0 的開發目標主要是為了替換 BSD 系統服務,同時盡量多地將系統服務放到內核之外去運行,成為名副其實的微內核設計。經過眾多開發者 3 年的努力,Mach 3.0 于 1990 年發布,但是由于在系統服務之間完全使用 IPC 通信,而不是向宏內核那樣直接進行函數調用,即便是多處理器機器上運行也性能損失慘重,Mach 3.0 最多比 UNIX 損失 67% 運行效率,這導致 Mach 3.0 以及其所代表的第一代微內核設計被看衰。此后斷斷續續有在 Mach 的基礎上對性能進行提升的嘗試,但是均不太理想,至此 Mach 成為了微內核第一代先驅者。

第二代微內核:解決性能問題

第二代微內核的主要代表是 L3 和 L4,以及 QNX 系統使用的 Neutrino 內核。前面第一代的微內核 Mach 由于效率問題雖然失敗了,但是微內核的理念并沒有被放棄,德國的計算機科學家 Jochen Liedtke 認為 Mach 的 IPC 效率低下的原因就是因為 IPC 部分不夠精簡,于是他開發了 L3 和 L4 微內核,對 IPC 部分進行了很徹底的精簡:1. 內核的 IPC 機制只是單純地傳遞信息,諸如安全權限檢查這類的代碼都省略掉,省略掉的功能全部由用戶進程自己處理。如此一來 IPC 功能部分的代碼執行時間大大縮短;2. IPC 不使用內存傳遞消息,而使用寄存器傳遞消息,同時限制 IPC 每次傳遞的信息長度,這樣省去了對內存的訪問時間。L4 微內核的 IPC 速度經過測試要比 Mach 快 20 倍,這個令人驚訝的優化效果吸引了眾多的目光,使微內核的研究重新火熱起來。后面 L4 內核又發展出了很多相關系統,比如 Pistachio,L4/MIPS,與 Fiasco 等等,這些內核組成了 L4 的大家族。

第二代微內核的代表除了有 L4 內核,也還有其他微內核比如 Exokernel、Rambler 等,不過商業上最成功的則是目前黑莓公司旗下的 QNX 系統所使用的 Neutrino 內核(QNX,1980 年誕生,最初以 QUICK UNIX 為名,后改為 QNX;2004 年 QNX 被 Harman 國際收購;2010 年 Harman 國際下被黑莓收購,QNX 成為黑莓旗下的資產),QNX 主要為高可靠領域提供解決方案,比如交通、能源、醫療、航天航空等。

第三代微內核:主要重視安全問題等

在前面兩代的基礎上,第三代微內核蓬勃發展,許許多多微內核都被開發出來,主要代表有:seL4、Fiasco.OC、NOVA 等。本來第一代微內核的設計隔離了使內核安全性降低的系統服務,讓系統服務漏洞不會影響內核,進而提高了內核安全性,可以說是關上了破壞系統的門, 但是第二代系統卻又給攻擊者開了個窗戶;由于第二代微內核在內核中省去了關于安全性檢查等步驟,把所有關于安全檢查功能的實現都交給系統服務自己去實現,這導致系統服務的通信接口直接暴露給用戶態,任何進程都可能無限制地請求系統服務,系統服務不得不花費額外的代價來區分請求是否合法,容易造成拒絕服務攻擊。比如正常的文件服務應該是從虛擬文件系統服務 ->文件系統服務 ->磁盤驅動服務這個流程來完成的,但是如果攻擊者如果繞過虛擬文件系統服務,直接無限制地請求攻擊者本身沒有權限訪問的文件系統服務,使文件系統服務長期處于滿載狀態,讓其他進程無法通過正常的虛擬文件系統得到文件系統服務。為了增強安全性,且不過分影響性能,人們開始研發第三代微內核。

seL4 是在第二代內核 L4 的基礎上發展而來的。seL4 不僅僅繼承了 L4 內核家族的高性能特性,還具備基于端點 (enndpoint) 的 IPC 機制。這種 IPC 機制最大的特點是使用了能力空間的概念,進程在使用 IPC 請求系統服務時必須具備相對應的能力,進程持有不可偽造的令牌來表示擁有請求某種服務的能力。令牌可以被復制,可以被轉移,還可以通過 IPC 進行傳輸。令牌其實是一個指向存在于內核空間內核對象的指針,所以普通進程并不能修改自身以及其他進程的權限分配,但是內核可以對令牌指定的權限進行控制,從而保證了用戶態不能繞過能力空間這個機制對系統服務造成濫用。

seL4 還是第一個完全通過形式化驗證的內核,通俗說形式化驗證就是在數學軟件的幫助下使用數學語言自動化地推導檢查系統的每一個運行狀態。

4其他的微內核系統:Fuchsia,Minix

Fuchsia 是 Google 開發的一款全新操作系統,試圖覆蓋手機、平板甚至筆記本等一系列領域。Google 為該系統配備了 Vulkan 圖形接口、3D 桌面渲染 Scenic、Flutter 應用開發框架,還有一個稱為 zircon 的微內核。zircon 內核是從高通平臺的一個 Bootloader 項目:Little Kernel 發展而來。zircon 內核屬于微內核設計,只提供 IPC,進程管理,地址空間管理功能。zircon 區別于以進程或者以文件為核心的設計,zircon 是以內存為核心來設計的,內存在 zircon 中是以對象的方式存在,可以通過 channel 通信機制傳遞虛擬內存對象(Virtual memory object)的句柄,進程拿到句柄后可以把這塊內存映射到自己的空間。

Minix 系統則由荷蘭阿姆斯特丹的 Vrije 大學的 Andrew S.Tanenbaum 教授所開發。該系統最大的特點是可以故障隔離,自動重啟失敗的服務。Minix 使用分層設計,最底層的微內核提供中斷處理、進程管理、進程通信等服務,這一層運行在內核態;中間層提供輪回服務 (Reincarnation Server)、文件服務、進程管理、X 圖形服務以及驅動等,這一層運行在用戶態;最上層為用戶進程。其中輪回服務負責在中間層的服務出現崩潰時重啟這些服務,從而保證服務的自我修復。Minix 由于其自我修復特性被英特爾管理引擎(ME)所選用,該管理引擎主要負責管理英特爾芯片的內部模塊。

5微內核的優缺點 優點

系統服務模塊化,可移植性高;

內核安全性提高 (模塊內部的 bug 不影響內核穩定,將黑客利用軟件漏洞造成的破壞限制在單個模塊內部);

可以多套系統服務共存,相當于同時運行多種操作系統;

穩定統一的接口 (可以獨立維護私有驅動以及服務,不需要跟內核源碼綁定);

在商業上,微內核可以避免代碼受到一些開源協議的影響,比如 GPL 協議;

內核精簡,可以進行形式化驗證,利用數學證明內核的安全性;

數學可證明的實時性;

非常適合多處理器系統設計,在多處理器核心計算機上,互相依賴的系統服務可以同時運行;

缺點

通過進程通信的方式交換數據或者調用系統服務,而不是使用系統調用,造成額外的操作系統開銷;

使用一些頻繁使用的系統服務時,比如網絡收發數據,造成的進程上下文切換對操作系統來說也是一個負擔;

由于系統服務高度模塊化,系統服務之間存在大量的內存復制;

對互相之間存在復雜調用關系的系統服務,難以設計通信接口;

系統服務與內核在地址空間上分離,造成代碼局部性差,降低了 cache 命中率。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11314

    瀏覽量

    209795
  • 操作系統
    +關注

    關注

    37

    文章

    6842

    瀏覽量

    123410
  • 微內核
    +關注

    關注

    0

    文章

    58

    瀏覽量

    13432

原文標題:華為“鴻蒙”所涉及的微內核到底是什么?

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    快來“一起鴻蒙”!體驗更出色,智慧再升級

    當鴻蒙遇上脫口秀,會擦出什么樣的火花?“一起鴻蒙”給出了答案。華為邀請了呼蘭、賈耗、漫才兄弟、龐博、小鹿等藝人,用脫口秀獨有的風趣幽默方式,將原生鴻蒙帶入觀眾的視野。從真實的應用場景出發,脫口秀
    的頭像 發表于 12-25 14:45 ?154次閱讀
    快來“<b class='flag-5'>一起</b>鴻蒙<b class='flag-5'>吧</b>”!體驗更出色,智慧再升級

    無線壓力傳感器應用廣泛,那么讓我們一起來看看他都在哪些領域應用

    無線壓力傳感器應用廣泛,以下是些主要的應用領域: ? 1.?工業自動化領域: -?生產流程監控:在石油、化工、制藥、食品加工等行業,用于監測各種氣體、液體和固體在生產過程中的壓力,確保生產的安全
    的頭像 發表于 11-18 10:01 ?295次閱讀

    簡述晶振的等級劃分

    今天與大家一起談談炬烜科技晶振的等級劃分,方便您進行產品選型。讓我們一起進入今天的炬烜知識會
    的頭像 發表于 09-06 11:17 ?427次閱讀

    選2088還是3051?一起來說說TA們的不同~

    作為工業實踐中最常用的現場儀表,變送器被廣泛應用于各種工業自控環境,涉及水利水電、鐵路交通、智能建筑、生產自控、航空航天、石化、油井、電力、船舶、機床、管道等眾多行業。今天我們一起來看看「2088壓力變送器」、「3051差壓變送器」這兩款變送器有啥區別?
    的頭像 發表于 09-02 10:40 ?628次閱讀
    選2088還是3051?<b class='flag-5'>一起來</b>說說TA們的不同~

    數字地跟模擬地能不能接一起,數字地跟模擬地的區別

    數字地和模擬地在些情況可以接在一起,但在另外些情況需要分開處理。這主要取決于具體的應用場景和設計要求。
    的頭像 發表于 06-10 16:31 ?3090次閱讀

    是否有可能讓個ADC內核先對所有通道進行采樣,然后再一起轉換結果?

    我有個關于 ADC 的問題,我們需要盡可能同時測量多個 ADC 通道,但我們的 ADC 內核有限,是否有可能讓個 ADC
    發表于 05-21 08:28

    一起來揭開電路板是什么材料組成的

    PCB電路板是種用于支持和連接電子元件的基板。不知道大家是否研究過電路板是什么材料組成的呢?今天就讓捷多邦小編為您揭曉 PCB電路板通常是薄片狀材料,上面覆蓋有導體,通過印刷或蝕刻方式形成電氣
    的頭像 發表于 05-07 17:37 ?2607次閱讀

    六類網線可以和強電一起走嗎

    六類網線理論上不建議和強電一起走。從布線規范的角度來看,弱電線路和強電線路通常不建議共用同橋架,以避免潛在的電磁干擾。然而,多年的施工經驗表明,在某些情況,強電線和弱電網線可能一起
    的頭像 發表于 04-19 09:55 ?5768次閱讀

    #新開端、新起點,2024一起加油#

    ;2024一起加油\"則表達了大家共同努力,相互支持的決心和信念。 在2024年,無論你的目標是什么,都希望你能保持這種積極的心態,勇敢地面對挑戰,不斷地學習和進步。同時,也希望大家能夠相互鼓勵,共同前進,一起創造更美好的未來。 所以,
    發表于 02-26 21:01

    Intel N5100和Z8350的三防平板電腦性能差異有多大|億道三防onerugged

    大家好!今天我要和大家一起來了解一下三防平板電腦中兩款常見的CPU處理器——Intel N5100和Z8350的性能差異。作為市面上常見的處理器,它們在性能方面有何不同?讓我們一起來
    的頭像 發表于 02-25 16:24 ?1891次閱讀

    ESD二極管是什么?如何選擇合適電容值的ESD二級管?

    作為名關注通信接口和電子元器件的專業人士,你定對ESD(Electrostatic Discharge)二極管非常感興趣。讓我們一起來了解一下
    的頭像 發表于 02-21 17:06 ?2740次閱讀
    ESD二極管是什么?如何選擇合適電容值的ESD二級管?

    作為導線,銅線和鋁線有何區別?可以接在一起嗎?

    ,并討論它們可以否接在一起的問題。 首先,讓我們探討銅線和鋁線的性能差異。銅線是種有良好導電性能的材料,它的電導率高達58.1 MS/m(國際常用單位),相對電阻率為0.0278
    的頭像 發表于 02-18 13:52 ?6442次閱讀

    工程機械設備通訊如何選?碩博電子CAN控制器 以太網控制器

    在工程機械設備的通訊世界中,有四種主流的通訊方式各領風騷。它們各有特色,適用于不同的場景和需求。讓我們一起來深入了解它們,看看如何為自己的設備選擇最合適的通訊方式!
    的頭像 發表于 02-06 10:40 ?1439次閱讀
    工程機械設備通訊如何選?碩博電子CAN控制器 以太網控制器

    鴻蒙使用的是內核?

    我們常說,看個系統是不是自研,就看它的內核,常見的內核分為:宏內核
    的頭像 發表于 01-30 16:43 ?496次閱讀
    鴻蒙使用的是<b class='flag-5'>微</b><b class='flag-5'>內核</b>?

    基于必易產品的智能電表解決方案

    隨著科技的不斷發展,智能家居產品越來越受到人們的喜愛。今天,就讓我們一起來了解一下智能電表如何讓我們的生活變得更加節能、更加便捷!
    的頭像 發表于 01-26 09:51 ?1040次閱讀
    基于必易<b class='flag-5'>微</b>產品的智能電表解決方案
    主站蜘蛛池模板: 三级黄色在线看| 久久sese| 亚洲欧洲日产国码中学| 美女伊人网| 国产精品人妻在线观看| 91国在线啪精品一区| 亚洲国产夜色在线观看| 日本电影小姐| 美国特级成人毛片| 和尚扒开双腿蹂躏| 国产爱豆果冻传媒在线观看| 97在线视频免费播放| 亚洲视频精品在线观看| 天天操天天干天天爽| 欧美性暴力变态xxxx| 久久婷五月综合色啪网| 国产专区青青在线视频| 国产ts调教| 阿力gv资源| 99久久精品国产亚洲AV| 伊人狠狠丁香婷婷综合尤物| 亚州综人网| 我与恶魔的h生活ova| 日本学生VIDEOVIDEOS更新| 麻豆沈芯语| 久久re视频这里精品09免费| 国产片MV在线观看| 国产成人久久AV免费看澳门| 超级最爽的乱淫片免费| 99re2.久久热最新地址| 中文字幕无码他人妻味| 亚洲一区成人| 亚洲 欧美 视频 手机在线| 日本亚洲欧洲免费旡码| 强姧伦久久久久久久久| 免费韩国伦理2017最新| 老人洗澡自拍xxx互摸| 狠狠色狠狠色综合日日91app| 国产精品爽爽久久久久久蜜桃| 动漫美女和男人下载| 粉嫩AV国产一区二区福利姬|