更新時間:2020-12-16 17:40:40 來源:動力節點 瀏覽1708次
Linux實際上是一種開源電腦操作系統內核。一個計算機系統是一個硬件和軟件的共生體,它們互相依賴,不可分割,而計算機的硬件在沒有軟件來操作和控制的情況下是無法工作的,完成這個控制工作的軟件就稱為操作系統,在Linux的術語中被稱為“內核”,也可以稱為“核心”。根據內核的核心功能,分為5個Linux 內核子系統,分別為:系統調用、進程管理、內存管理、文件系統、網絡管理,如下圖示:
1. 系統調用(System Call Interface)
系統調用接口。進程調度子系統通過系統調用接口,將需要提供給用戶空間的接口開放出去,同時屏蔽掉不需要用戶空間程序關心的細節。
SCI 層提供了某些機制執行從用戶空間到內核的函數調用。正如前面討論的一樣,這個接口依賴于體系結構,甚至在相同的處理器家族內也是如此。SCI 實際上是一個非常有用的函數調用多路復用和多路分解服務。在 ./linux/kernel 中您可以找到 SCI 的實現,并在 ./linux/arch 中找到依賴于體系結構的部分。
2. 進程管理(Process Management)
用戶空間有那么多進程,如何讓他們有條不紊地進行著正是進程管理所要做的事。每個進程都要使用到 CPU 資源(如 CPU ,內存),但 CPU 資源畢竟有限,不可能讓某個進程一進獨占著資源。
因此,進程管理就充當著管理員的角色,它調度著所有的進程,當需要選擇下一進程運行時,會由調度算法來選擇最需要運行的進程。如果某個進程在等待其它硬件資源,則它就會被掛起。
因此,通過一系列的調度算法,內核盡可能地公平地讓各個進程使用到 CPU 資源。
3. 內存管理(Memory Management)
內存管理主要提供對內存資源的訪問控制,以便讓各個進程可以安全地共享機器的內存資源。它提供了物理內存與虛擬內存的一種映射關系,因而不同的進程可以使用相同的虛擬內存,而這些相同的虛擬內存,可以映射到不同的物理內存上。這個映射關系主要由 MMU 來完成。
另外,內存管理會提供虛擬內存的機制,該機制可以讓進程使用多于系統可用的內存,不用的內存會通過文件系統保存在外部非易失存儲器中,需要使用的時候,再取回到內存中。
為了支持多個用戶使用內存,有時會出現可用內存被消耗光的情況。由于這個原因,頁面可以移出內存并放入磁盤中。這個過程稱為交換,因為頁面會被從內存交換到硬盤上。內存管理的源代碼可以在 ./linux/mm 中找到。
4. 虛擬文件系統(Virtual File System)
內核隱藏了不同功能的外部設備,例如硬盤、輸入輸出設備、顯示設備等等的具體細節,將它們抽象為可以通過統一的文件操作接口(open、close、read、write等)來訪問,也就是我們所熟知的「一切皆文件」。
隨著計算機技術的發展,歷史上出現了多種文件系統,比如:FAT、FAT32、NTFS、EXT2、EXT3 等等。為了兼容這些文件系統,內核將它們抽象為統一的表現形式,這就是虛擬文件系統的概念。
虛擬文件系統可分為邏輯文件系統和設備驅動程序。邏輯文件系統指 Linux 所支持的文件系統,如ext2, fat等,設備驅動程序指為每一種硬件控制器所編寫的設備驅動程序模塊。
5. 網絡管理(Network Stack)
網絡子系統在 Linux 內核中主要負責管理各種網絡設備,并實現各種網絡協議棧,最終實現通過網絡連接其它系統的功能。
網絡接口提供了對各種網絡標準協議的存取和各種網絡硬件的支持。網絡接口可分為網絡協議和網絡驅動程序兩部分。網絡協議部分負責實現每一種可能的網絡傳輸協議,網絡設備驅動程序負責與硬件設備進行通信,每一種可能的硬件設備都有相應的設備驅動程序。
以上就是對 Linux 內核子系統的簡單介紹,Linux內核結構各個模塊的功能都與此息息相關。我們只有通過不斷的實踐,真正弄懂Linux系統的運行原理和結構,才能學有所成。在本站的Linux教程中,有著對Linux系統的全面講解,想要學好Linux的小伙伴不要錯過!
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習