更新時間:2020-12-16 17:30:05 來源:動力節點 瀏覽1682次
在Linux的術語中被稱為“內核”,也可以稱為“核心”的是控制計算機硬件進行各種工作的操作系統。Linux內核實現了很多重要的體系結構屬性,這離不開Linux內核的各個組成部分的分工協作,本文我們就來一一介紹Linux內核組成部分。
Linux內核組成部分主要分為以下7個部分:存儲管理、進程管理、定時器、進程間通信、虛擬文件系統,網絡接口以及設備驅動程序等。
1、內存管理
內存管理主要完成的是如何合理有效地管理整個系統的物理內存,同時快速響應內核各個子系統對內存分配的請求。Linux內存管理支持虛擬內存,而多余出的這部分內存就是通過磁盤申請得到的,平時系統只把當前運行的程序塊保留在內存中,其他程序塊則保留在磁盤中。在內存緊缺時,內存管理負責在磁盤和內存間交換程序塊。
2、進程管理
進程管理主要控制系統進程對CPU的訪問。當需要某個進程運行時,由進程調度器根據基于優先級的調度算法啟動新的進程。:Linux支持多任務運行,那么如何在一個單CPU上支持多任務呢?這個工作就是由進程調度管理來實現的。在系統運行時,每個進程都會分得一定的時間片,然后進程調度器根據時間片的不同,選擇每個進程依次運行,例如當某個進程的時間片用完后,調度器會選擇一個新的進程繼續運行。由于切換的時間和頻率都非常的快,由此用戶感覺是多個程序在同時運行,而實際上,CPU在同一時間內只有一個進程在運行,這一切都是進程調度管理的結果。
3、定時器
內核必須能夠測量時間以及不同時間點的時差,進程調度就會用到該功能。 jiffies是一個合適的時間坐標。名為jiffies_64和jiffies(分別是64位和32位)的全局變量,會按恒定的時間間隔遞增。每種計算機底層體系結構都提供了一些執行周期性操作的手段,通常的形式是定時器中斷計時的周期是可以動態改變的。在沒有或無需頻繁的周期性操作的情況下,周期性地產生定時器中斷是沒有意義的,這會阻止處理器降低耗電進入睡眠狀態。動態改變計時周期對于供電受限的系統是很有用的,例如筆記本電腦和嵌入式系統
4、進程間通信
進程間通信主要用于控制不同進程之間在用戶空間的同步、數據共享和交換。由于不用的用戶進程擁有不同的進程空間,因此進程間的通信要借助于內核的中轉來實現。一般情況下,當一個進程等待硬件操作完成時,會被掛起。當硬件操作完成,進程被恢復執行,而協調這個過程的就是進程間的通信機制。
5、虛擬文件系統
Linux內核中的虛擬文件系統用一個通用的文件模型表示了各種不同的文件系統,這個文件模型屏蔽了很多具體文件系統的差異,使Linux內核支持很多不同的文件系統,這個文件系統可以分為邏輯文件系統和設備驅動程序:邏輯文件系統指Linux所支持的文件系統,例如ext2、ext3和fat等;設備驅動程序指為每一種硬件控制器所編寫的設備驅動程序模塊。
6、網絡接口
網絡接口提供了對各種網絡標準的實現和各種網絡硬件的支持。網絡接口一般分為網絡協議和網絡驅動程序。網絡協議部分負責實現每一種可能的網絡傳輸協議。網絡設備驅動程序則主要負責與硬件設備進行通信,每一種可能的網絡硬件設備都有相應的設備驅動程序。
7、設備驅動程序
Device Drivers,設備驅動,用于控制所有的外部設備及控制器。由于存在大量不能相互兼容的硬件設備(特別是嵌入式產品),所以也有非常多的設備驅動。因此,Linux內核中將近一半的Source Code都是設備驅動,大多數的Linux底層工程師(特別是國內的企業)都是在編寫或者維護設備驅動,而無暇估計其它內容(它們恰恰是Linux內核的精髓所在)。
同時,Linux 還是一個動態內核,支持動態添加或刪除軟件組件,被稱為動態可加載內核模塊。Linux內核7個組成部分缺一不可,相輔相成,共同構建出了Linux內核這一功能強大的體系結構。本站的Linux教程中,對Linux內核的各種工作機制都有詳細的講解,花費少量時間就能徹底掌握。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習