五分钟了解操作系统内核
操作系統和內核
關于操作系統是這樣定義的: 操作系統(英語:Operating System,縮寫:OS)是管理計算機硬件與軟件資源的系統軟件,同時也是計算機系統的內核與基石。操作系統需要處理如管理與配置內存、決定系統資源供需的優先次序、控制輸入與輸出設備、操作網絡與管理文件系統等基本事務。操作系統也提供一個讓用戶與系統交互的操作界面。
對我們來說,操作系統最直觀的感受就是桌面系統,以及上層的應用程序,而后面的資源處理等等就是操作系統背后的黑盒。
讀者朋友們現在閱讀我的這篇文章,是在瀏覽器,或者某個應用程序上進行的。而一個應用程序是要運行在特定的操作系統上的。操作系統,則是要運行在硬件上的。所以這三者關系如圖。
再來看看內核的定義: “內核”指的是一個提供硬件抽象層、磁盤及文件系統控制、多任務等功能的系統軟件。內核是操作系統最基本的部分。它是為眾多應用程序提供對計算機硬件的安全訪問的一部分軟件,這種訪問是有限的,并且內核決定一個程序在什么時候對某部分硬件操作多長時間。直接對硬件操作是非常復雜的,所以內核通常提供一種硬件抽象的方法來完成這些操作。硬件抽象隱藏了復雜性,為應用軟件和硬件提供了一套簡潔,統一的接口,使程序設計更為簡單。
簡單來說,內核是一個操作系統的核心。它負責管理系統的進程、內存、設備驅動程序、文件和網絡系統等等,決定著系統的性能和穩定性。是連接應用程序和硬件的橋梁。
內核就是操作系統背后黑盒的核心。
這時候我們回過頭來看看操作系統和內核的定義,是不是有些明白了呢。
內核的分類
既然我們知道了內核是什么,接著來看看內核的分類,現在內核的主要分類有四類:
宏內核(單內核),微內核,混合內核,外內核。
什么是宏內核
我們上面說到,內核管理著操作系統的內存,文件,IO,網絡等等,每個功能可以看做一個模塊,在宏內核中,這些模塊都是集成在一起的,運行在內核進程中,模塊之間的交互直接通過方法調用。
什么是微內核
而在微內核中,內核只提供最核心的功能,比如任務調度,內存管理等等,其他模塊被移出內核,運行在不同的進程中,這樣即使某一個模塊出現問題,只要重啟這個模塊的進程即可,不會影響到其他模塊,穩定性大大增加。甚至可以在系統運行過程中替換現有模塊的實現。而且由于模塊獨立的性質,可以做到模塊的按需加載。但是模塊間的相互調用需要通過進程間通信,通信效率相對較低。
什么是混合內核
我們上面看了宏內核和微內核的實現,就會發現,兩者各有千秋,也各有缺點,所以混合內核就是集中了兩者的特點,讓微內核中的一些核心模塊運行在內核中,從而使內核效率更高一些。
什么是外內核
外內核是把硬件暴露給應用程序,應用程序可以直接訪問硬件,外內核對系統提供保護。目前還在研究階段。
宏內核 微內核對比
看了上述宏內核和微內核的實現,我們可以總結一下:宏內核最大的特點就是模塊集成在一起,而微內核是模塊間分離。基于此點出發,對比如下:
| 通信效率 | 高(函數調用) | 低(進程間通信) |
| 穩定性 | 低(模塊集成在一起) | 高(模塊間互不影響) |
| 擴展性 | 低(模塊集成在一起) | 高(模塊間互不影響) |
| 代碼量 | 多(需要實現所有模塊) | 少(只需要實現核心功能) |
當前主流操作系統內核
宏內核
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…
總結
以上是生活随笔為你收集整理的五分钟了解操作系统内核的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 魂2联机魂有什么等级
- 下一篇: windows局域网文件共享的使用