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

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

3天內不再提示

關于鴻蒙OS的微內核概念介紹

鴻蒙系統HarmonyOS ? 來源:CSDN博主 ? 作者:icolakele ? 2021-03-23 14:51 ? 次閱讀

按照發布會的PPT來看,鴻蒙OS有三層架構,第一層是微內核,第二層是基礎服務,第三層是程序框架。所謂的第二層基礎服務應該就是那些從內核態空間移到用戶態空間的基礎服務程序。當然,也可能部分還是運行的內核態,更像是混合內核。

當下的鴻蒙OS依然是基于開源框架,只是關鍵模塊自我研發,也就是說,和各大手機廠商使用Android開源系統實現各自的定制系統大概是一個意思。鴻蒙OS的愿景是2020年實現內核和應用框架自研,2021年實現軟硬件協同優化。這里的軟硬件協同優化,應該是要解決進程間通信(Inter-process communication, IPC)的性能問題,這個后面會詳細說一下。

關于鴻蒙OS不過多評價,時間是檢驗真理的唯一標準。接下來主要聊一聊微內核的概念。

微內核(Microkernel or μ-kernel),這個概念其實是相對于宏內核(Monolithic kernel)而言的。

宏內核與微內核對比圖

我們常說的Linux/UNIX就是基于宏內核的,內核提供了相當多的功能,包括驅動,調度器,地址空間管理,進程間通信,文件系統,虛擬文件系統,系統調用等,以Linux為例,其宏內核的代碼量高達2700萬行。

宏內核系統架構

而微內核僅提供調度器,地址空間管理以及進程間通信等最基礎的功能,MINIX 3的微內核僅1.2萬行代碼。

微內核架構

宏內核與微內核代碼量為什么會有這么大的區別呢?德國計算機科學家Jochen Liedtke提出的微內核最小化原則,簡單的講就是,宏內核所提供的所有功能,可以扔到用戶態實現的,就一律扔到用戶態,內核僅保留絕對必要的功能。這有點像奧卡姆剃刀原理,如非必須,勿增實體。也就是說,宏內核提供了大量的冗余功能,兼容了太多的硬件,代碼量自然就大。而微內核甚至把硬件的驅動程序從內核剝離出去,使其運行在用戶態。

早期的宏內核,其實很像我們今天所說的微內核。早期設備本身的內存空間有限,外設也極少,內核需要支持的特性也很有限。但是隨著硬件的飛速發展,內核需要支持更多的特性和更多的外設,宏內核架構的復雜性和代碼規模也就飛速增加起來了,內核程序間的耦合度也越來越大。當然,CPU速度的提升以及內存空間的增加,讓我們基本上可以無視內核對性能的消耗。但是5G時代,一個萬物互聯(Internet of Things, IoT)的時代,將有更多的小型智能設備接入互聯網,低功耗、低內存、安全性成為了新的要求,在這些設備上跑宏內核的系統絕對不是好的選擇,由此,微內核的熱度又起來了。

早在上個世紀八九十年代,微內核一度被炒的熱火朝天。但是一直因為性能問題而沒有得到廣泛應用。直到今天,微內核在學界的熱度也遠超工業界。每一次發展微內核,都大致經歷這樣的過程:把內核的某些功能剝離出內核,然后爆發性能問題,然后再把一部分功能移回到內核。這樣就出現了很多介于宏內核和微內核之間的內核形態,一般統稱為混合內核。我們常見的Mac OS、Windows NT等用的就是這種混合內核的架構。

混合內核

近幾年谷歌一直在研發Fuchsia系統,使用的Zircon內核,才算是真正意義上的微內核。

那么,微內核到底有什么優點呢?

分布式支持:微內核各模塊采用IPC傳遞信息,對于IPC而言,無論是在本機,還是局域網或者廣域網,只要賦予進程和設備唯一的標識符,微內核的設計幾乎是天然支持分布式系統的。

模塊化、低耦合:由于大部分服務程序被轉移到用戶態空間,系統就可以按需啟動這些服務,按需接入外設。用戶態的進程各自獨立,系統耦合度大大降低。

組件故障不會導致系統重啟,內核只需要重啟故障組件就可以恢復正常,系統穩定性可以大大提高。熟悉Linux內核編程的人都知道,內核代碼出問題,往往會導致整個系統崩潰。而用戶態程序不僅不會導致系統崩潰,而且易于調試。

微內核系統功能升級也更容易,由于宏內核的很多功能都是運行在內核,跟隨系統一起啟動。雖然可以使用補丁實現故障修復和功能升級,但是依然有很多問題無法通過補丁解決,還是要依賴版本更換和重啟整個系統。而微內核只需要替換相關組件,然后重啟組件即可。

內核代碼零缺陷:由于微內核代碼量極少,可以從數學角度進行形式化驗證,從而保證內核代碼完全沒有缺陷,也就是所謂的Bug free。但是這并不是說整個系統沒有缺陷,系統本身還包括用戶態的服務程序,說白了,只是把缺陷轉移到相對安全的用戶態罷了。

那為什么微內核直到今天也沒廣泛應用呢?

原因前面已經說了,微內核的低效率是硬傷。微內核依賴IPC實現通信,宏內核的IPC效率就很不盡人意,微內核則把IPC的低效率進一步放大了。相對而言,宏內核的文件系統,驅動等以線程的方式工作在內核空間,它們之間的通信可以都在內核完成,不需要上下文切換,可以直接訪問共享資源,甚至可以直接相互調用接口達到通信的目的。而微內核則需要通過IPC通信,觸發系統調用,內存拷貝(異步通信需要拷貝兩次),運行上下文切換,阻塞進程,這些操作開銷都很大。

Jochen Liedtke創造的L4 microkernel把IPC的系統開銷降低了一個數量級。如何實現呢?

首先,直接棄用異步IPC,所有通信均使用同步的方式。

然后把通信數據盡可能直接使用寄存器傳遞(這個涉及CPU指令集,有機會再細說),這樣可以減少數據拷貝、內存尋址、調度器切換運行上下文的開銷。

最后為了解決同步通信造成進程阻塞的問題,引入了進程直接切換的概念,即當有數據發送時,當發送端發完數據時,直接將上下文切換到接收進程,迅速完成數據傳遞和接收。

除此之外,微內核效率差的另一個原因則是每指令的存儲器周期比宏內核要長很多,這個就需要減少微內核的緩存工作集來解決問題了。

微內核效率差的原因除了IPC、指令存儲周期長外,還有一個觀念上的問題。華為鴻蒙OS的愿景是支持多終端,統一開發流程,也就是讓一個微內核支持所有的應用場景。而提高微內核效率的一個解決方案卻是,設計單一目的(Single-purpose)、專用的微內核。不知道華為鴻蒙OS是怎么解決這個問題的,還有點小期待呢。

編輯:hfy

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

    關注

    0

    文章

    56

    瀏覽量

    13383
  • 鴻蒙系統
    +關注

    關注

    183

    文章

    2622

    瀏覽量

    65412
收藏 人收藏

    評論

    相關推薦

    華為鴻蒙—時代的開啟者!

    `在開始之前先給大家介紹下華為鴻蒙吧,鴻蒙內核是基于內核
    發表于 09-03 11:19

    谷歌全新推出的Fuchsia OS,對鴻蒙有什么影響?

    訴訟。因此,谷歌加快研發Fuchsia OS,對于現在和未來,都有著重大的意義。谷歌全新推出的Fuchsia OS,則完全放棄了Linux內核,并且選擇基于Zircon核打造,同時采
    發表于 09-08 16:12

    關于鴻蒙os的開源程度。 開源到什么程度,是100%開源嗎?

    想了解下關于鴻蒙os的開源程度。 開源到什么程度,是100%開源嗎?
    發表于 09-22 11:15

    鴻蒙OS與Fuchsia OS的異同

    `最近行業內最熱門的,可能就是這個華為鴻蒙OS的第一次正式亮相了。作為知乎上Fuchsia OS的答主,自然也收到了大量的關于比較兩個操作系統,或是評價
    發表于 09-23 11:42

    HarmonyOS鴻蒙操作系統之什么是“基于內核的全場景分布式操作系統”?

    HarmonyOS鴻蒙操作系統之什么是“基于內核的全場景分布式操作系統”?即使作為理工科的人咋一眼看上去似乎也不太懂這是什么,就像區塊鏈這個概念剛出來一樣,普通人都是一臉懵B(當然現
    發表于 09-23 17:06

    鴻蒙OS適用的全場景到底什么意思?

    鴻蒙系統(HarmonyOS),第一款基于內核的全場景分布式OS,是華為自主研發的操作系統。華為在開發者大會HDC.2019上正式發布了鴻蒙
    發表于 09-25 09:25

    鴻蒙介紹

    這份資料主要是對鴻蒙概念的掃盲,這里介紹鴻蒙的應用場景和技術框架,同時也有1000+頁,非常詳細的入門手冊。這份資料具體的內容有:HarmonyOS快速入門手冊2.0通用設計基礎Ha
    發表于 11-24 10:49

    鴻蒙os系統是什么意思 鴻蒙os系統有什么作用

    大家都很熟悉華為,那么華為近年新研發出來的鴻蒙os系統是什么意思?下面與大家分享華為鴻蒙os系統是什么意思的教程。鴻蒙
    發表于 12-17 11:34

    鴻蒙OS優于安卓 未來將開源

    如約,在今天下午的HDC2019華為開發者大會上,余承東正式發布了鴻蒙操作系統——Harmony OS,基于微內核的全場景分布式OS。
    的頭像 發表于 08-09 17:30 ?2057次閱讀

    華為為什么會在東莞發布鴻蒙OS?你怎么看?

    今日(9日),華為在東莞正式發布鴻蒙OS,這是全球目前最早的、基于微內核的全場景分布式OS之一!
    的頭像 發表于 08-12 14:07 ?2709次閱讀

    鴻蒙OS系統詳解

    華為的鴻蒙OS是一款“面向未來”的操作系統,是基于微內核的全場景分布式OS,可按需擴展,實現更廣泛的系統安全。目前主要用于智能物聯網,今年將擴展到智能手機上
    的頭像 發表于 11-12 11:24 ?1.3w次閱讀

    鴻蒙OS千呼萬喚始出來

    從2019年在華為開發者大會上公布鴻蒙OS開始,圍繞著鴻蒙OS的話題始終沒有停止過,而華為也堅持不懈地為鴻蒙
    的頭像 發表于 06-01 15:56 ?2366次閱讀

    鴻蒙os怎么升級

    6月2日,華為正式發布了鴻蒙armonyOS 2系統,那么鴻蒙os如何升級?現將鴻蒙os升級方式告知如下。
    的頭像 發表于 06-08 16:26 ?2526次閱讀

    華為系統openharmony 鴻蒙內核的理解

    鴻蒙OS分布式操作系統是一款基于微內核的全場景分布式OS,是華為自主研發的操作系統。
    的頭像 發表于 06-23 10:48 ?3523次閱讀

    鴻蒙OS和開源鴻蒙什么關系?

    開源鴻蒙(Open Harmony) 鴻蒙系統愿來的設計初衷,就是讓所有設備都可以運行一個系統,但是每個設備的運算能力和功能都不同,所以內核的設計上,采用了微內核的設計,除了最基礎的功
    的頭像 發表于 01-30 15:44 ?563次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b>和開源<b class='flag-5'>鴻蒙</b>什么關系?
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>