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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

操作系統(tǒng)核心部分:什么是宏內(nèi)核、微內(nèi)核

strongerHuang ? 來源:碼農(nóng)的荒島求生 ? 作者:碼農(nóng)的荒島求生 ? 2022-05-27 09:05 ? 次閱讀

操作系統(tǒng)和普通的大型應(yīng)用程序項目類似,都涉及代碼組織方式的問題,但操作系統(tǒng)的獨特之處在于其核心部分必須運(yùn)行在內(nèi)核態(tài),kernel model,所謂內(nèi)核態(tài)嚴(yán)格講是指在該狀態(tài)下程序擁有對硬件(hardware)的所有控制權(quán),運(yùn)行在用戶態(tài)的程序做不到這一點。

有的同學(xué)可能會有疑問,操作系統(tǒng)(或者說內(nèi)核)不都是核心部分嗎?嚴(yán)格來講像進(jìn)程管理調(diào)度、內(nèi)存管理等就是核心部分,但像驅(qū)動等就不是那么核心了,那么這一部分也需要放在內(nèi)核態(tài)嗎?

圍繞這一劃分,出現(xiàn)了兩種操作系統(tǒng)的設(shè)計方式,關(guān)于這兩種設(shè)計方法的爭論就和復(fù)雜指令集(CISC)與精簡指令集(RISC)哪個更好一樣至今沒有非常明確的定論。

大一統(tǒng),全部運(yùn)行在內(nèi)核態(tài)

最簡單的劃分就是沒有劃分,我們可以把所有內(nèi)核代碼放在內(nèi)核態(tài),內(nèi)核中的任何代碼都擁有控制硬件的全部特權(quán),顯然這種設(shè)計方法非常簡單,因為操作系統(tǒng)設(shè)計者不用費(fèi)心去想哪一部分該放在內(nèi)核態(tài)。

由于全部內(nèi)核程序都運(yùn)行在內(nèi)核態(tài),編譯好的內(nèi)核程序就是一個單獨的二進(jìn)制可執(zhí)行文件,這時的操作系統(tǒng)運(yùn)行起來后就是一個大進(jìn)程,所有內(nèi)核代碼運(yùn)行在一個單獨的地址空間中,這和我們實現(xiàn)的稍微復(fù)雜的單進(jìn)程應(yīng)用程序類似,這種大一統(tǒng)的設(shè)計就是所謂的宏內(nèi)核,monolithic kernel,個人認(rèn)為叫“一體化內(nèi)核”更形象些。

af873040-dd55-11ec-ba43-dac502259ad0.png

這種組織方式和TCP/IP協(xié)議棧的分層實現(xiàn)有點類似。

現(xiàn)在內(nèi)核代碼已經(jīng)組織好了,畢竟內(nèi)核是為上層應(yīng)用提供服務(wù)的,那么上層應(yīng)用該怎樣調(diào)用內(nèi)核代碼呢?這就是系統(tǒng)調(diào)用的作用,system call。

af9a9e78-dd55-11ec-ba43-dac502259ad0.png

上層應(yīng)用程序通過系統(tǒng)調(diào)用與內(nèi)核進(jìn)行交互。

由于內(nèi)核代碼唯一同一個地址空間中,因此內(nèi)核中各部分的交互極為簡單,就是普通的函數(shù)調(diào)用,文件系統(tǒng)中的某塊cache可以非常容易的被虛擬內(nèi)存系統(tǒng)共享使用。

但宏內(nèi)核也是有缺點的,由于內(nèi)核代碼位于同一個地址空間,代碼趨于復(fù)雜化,復(fù)雜就容易出錯,但內(nèi)核和普通程序不同,一旦內(nèi)核中某一模塊出現(xiàn)bug將導(dǎo)致整個內(nèi)核崩潰,底層的內(nèi)核崩潰后上層的應(yīng)用程序就無法繼續(xù)正常推進(jìn),整個系統(tǒng)就下圖一樣。。crash

當(dāng)然也有人不在乎在這一點,Linus認(rèn)為內(nèi)核中有bug正常,有bug就找到它、修復(fù)它而不是用某種機(jī)制試圖忽略它,沒錯,C++中的異常就是試圖忽略bug的機(jī)制,這就是為什么很多公司的規(guī)范中禁止使用異常的原因。

總之,內(nèi)核崩潰后就必須重啟計算機(jī)。

保留核心,非必要不留在內(nèi)核

為減少內(nèi)核崩潰的風(fēng)險,一個簡單的辦法就是讓內(nèi)核盡量精簡,只保留核心部分運(yùn)行在內(nèi)核態(tài),其它代碼以用戶態(tài)進(jìn)程的形式運(yùn)行,就像這樣:

afe8222e-dd55-11ec-ba43-dac502259ad0.png

運(yùn)行在用戶態(tài)的操作系統(tǒng)程序被稱為server,像負(fù)責(zé)文件操作的File Server等,此時用戶進(jìn)程想要使用操作系統(tǒng)提供的服務(wù)的話就必須借助進(jìn)程間通信,inter-process communication,即IPC,借助內(nèi)核,消息從一個進(jìn)程發(fā)送到另一個進(jìn)程然后等待返回。

這樣,內(nèi)核只需要對上層應(yīng)用提供一些簡單的接口即可,像創(chuàng)建進(jìn)程、發(fā)送消息等,這種實現(xiàn)方式可以讓內(nèi)核盡可能簡單,因為大部分內(nèi)核程序都運(yùn)行在用戶態(tài),且運(yùn)行在不同的地址空間中,此時設(shè)備驅(qū)動中的bug不會影響到內(nèi)核,這種操作系統(tǒng)的實現(xiàn)方式就被稱為微內(nèi)核, micro kernel。

就像宏內(nèi)核那樣,微內(nèi)核也有自己的缺點,那就是性能。由于宏內(nèi)核的代碼都在同一個地址空間中,因此模塊間的交互可以非常簡單,簡單的函數(shù)調(diào)用即可,但模塊間交互對微內(nèi)核來說則可能涉及進(jìn)程間通信,看上圖,如果某個應(yīng)用程序需要請求使用File Server,這條鏈路涉及到:

請求:應(yīng)用程序 -> 內(nèi)核 -> File server返回:Filer server -> 內(nèi)核 -> 應(yīng)用程序

每一個"->"都涉及上下文切換,而這對宏內(nèi)核來說則簡單很多。

現(xiàn)實中是什么樣子?

現(xiàn)實的操作系統(tǒng)中兩種實現(xiàn)方式都很常見,Linux以及許多Unix就是典型的宏內(nèi)核,而Mac OS X 以及 Windows NT則一般認(rèn)為是微內(nèi)核,華為的鴻蒙Harmony OS則宣傳是微內(nèi)核。

有趣的是,對Linus創(chuàng)建Linux影響極大的MINIX操作系統(tǒng)也是微內(nèi)核,而Linux則是宏內(nèi)核,難怪MINIX的作者——也是操作系統(tǒng)這門課的教授說過,如果Linus是他的學(xué)生的話那么操作系統(tǒng)系統(tǒng)這門課的期末考試Linus可能很難通過,哈哈,因為MINX的作者認(rèn)為在Linux被創(chuàng)造出來的上世紀(jì)90年代竟然還有人以宏內(nèi)核的方式來編寫操作系統(tǒng),這簡直不可思議,而Linus則不以為意,并進(jìn)行了火爆的回?fù)簦P(guān)于這一段的八卦后續(xù)有機(jī)會和大家聊聊,非常有趣。

可以看到操作系統(tǒng)的設(shè)計方式就和CPU關(guān)于復(fù)雜指令集與精簡指令集的設(shè)計一樣分成了兩派,關(guān)于宏內(nèi)核與微內(nèi)核孰優(yōu)孰劣爭論至今依然沒有定論。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11456

    瀏覽量

    212726
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7077

    瀏覽量

    124913
  • 微內(nèi)核
    +關(guān)注

    關(guān)注

    0

    文章

    58

    瀏覽量

    13588

原文標(biāo)題:操作系統(tǒng)如何實現(xiàn):什么是宏內(nèi)核、微內(nèi)核

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    #操作系統(tǒng)原理 用戶線程和內(nèi)核線程

    內(nèi)核操作系統(tǒng)
    電子技術(shù)那些事兒
    發(fā)布于 :2022年10月17日 22:31:14

    內(nèi)核操作系統(tǒng)有什么好處?

    。可見Windows在內(nèi)核之上來說的確是一個很干練的系統(tǒng)。其實這是微軟的一貫作風(fēng),就算是目前我們使用的Win 7旗艦版其內(nèi)核也是十分短小精悍的。那么微內(nèi)核操作系統(tǒng)究竟是有什么好處呢?首
    發(fā)表于 01-11 13:11

    RTOS的實時內(nèi)核內(nèi)核解析

    使得CPU的利用更為有效。 需要指出的是,實時內(nèi)核并不等于實時操作系統(tǒng),實時內(nèi)核只是實時操作系統(tǒng)的一部分
    發(fā)表于 02-19 06:36

    HarmonyOS鴻蒙操作系統(tǒng)之什么是“基于內(nèi)核的全場景分布式操作系統(tǒng)”?

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

    嵌入式操作系統(tǒng)內(nèi)核研究

    嵌入式操作系統(tǒng)是嵌入式系統(tǒng)應(yīng)用的核心。而內(nèi)核完成操作系統(tǒng)核心的功能,本文通過對兩種嵌入式
    發(fā)表于 07-30 14:55 ?22次下載

    什么是操作系統(tǒng)內(nèi)核

    什么是操作系統(tǒng)內(nèi)核 操作系統(tǒng)內(nèi)核是指大多數(shù)操作系統(tǒng)核心部分。它由
    發(fā)表于 06-17 07:23 ?1w次閱讀

    RTX實時操作系統(tǒng)內(nèi)核演示

    本文檔詳細(xì)介紹了 RTX實時操作系統(tǒng)內(nèi)核演示教程
    發(fā)表于 08-25 15:52 ?9次下載

    為什么要選擇微內(nèi)核操作系統(tǒng)

    例如原來在內(nèi)核操作系統(tǒng)中,用戶應(yīng)用程序是通過系統(tǒng)調(diào)用,陷入到內(nèi)核中,然后再讀取、訪問文件。而在微內(nèi)核操
    的頭像 發(fā)表于 06-03 14:35 ?4357次閱讀

    高性能混合微內(nèi)核操作系統(tǒng)RT-Thread Smart達(dá)到業(yè)界領(lǐng)先的技術(shù)水準(zhǔn)

    通常來講操作系統(tǒng)分為內(nèi)核內(nèi)核兩種不同的架構(gòu),如下圖所示,操作系統(tǒng)中分為了用戶域和
    的頭像 發(fā)表于 09-11 15:33 ?3139次閱讀
    高性能混合微<b class='flag-5'>內(nèi)核操作系統(tǒng)</b>RT-Thread Smart達(dá)到業(yè)界領(lǐng)先的技術(shù)水準(zhǔn)

    淺談鴻蒙操作系統(tǒng)內(nèi)核

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

    內(nèi)核內(nèi)核的比較與分析

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

    安全關(guān)鍵的嵌入式實時操作系統(tǒng)內(nèi)核

    在硏究 ARINC-653標(biāo)準(zhǔn)的時空隔離原理基礎(chǔ)上,設(shè)計并實現(xiàn)一種安全關(guān)鍵的嵌入式實時操作系統(tǒng)。采用內(nèi)核設(shè)計,通過基于 Manifest的任務(wù)與分區(qū)管理、軟硬件結(jié)合的分區(qū)保護(hù)及軟件靜態(tài)驗證,提升
    發(fā)表于 06-21 16:23 ?5次下載

    什么是內(nèi)核內(nèi)核

    操作系統(tǒng)和普通的大型應(yīng)用程序項目類似,都涉及代碼組織方式的問題,但操作系統(tǒng)的獨特之處在于其核心部分必須運(yùn)行在內(nèi)核態(tài),kernel model,所謂內(nèi)
    的頭像 發(fā)表于 02-17 14:32 ?2230次閱讀
    什么是<b class='flag-5'>宏</b><b class='flag-5'>內(nèi)核</b>、<b class='flag-5'>微</b><b class='flag-5'>內(nèi)核</b>?

    Linux 是操作系統(tǒng)還是內(nèi)核

    內(nèi)核是每個操作系統(tǒng)的中心。這不僅僅是 Linux 的事情。Windows 和 macOS 也有內(nèi)核
    發(fā)表于 03-15 10:05 ?1322次閱讀

    內(nèi)核實時操作系統(tǒng)的介紹

    內(nèi)核實時操作系統(tǒng)(Microkernel Real-Time Operating System, μRTOS)是一種專為實時設(shè)計的操作系統(tǒng)。它采用
    的頭像 發(fā)表于 05-11 17:13 ?775次閱讀