標籤:系統工具 linux 檔案管理 程式 作業系統
作業系統和核心
作業系統是指在整個系統中負責完成準系統和系統管理的部分,這些部分包括核心、裝置驅動程式、啟動引導程式、命令列shell或其它種類的使用者介面、基本的檔案管理工具和系統工具。其中,使用者介面只是作業系統的外在表象,核心才是作業系統的內在核心。通常一個核心由負責響應中斷的中斷程式,負責管理多個進程從面分享處理器時間的發送器,負責管理進程地址空間的記憶體管理程式和網路、處理序間通訊等系統服務程式共同組成。對於提供保護機制的現代作業系統來說,核心獨立於普通應用程式,它一般處理系統態,擁有受保護的記憶體空間和訪問硬體裝置的所有許可權。這種系統態和被保護起來的記憶體空間,統稱為核心空間。相對的,應用程式在使用者空間執行。它們只能看到允許他們使用的部分系統資源,並且不能使用些某些特定的系統功能,不能直接存取硬體,還有其它一些使用限制。當核心啟動並執行時候,系統以核心態進入核心空間,相反,普通使用者程式以使用者態進入使用者空間。應用程式通過系統調用和核心通訊來運行。應用程式通過調用庫函數,再由庫函數通過系統調用介面讓核心代其完成各種不同任務。
核心負責管理系統的硬體裝置,當硬體裝置想和系統通訊的時候,它首先要發出一個非同步中斷訊號去打斷核心正在執行的工作。中斷通常對應著一個中斷號,核心通過這個中斷號尋找相應的中斷服務程式,並調用這個程式響應和處理中斷。
單核心與微核心
作業系統核心分為單核心和微核心兩種:
單核心就是把它從整體上作為一個單獨的大過程來實現,並同時運行在一個單獨的地址空間。這樣的核心通常以單個靜態二進位檔案的形式存放於磁碟。所有核心服務都在這樣的一個大核心空間中運行,核心之間的通訊是微不足道的,因為大家都在核心態,並處於同一個地址空間。
微核心的功能被劃分為獨立的過程,每個過程叫做一個伺服器。理想情況下,只有強烈請求特權服務的伺服器才運行在特權模式下,其它伺服器都運行在使用者空間。不過,所有的伺服器都保持獨立並運行在各自的地址空間,因為,不可能像單核心那樣直接調用函數,而是通過訊息傳遞處理微核心通訊:系統採用了處理序間通訊(IPC)機制,因此,各種伺服器之間通過IPC機制傳遞訊息,互換“服務”。伺服器的各自獨立有效地避免了一個伺服器的失效影響另一個。
linux是一個單核心,linux核心運行在單獨的核心地址空間,但linux汲取了微核心的精華,包括模組化設計、搶佔式核心、支援核心線程以及裝載核心模組的能力。不僅如此,linux還避其微核心設定上的效能損失缺陷,讓所有事情都運行在核心態,直接調用函數,無需訊息傳遞
linux核心簡介