linux核心的子系統有5個:1、 進程調度控制系統(SCHED);2、記憶體管理系統(MM),主要作用是控制多個進程安全地共享主記憶體區域;3、虛擬檔案系統(VFS);4、網路介面(NET);5、進程間通訊(IPC)。
本教學操作環境:Ubuntu 16.04系統、Dell G3電腦。
核心:
在電腦科學中是一個用來管理軟體發出的資料I/O(輸入與輸出)要求的電腦程序,將這些要求轉譯為資料處理的指令並交由中央處理器(CPU)及電腦中其他電子組件處理,是現代作業系統中最基本的部分。它是為眾多應用程式提供對電腦硬體的安全存取的一部分軟體,這種存取是有限的,並由核心決定一個程式在什麼時候對某部分硬體操作多長時間。直接對硬體操作是非常複雜的。所以核心通常提供一種硬體抽象的方法,來完成這些操作。透過進程間通訊機制及系統調用,應用程式可間接控制所需的硬體資源(特別是處理器及IO設備)。
linux核心的子系統有哪些
Linux核心主要由進程調度(SCHED)、記憶體管理(MM)、虛擬檔案系統(VFS)、網路介面(NET)和進程間通訊(IPC)5個子系統組成,如下圖所示。
1、程式調度
程式調度控制系統中的多個進程對CPU的訪問,使得多個進程能在CPU中「微觀串行,宏觀並行」地執行。進程調度處於系統的中心位置,核心中其他的子系統都依賴它,因為每個子系統都需要掛起或恢復進程。
如下圖所示,Linux的進程在幾個狀態之間切換。
Linux進程狀態轉換
在裝置驅動程式設計中,當請求的資源無法滿足時,驅動一般會調度其他進程執行,並使本進程進入睡眠狀態,直到它所要求的資源被釋放,才會被喚醒而進入就緒狀態。睡眠分成可中斷的睡眠和不可中斷的睡眠,兩者的差異在於可中斷的睡眠在收到訊號的時候會醒。
完全處於TASK_UNINTERRUPTIBLE狀態的進程甚至都無法被“殺死”,所以Linux 2.6.26之後的內核也存在一種TASK_KILLABLE的狀態,它等於“TASK_WAKEKILL|TASK_UNINTERRUPTIBLE”,可以響應致命信號。
在Linux核心中,使用task_struct結構體(include/linux/sched.h)來描述進程,該結構體中包含描述該進程記憶體資源、檔案系統資源、檔案資源、tty資源、訊號處理等的指針。 Linux的執行緒採用輕量級進程模型來實現,在用戶空間透過pthread_create()API建立執行緒的時候,本質上核心只是建立了一個新的task_struct,並將新task_struct的所有資源指標都指向建立它的那個task_struct的資源指標。
絕大多數行程(以及行程中的多個執行緒)是由使用者空間的應用程式所建立的,當它們存在底層資源和硬體存取的需求時,會透過系統呼叫進入核心空間。有時候,在核心程式設計中,如果需要幾個並發執行的任務,可以啟動核心線程,這些線程沒有使用者空間。啟動核心執行緒的函式為:pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
##2、記憶體管理
# 記憶體管理的主要功能是控制多個進程安全地共享主記憶體區域。當CPU提供記憶體管理單元(MMU)時,Linux記憶體管理對於每個程序完成從虛擬記憶體到實體記憶體的轉換。 Linux 2.6引入了對無MMU CPU的支援。 如圖所示,一般而言,32位元處理器的Linux的每個進程享有4GB的記憶體空間,0~3GB屬於用戶空間,3~4GB屬於核心空間,核心空間對常規內存、I/O裝置記憶體以及高階記憶體有不同的處理方式。核心空間和使用者空間的具體界限是可以調整的,在核心配置選項Kernel Features→Memory split下,可以設定界限為2GB或3GB。
Linux進程位址空間
如上圖所示,Linux核心的記憶體管理整體較為龐大,包含底層的Buddy(夥伴)演算法,它用於管理每頁的佔用情況,內核空間的slab分配器以及用戶空間的C庫的二次管理。另外,核心也提供了頁快取的支持,用記憶體來快取磁碟,per backing device info flusher執行緒用來刷回髒的頁快取到磁碟。 Kswapd(交換程序)則是Linux中用於頁面回收(包括file-backed的頁和匿名頁)的核心線程,它採用最近最少使用(LRU)演算法進行記憶體回收。
3、虛擬檔案系統
# 如圖所示,
Linux虛擬檔案系統
Linux虛擬檔案系統隱藏了各種硬體的特定細節,為所有裝置提供了統一的介面。而且,它獨立於各個特定的檔案系統,是對各種檔案系統的抽象。它為上層的應用程式提供了統一的vfs_read()、vfs_write()等接口,並調用具體底層文件系統或設備驅動中實現的file_operations結構體的成員函數。
4、網路介面
網路介面提供了各種網路標準的存取和各種網路硬體的支援。如圖3.8所示,在Linux中網路介面可分為網路協定和網路驅動程序,網路協定部分負責實現每一種可能的網路傳輸協議,網路裝置驅動程式負責與硬體裝置通信,每一種可能的硬體設備都有對應的設備驅動程式。
Linux網路體系結構
Linux核心支援的協定堆疊種類較多,如Internet、UNIX、CAN、NFC、Bluetooth、WiMAX、IrDA等,上層的應用程式統一使用套接字介面。
5、進程間通訊
進程間通訊支援進程之間的通信,Linux支援進程間的多種通訊機制,包含信號量、共享記憶體、訊息佇列、管道、UNIX域套接字等,這些機制可協助多個進程、多資源的互斥存取、進程間的同步和訊息傳遞。在實際的Linux應用程式中,人們更趨向於使用UNIX域套接字,而不是System V IPC中的消息佇列等機制。 Android核心則新增了Binder進程間通訊方式。
Linux核心5個組成部分之間的依賴關係如下:
進程調度與記憶體管理之間的關係:這兩個子系統互相依賴。在多程式環境下,程式要運行,則必須為之建立進程,而創建進程的第一件事情,就是將程式和資料裝入記憶體。
進程間通訊與記憶體管理的關係:進程間通訊子系統要依賴記憶體管理支援共享記憶體通訊機制,這種機制允許兩個行程除了擁有自己的私有空間之外,還可以訪問共同的記憶體區域。
虛擬檔案系統與網路介面之間的關係:虛擬檔案系統利用網路介面支援網路檔案系統(NFS),也利用記憶體管理支援RAMDISK設備。
記憶體管理與虛擬檔案系統之間的關係:記憶體管理利用虛擬檔案系統支援交換,交換進程定期由調度程式調度,這也是記憶體管理依賴進程調度的原因。當一個進程存取的記憶體映射被換出時,記憶體管理向虛擬檔案系統發出請求,同時,掛起目前正在運行的進程。
除了這些依賴關係外,核心中的所有子系統還要依賴一些共同的資源。這些資源包括所有子系統都用到的API,如分配和釋放記憶體空間的函數、輸出警告或錯誤訊息的函數及系統提供的偵錯介面等。
相關推薦:《Linux影片教學》
以上是linux核心的子系統有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

使用Linux維護模式的時機和原因:1)系統啟動問題時,2)進行重大系統更新或升級時,3)執行文件系統維護時。維護模式提供安全、控制的環境,確保操作的安全性和效率,減少對用戶的影響,並增強系統的安全性。

Linux中不可或缺的命令包括:1.ls:列出目錄內容;2.cd:改變工作目錄;3.mkdir:創建新目錄;4.rm:刪除文件或目錄;5.cp:複製文件或目錄;6.mv:移動或重命名文件或目錄。這些命令通過與內核交互執行操作,幫助用戶高效管理文件和系統。

在Linux中,文件和目錄管理使用ls、cd、mkdir、rm、cp、mv命令,權限管理使用chmod、chown、chgrp命令。 1.文件和目錄管理命令如ls-l列出詳細信息,mkdir-p遞歸創建目錄。 2.權限管理命令如chmod755file設置文件權限,chownuserfile改變文件所有者,chgrpgroupfile改變文件所屬組。這些命令基於文件系統結構和用戶、組系統,通過系統調用和元數據實現操作和控制。

MaintenancemodeInuxisAspecialBootenvironmentforforcalsystemmaintenancetasks.itallowsadMinistratorStoperFormTaskSlikerSettingPassingPassingPasswords,RepairingFilesystems,andRecoveringFrombootFailuresFailuresFailuresInamInimAlenimalenimalenrenmentrent.ToEnterMainterMainterMaintErmaintErmaintEncemememodeBoode,Interlecttheboo

Linux的核心組件包括內核、文件系統、Shell、用戶空間與內核空間、設備驅動程序以及性能優化和最佳實踐。 1)內核是系統的核心,管理硬件、內存和進程。 2)文件系統組織數據,支持多種類型如ext4、Btrfs和XFS。 3)Shell是用戶與系統交互的命令中心,支持腳本編寫。 4)用戶空間與內核空間分離,確保系統穩定性。 5)設備驅動程序連接硬件與操作系統。 6)性能優化包括調整系統配置和遵循最佳實踐。

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

Linux的維護模式可以通過GRUB菜單進入,具體步驟為:1)在GRUB菜單中選擇內核並按'e'編輯,2)在'linux'行末添加'single'或'1',3)按Ctrl X啟動。維護模式提供了一個安全環境,適用於系統修復、重置密碼和系統升級等任務。

進入Linux恢復模式的步驟是:1.重啟系統並按特定鍵進入GRUB菜單;2.選擇帶有(recoverymode)的選項;3.在恢復模式菜單中選擇操作,如fsck或root。恢復模式允許你以單用戶模式啟動系統,進行文件系統檢查和修復、編輯配置文件等操作,幫助解決系統問題。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

記事本++7.3.1
好用且免費的程式碼編輯器

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器