五分鐘瞭解操做系統內核

這是 ZY 第 14 篇原創技術文章html

操做系統和內核

關於操做系統是這樣定義的: 操做系統(英語:Operating System,縮寫:OS)是管理計算機硬件與軟件資源的系統軟件,同時也是計算機系統的內核與基石。操做系統須要處理如管理與配置內存、決定系統資源供需的優先次序、控制輸入與輸出設備、操做網絡與管理文件系統等基本事務。操做系統也提供一個讓用戶與系統交互的操做界面。
對咱們來講,操做系統最直觀的感覺就是桌面系統,以及上層的應用程序,然後面的資源處理等等就是操做系統背後的黑盒瀏覽器

讀者朋友們如今閱讀個人這篇文章,是在瀏覽器,或者某個應用程序上進行的。而一個應用程序是要運行在特定的操做系統上的。操做系統,則是要運行在硬件上的。因此這三者關係如圖。
安全

os

再來看看內核的定義: 「內核」指的是一個提供硬件抽象層、磁盤及文件系統控制、多任務等功能的系統軟件。內核是操做系統最基本的部分。它是爲衆多應用程序提供對計算機硬件的安全訪問的一部分軟件,這種訪問是有限的,而且內核決定一個程序在何時對某部分硬件操做多長時間。直接對硬件操做是很是複雜的,因此內核一般提供一種硬件抽象的方法來完成這些操做。硬件抽象隱藏了複雜性,爲應用軟件和硬件提供了一套簡潔,統一的接口,使程序設計更爲簡單。網絡

簡單來講,內核是一個操做系統的核心。它負責管理系統的進程、內存、設備驅動程序、文件和網絡系統等等,決定着系統的性能和穩定性。是鏈接應用程序和硬件的橋樑。
內核就是操做系統背後黑盒的核心
函數

kernel

這時候咱們回過頭來看看操做系統和內核的定義,是否是有些明白了呢。性能

內核的分類

既然咱們知道了內核是什麼,接着來看看內核的分類,如今內核的主要分類有四類:
宏內核(單內核),微內核,混合內核,外內核。操作系統

什麼是宏內核

咱們上面說到,內核管理着操做系統的內存,文件,IO,網絡等等,每一個功能能夠看作一個模塊,在宏內核中,這些模塊都是集成在一塊兒的,運行在內核進程中,模塊之間的交互直接經過方法調用。 .net

monolithic

什麼是微內核

而在微內核中,內核只提供最核心的功能,好比任務調度,內存管理等等,其餘模塊被移出內核,運行在不一樣的進程中,這樣即便某一個模塊出現問題,只要重啓這個模塊的進程便可,不會影響到其餘模塊,穩定性大大增長。甚至能夠在系統運行過程當中替換現有模塊的實現。並且因爲模塊獨立的性質,能夠作到模塊的按需加載。可是模塊間的相互調用須要經過進程間通訊,通訊效率相對較低。 設計

microkernel

什麼是混合內核

咱們上面看了宏內核和微內核的實現,就會發現,二者各有千秋,也各有缺點,因此混合內核就是集中了二者的特色,讓微內核中的一些核心模塊運行在內核中,從而使內核效率更高一些。3d

什麼是外內核

外內核是把硬件暴露給應用程序,應用程序能夠直接訪問硬件,外內核對系統提供保護。目前還在研究階段。

宏內核 微內核對比

看了上述宏內核和微內核的實現,咱們能夠總結一下:宏內核最大的特色就是模塊集成在一塊兒,而微內核是模塊間分離。基於此點出發,對好比下:

宏內核 微內核
通訊效率 高(函數調用) 低(進程間通訊)
穩定性 低(模塊集成在一塊兒) 高(模塊間互不影響)
擴展性 低(模塊集成在一塊兒) 高(模塊間互不影響)
代碼量 多(須要實現全部模塊) 少(只須要實現核心功能)

當前主流操做系統內核

宏內核
Linux
Windows 9X 系列
MacOS 8.6 版本以前

微內核
Fuchsia
鴻蒙
Minix

混合內核
Windows XP
Windows 7
Mac OS X
XNU

外內核
Nemesis

參考資料

zh.wikipedia.org/wiki/操做系統
www.cnblogs.com/smwikipedia…
zh.wikipedia.org/wiki/內核
www.oschina.net/news/108946…

about
相關文章
相關標籤/搜索