linux內核簡介

操作系統和內核

      操作系統是指在整個系統中負責完成基本功能和系統管理的部分,這些部分包括內核設備驅動程序啓動引導程序命令行shell或其它種類的用戶界面基本的文件管理工具系統工具。其中,用戶界面只是操作系統的外在表象,內核纔是操作系統的內在覈心。通常一個內核由負責響應中斷的中斷程序,負責管理多個進程從面分享處理器時間的調度程序,負責管理進程地址空間的內存管理程序和網絡進程間通信等系統服務程序共同組成。對於提供保護機制的現代操作系統來說,內核獨立於普通應用程序,它一般處理系統態,擁有受保護的內存空間和訪問硬件設備的所有權限。這種系統態和被保護起來的內存空間,統稱爲內核空間。相對的,應用程序在用戶空間執行。它們只能看到允許他們使用的部分系統資源,並且不能使用些某些特定的系統功能,不能直接訪問硬件,還有其它一些使用限制。當內核運行的時候,系統以內核態進入內核空間,相反,普通用戶程序以用戶態進入用戶空間。應用程序通過系統調用和內核通信來運行。應用程序通過調用庫函數,再由庫函數通過系統調用界面讓內核代其完成各種不同任務。

      內核負責管理系統的硬件設備,當硬件設備想和系統通信的時候,它首先要發出一個異步中斷信號去打斷內核正在執行的工作。中斷通常對應着一箇中斷號,內核通過這個中斷號查找相應的中斷服務程序,並調用這個程序響應和處理中斷。

單內核與微內核

操作系統內核分爲單內核和微內核兩種:

      單內核就是把它從整體上作爲一個單獨的大過程來實現,並同時運行在一個單獨的地址空間。這樣的內核通常以單個靜態二進制文件的形式存放於磁盤。所有內核服務都在這樣的一個大內核空間中運行,內核之間的通信是微不足道的,因爲大家都在內核態,並處於同一個地址空間。

      微內核的功能被劃分爲獨立的過程,每個過程叫做一個服務器。理想情況下,只有強烈請求特權服務的服務器才運行在特權模式下,其它服務器都運行在用戶空間。不過,所有的服務器都保持獨立並運行在各自的地址空間,因爲,不可能像單內核那樣直接調用函數,而是通過消息傳遞處理微內核通信:系統採用了進程間通信(IPC)機制,因此,各種服務器之間通過IPC機制傳遞消息,互換“服務”。服務器的各自獨立有效地避免了一個服務器的失效影響另一個。

      linux是一個單內核,linux內核運行在單獨的內核地址空間,但linux汲取了微內核的精華,包括模塊化設計、搶佔式內核、支持內核線程以及裝載內核模塊的能力。不僅如此,linux還避其微內核設置上的性能損失缺陷,讓所有事情都運行在內核態,直接調用函數,無需消息傳遞

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章