linux有5大模組:1.進程調度模組,主要是對進程用的處理機進行管理與控制;2、進程間通訊模組,主要用於控制不同進程間在用戶空間的同步、資料共享與交換;3、記憶體管理模組,採用先進的虛擬儲存機制,實現多進程的儲存管理;4、檔案系統模組等。
本教學操作環境:linux5.9.8系統、Dell G3電腦。
Linux 核心包含有五大子模組:進程調度模組、進程間通訊模組、記憶體管理模組、檔案系統模組、網路介面模組。
一、進程調度模組
Linux以進程作為系統資源分配的基本單位,並採用動態優先權的進程高階演算法,確保各個行程使用處理機的合理性。進程調度模組主要是對進程使用的處理機進行管理和控制。
【程式創建】:
在Linux環境程式設計時,一般採用fork()/vfork()函數(fork 是建立一個子進程,並把父進程的記憶體資料copy到子進程中;vfork是創建一個子進程,並和父進程的記憶體資料share一起用)來創建新的進程,當然,那是在用戶空間的函數,它會調用內核中的clone()系統調用,由clone()函數繼續調用do_fork()完成進程的創建。
fork()/vfork()/_clone--->clone()--->do_fork()--->copy_process()
【進程撤銷】:
進程終止後,需要通知核心以便核心釋放進程所擁有的資源,包括記憶體、開啟檔案以及其他資源,如信號量。進程終止的一般方式是調用exit()庫函數,該函數釋放C函數庫所分配的資源,執行編程者所註冊的每個函數,並結束從系統回收進程的那個系統調用。
【進程切換】:
進程切換又稱為任務切換、上下文切換
# 進程切換又稱為任務切換、上下文切換
切換核心態堆疊和硬體上下文,因為硬體上下文提供了核心執行新進程所需的所有信息,包括CPU暫存器,主要有switch_to()函數完成。
【進程調度】: 現代的Linux中,調度演算法可以在固定時間內(與可運行進程數量無關)選中要運行的進程。首先,我們必須知道進程可以分為即時進程與普通進程。每個LInux進程總是依照以下的調度類型被調度:
先進先出的即時進程、時間片輪換的即時進程、普通的分時進程二、進程間通訊模組 # 進程間通訊主要用於控制不同進程之間在用戶空間的同步、資料共享和交換。由於不同的使用者進程擁有不同的進程空間,因此進程間的通訊要藉助核心的中轉來實現。一般情況下,當一個行程等待硬體操作完成時,會被掛起。當硬體操作完成,進程被恢復執行,而協調這個過程的就是進程間的通訊機制
進程間通訊模組保證了Linux支援多種進程間通訊機制,包括管道、命名管道、訊息佇列、信號量和共享記憶體等。
三、記憶體管理模組# Linux的記憶體管理模組採用先進的
機制,實現對多進程的儲存管理。它提供了十分可靠的儲存保護措施,對進程賦予不同的權限,使用者不能直接存取系統的程式和數據,確保了系統的安全性。同時,為每個使用者進程分配一個相互獨立的虛擬位址空間。
四、檔案系統模組# Linux 的檔案系統模組採用先進的###虛擬檔案系統(VFS)技術###,屏蔽了各種檔案系統的差別,為處理各種不同的檔案系統提供了統一的接口,支援多種不同的實體檔案系統達90多種。同時,Linux把各種硬體設備看作一種特殊的文件來處理,用管理文件的方法管理設備,非常方便、有效。 ###
五、網路介面模組
Linux具有最強大的網路功能。網路介面模組透過套接字(Socket)機制實現電腦之間的網路通信,並採用網路層次模型提供多種網路協定和網路硬體設備的支援。
網路介面提供了對各種網路標準的實現和各種網路硬體的支援。網路介面一般分為網路協定和網路驅動程式。網路協定部分負責實現每一種可能的網路傳輸協定。網路設備驅動程式則主要負責與硬體設備進行通信,每種可能的網路硬體設備都有相應的設備驅動程式
相關推薦:《Linux視訊教學》
以上是linux有哪些模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!