內核指的是一個提供硬件抽象層、磁盤及文件系統控制、多任務等功能的系統軟件。內核是一個操做系統的核心,是操做系統最基本的部分。它負責管理系統的進程、內存、設備驅動程序、文件和網絡系統等,決定着系統的性能和穩定性。它是爲衆多應用程序提供對計算機硬件的安全訪問的一部分軟件,這種訪問是有限的,而且內核決定一個程序在何時對某部分硬件操做多長時間。直接對硬件操做是很是複雜的,因此內核一般提供一種硬件抽象的方法來完成這些操做。硬件抽象隱藏了複雜性,爲應用軟件和硬件提供了一套簡潔,統一的接口,使程序設計更爲簡單。 一個內核不是一套完整的操做系統。好比一套基於Linux內核的完整操做系統叫做Linux操做系統,或是GNU/Linux。
進程管理:內核負責建立和銷燬進程, 並處理它們與外部世界的聯繫(輸入和輸出),不一樣進程間通信(經過信號,管道,或者進程間通信原語)對整個系統功能來講是基本的,也由內核處理。 另外, 調度器, 控制進程如何共享CPU,是進程管理的一部分。更一般地,內核的進程管理活動實現了多個進程在一個單個或者幾個CPU 之上的抽象。 內存管理:計算機的內存是主要的資源, 處理它所用的策略對系統性能是相當重要的。內核爲全部進程的每個都在有限的可用資源上創建了一個虛擬地址空間。內核的不一樣部分與內存管理子系統經過一套函數調用交互,從簡單的malloc/free對到更多更復雜的功能。 文件管理:Linux 在很大程度上基於文件系統的概念;幾乎Linux中的任何東西均可看做一個文件。內核在非結構化的硬件之上創建了一個結構化的文件系統,結果是文件的抽象很是多地在整個系統中應用。另外,Linux 支持多個文件系統類型,就是說,物理介質上不一樣的數據組織方式。例如,磁盤可被格式化成標準Linux的ext3文件系統,廣泛使用的FAT文件系統,或者其餘幾個文件系統。 驅動管理:幾乎每一個系統操做終都映射到一個物理設備上,除了處理器,內存和很是少的別的實體以外,所有中的任何設備控制操做都由特定於要尋址的設備相關的代碼來進行。這些代碼稱爲設備驅動。內核中必須嵌入系統中出現的每一個外設的驅動,從硬盤驅動到鍵盤和磁帶驅動器。 網絡管理:網絡必須由操做系統來管理,由於大部分網絡操做不是特定於某一個進程: 進入系統的報文是異步事件。報文在某一個進程接手以前必須被收集,識別,分發,系統負責在程序和網絡接口之間遞送數據報文,它必須根據程序的網絡活動來控制程序的執行。另外,全部的路由和地址解析問題都在內核中實現。
做者:xm11211
連接:https://www.jianshu.com/p/fb744f37e364
來源:簡書安全