女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

鴻蒙系統設計:宏內核vs微內核的基礎邏輯

鴻蒙系統HarmonyOS ? 來源:CSDN博主 ? 作者:beyondma ? 2021-03-23 15:01 ? 次閱讀

鴻蒙OS宣布開源的時候,各種空洞的炒作,幾乎把國產操作系統的技術本質掩蓋了,雖然筆者沒親眼見過鴻蒙的代碼,也沒用方舟成功編譯什么程序,不過當華為官宣鴻蒙將使用微內核的時候其實這款OS的風格就已經確定了,因為這就是內核的價值和意義。

記得十幾年前筆者剛剛畢業,初次進入嵌入式開發的圈子,那時總感覺操作系統距離我很遠,甚至有些高不可攀。當時看到CSDN論壇上各種有關WINCE、MINIGUI等嵌入式OS的發貼時,那些生硬的代碼真是給我當時還年輕的心靈留下了巨大的陰影,不過這十年來雖然工作和嵌入式漸行漸遠,但是不斷總結經驗回頭來看,感覺操作內核的設計并不是一個純數學或者技術的建模過程,甚至還反應了我們日常生活中的很多道理。

科技界有一句名言“如果你無法簡潔的表達你的想法,那只說明你還不夠了解它”,所以經過了這些年的沉淀,筆者嘗試使用最通俗的語言來向大家解釋,什么是內核、什么又是微內核,閱讀本文不需要讀者具備什么操作系統的知識。

宏內核vs微內核的基礎邏輯

上世紀90年代,微內核操作Minix的作者Tanenbaum與微內核操作系統Linux的作者Linus,曾經有一段非常著名的論戰,(具體鏈接: https://www.oreilly.com/openbook/opensources/book/appa.html),這里筆者無意全文翻譯,只是想說即便是Linus這樣的大神級人物也難免會陷入誰優誰劣的口水仗之中,而普通人士可能更難免俗,所以我們先擱置優劣的爭議,先直觀來感受宏內核與微內核的架構圖是什么樣子的。

圖1. 宏內核架構圖

圖1. 微內核架構圖

簡單的講宏內核就是操作系統是個大管家,幾乎包辦一切,用戶應用程序的需求直接向內核提出就行;微內核更向一個代理人,幾乎所有的驅動、文件系統全部運行在與用戶應用程序平級的用戶模式下。

內核類型的簡單類比

為了讓讀者理解起來更方便,接下來讓我們做一個比較簡單的類比,如果把操作系統看成一家公司,而宏內核的特點是用戶請求直達內核,內核統一安排執行,這代表此公司使用扁平化的管理架構,而微內核的操作系統中則需要設立很多如驅動,文件系統等部門,這顯示公司使用制度化、等級化的管理架構。

簡而之宏內核代表的是層次簡單的扁平化管理風格,微內核則代表多部門的制度化管理風格。

基礎概念釋義

上下文及上下文切換:這個名詞經常出現在各類操作系統的書籍當中,還是以公司為例,上下文就代表了處理一個項目所需要的相關材料、文件,而上下文切換則代表這些材料文件在不同部門(進程)或者領導(CPU)之間的流轉。

狀態保持(快照)及恢復:假設這樣一種場景,我正在領導的辦公室中匯報工作,此時外面另一個人有更重要的事情向領導匯報,由于涉及權限問題需要我先退出他的辦公室,那么我在退出前需要做一次狀態快照,以便領導處理完緊急事務后可以繼續處理我的工作。這就是計算機中狀態保持與恢復的過程。

基本推論

運行效率宏內核更優:相信大家都有過跑部門跑公章的經歷,很多時間、精力都浪費在了部門(進程)之間的上下文切換(上文已經釋義)中了,微內核在效率方面肯定是處于劣勢的,所以目前的主流操作系統如Linux和Windows本質上使用的都是宏內核,當然有讀者可能會提出Windows使用的是混合內核,不過這種混合內核也是以效率優先的扁平化架構,本質上還是宏內核。

宏內核vs微內核 誰更安全

有關安全性的比較,其實僅憑直覺就能得到正確結論。正如各位日常所見,正規軍隊采用的都是“下級服從上級、命令絕對執行”的管理方式,而只有游擊隊才搞會扁平化管理的。其中邏輯也不難理解,扁平化雖然能有比較高的效率,但是難免會在身份鑒別、數據傳遞的過程中出現紕漏,從而給入侵者可稱之機。

而目前已有部分宏內核如sel4(Github地址:https://github.com/seL4/seL4)已經被形式化證明無誤(論文地址:http://ts.data61.csiro.au/publications/nicta_full_text/955.pdf),

對于sel4的形式化證明筆者在這里多聊幾句,從本質上來說sel4的內核代碼只有1萬行左右,而linux的內核代碼已經突破了2000萬行,所以微內核的sel4由于其代碼數量較小,所以研究人員干脆將其內核抽象成一個有限狀態機,進而證明在狀態遷移與躍遷的過程中都不會發生會被惡意利用的漏洞,從而保證整個體系的安全。當然這個安全也有前提:

一、不有有內鬼:即生成內核的編譯器、鏈接器與操作運行的硬件環境如DMA等設備不能被提前惡意植入后門。

二、不能有密碼泄露:形式化驗證只能保證制度體系本身不出問題,如果用戶將自身密碼泄露那系統是無法防范的。

不過我們也知道宏內核的操作系統尤其是Windows,經常會暴出安全漏洞,用戶在沒有泄露密碼且沒使用問題硬件的情況下,還是會遭到被黑客入侵。所以在安全性對比上微內核可謂優勢明顯。

宏內核vs微內核 誰實時性強

這個問題的答案可能與讀者的第一反應不同,效率更優的宏內核在實時性方面的表現其實不如微內核。那些對于實時性要求極高的軍用操作系統(如vxWorks等)使用的都是微內核架構。

請想象這樣一個場景,假如我是公司的銷售部負責人,正在向總經理匯報明年的銷售計劃,這時總經理狀態一般辦公室屏蔽來訪,手機屏蔽來電,專門處理我的匯報,恰在此時讀者做為戰略部負責人帶著阿里即將收購公司的消息,來到總經理辦公室門口,請求匯報。假設此時有關阿里收購匯報的優先級是高于其它所有工作的優先級,所以總經理會把我匯報的內容做一下狀態保持(快照),盡快安排戰略部負責人進來匯報。

由于宏內核的扁平化架構,幾乎所有請求都是直達總經理的,所以總經理對于來訪及來電的屏蔽時間就會變得不可控,而反觀微內核此時多部門的制度化架構優勢開始顯現,因為總經理一般只要核對一下其它部門的處理過程是否合規,然后簽名即可,因此微內核的最長屏蔽時間是可預期的。

So當我們在向下思考一層就會發現,制度化、流程化的微信核更能保證決策層在最短時間內就給最重要的任務予以響應。

宏內核vs微內核 誰更適合多核處理器

其實目前微內核的回歸正好說明了微內核與多處理器的硬件平臺配合會更好。請想象這樣的場景,假如我是一家餐廳的外賣小哥,我向內核發送了回單位取餐的請求,這是內核會把這個請求拆解為兩個,一是我到達單位,狀態改為空閑的通知,二是幫我準備指定的菜品,如果這家餐廳規模很小只有一個總經理當然沒有任何問題,不過如果餐廳有兩個決策人(雙核),那么我到達的通知可能先發給了總經理1,而為我準備菜品時總經理1(核心1)有其它任務了,所以需要總經理2(核心2)來安排協調了,這時就需要在總經理1和總經理2進行上下文切換才可以滿足我的需求了。而微內核在內核下面設計有部門(服務進程)的架構,就幾乎不存在宏內核在核心間調研上下文切換的問題。所以在總體來說,宏內核會在CPU核心間不斷進行上下文切換,而微內核則不斷在部門(進程)間進行上下文切換。

當然了宏內核針對多處理器時代也不是完全束手無策,比如Linux就提出了用戶協議棧的概念,其本質邏輯就是成立一個直屬某一總經理的特別行動小組,這一小組的所有任務全部在此總經理的領導下進行,從而避免跨總經理間的上下文切換以提高效率,其實這種方案也有一定局限性,比如出現單個總經理根本管不過來特別組的情況,該如何優化其實還是有待探索。

編輯:hfy

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

    關注

    0

    文章

    58

    瀏覽量

    13588
  • 鴻蒙系統
    +關注

    關注

    183

    文章

    2639

    瀏覽量

    67659
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    鴻蒙內核源碼Task/線程技術分析

    前言 在鴻蒙內核中,廣義上可理解為一個Task就是一個線程 一、怎么理解Task 1. 官方文檔是怎么描述線程 基本概念 從系統的角度看,線程是競爭系統資源的最小運行單元。線程可以使用
    的頭像 發表于 10-18 10:42 ?2449次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>內核</b>源碼Task/線程技術分析

    HarmonyOS學習之十:HarmonyOS內核技術

    系統是無法防范的。我們知道內核的操作系統尤其是Windows,經常會暴出安全漏洞,用戶在沒有泄露密碼且沒使用問題硬件的情況下,還是會遭到被黑客入侵。所以在安全性對比上
    發表于 11-30 13:55

    華為“鴻蒙”所涉及的內核到底是什么?

    最近內核的概念常常被大家提及,同時還有Google Fuchisa這樣的內核新星,這里讓我們一起來認識下
    的頭像 發表于 06-28 11:55 ?3535次閱讀
    華為“<b class='flag-5'>鴻蒙</b>”所涉及的<b class='flag-5'>微</b><b class='flag-5'>內核</b>到底是什么?

    什么是內核_內核的發展歷史

    內核設計的基本思想是簡化內核功能,在內核之外的用戶態盡可能多地實現系統服務,同時加入相互之間的安全保護。
    的頭像 發表于 08-14 17:20 ?1.3w次閱讀
    什么是<b class='flag-5'>微</b><b class='flag-5'>內核</b>_<b class='flag-5'>微</b><b class='flag-5'>內核</b>的發展歷史

    淺談鴻蒙操作系統內核

    華為在松山湖的華為開發者大會上正式宣布了鴻蒙操作系統,該系統其中一個亮點是 內核。華為聲稱,
    的頭像 發表于 10-13 12:36 ?6491次閱讀

    鴻蒙系統是基于安卓嗎

    有網友詢問鴻蒙系統是基于安卓嗎?答案:鴻蒙系統并不是基于安卓! 安卓與鴻蒙手機操作系統都是基于L
    的頭像 發表于 06-18 16:17 ?3.2w次閱讀

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

    按照發布會的PPT來看,鴻蒙OS有三層架構,第一層是內核,第二層是基礎服務,第三層是程序框架。所謂的第二層基礎服務應該就是那些從內核態空間移到用戶態空間的基礎服務程序。當然,也可能部
    的頭像 發表于 03-23 14:51 ?4983次閱讀

    鴻蒙內核源碼分析:task是內核調度的單元

    系統的角度看,線程是競爭系統資源的最小運行單元。線程可以使用或等待CPU、使用內存空間等系統資源,并獨立于其它線程運行。 鴻蒙內核每個進
    發表于 11-23 15:51 ?22次下載
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>內核</b>源碼分析:task是<b class='flag-5'>內核</b>調度的單元

    鴻蒙內核源碼分析 :內核最重要結構體

    為何鴻蒙內核源碼分析系列開篇就說 LOS_DL_LIST ? 因為它在鴻蒙 LOS 內核中無處不在,在整個內核占了極大的比重,豪不夸張的說
    發表于 11-24 17:54 ?35次下載
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>內核</b>源碼分析 :<b class='flag-5'>內核</b>最重要結構體

    內核內核的比較與分析

    混合內核實質上也是內核,而外內核是一種比較極端的設計方法,目前還處于研究階段,所以我們就著重討論內核
    發表于 03-17 16:05 ?11次下載
    <b class='flag-5'>微</b><b class='flag-5'>內核</b>與<b class='flag-5'>宏</b><b class='flag-5'>內核</b>的比較與分析

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

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

    鴻蒙內核開發概述

    第一章 鴻蒙內核開發概述1.1 鴻蒙系統有哪些內容?鴻蒙系統,就相當于一套完整的PC軟件
    發表于 11-03 11:21 ?20次下載
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>內核</b>開發概述

    什么是內核、內核?

    操作系統和普通的大型應用程序項目類似,都涉及代碼組織方式的問題,但操作系統的獨特之處在于其核心部分必須運行在內核態,kernel model,所謂內核態嚴格講是指在該狀態下程序擁有對硬
    的頭像 發表于 02-17 14:32 ?2217次閱讀
    什么是<b class='flag-5'>宏</b><b class='flag-5'>內核</b>、<b class='flag-5'>微</b><b class='flag-5'>內核</b>?

    鴻蒙使用的是內核

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

    歡創播報 華為宣布鴻蒙內核已超越Linux內核

    1 華為宣布鴻蒙內核已超越Linux內核 ? 6月21日,在華為開發者大會上, HarmonyOS NEXT(鴻蒙NEXT)——真正獨立于安卓和iOS的
    的頭像 發表于 06-27 11:30 ?1142次閱讀