內核
-
負責響應中斷的中斷服務程序
-
負責管理多個進程從而分享處理器時間的調度程序
-
負責管理進程地址空間的內存管理程序和網絡、進程間通信等服務程序
-
內核獨立於普通應用程序,一般處於系統態,擁有受保護的內存空間和訪問硬件設備的所有權限,這種系統態和被保護的內存空間,統稱內核空間
-
應用程序在用戶空間執行,當內核運行的時候,系統以內核態進入內核空間執行,而執行一個普通程序時,系統將以用戶態進入以用戶空間執行
-
系統中運行的應用程序通過系統調用與內核通信
應用程序、內核和硬件的關係:
-
單內核就是把它從整體上作爲一個單獨的大過程實現,同時也運行在一個單獨的地址空間上,這樣的內核通常以單個靜態二進制文件的形式存放於磁盤中,單模塊具有簡單和性能高的特點。
-
微內核的功能被劃分爲多個獨立的過程,每個過程叫做一個服務器,所有的服務器都保持獨立並運行在各自的地址空間上,各個服務器通過消息傳遞處理微內核通信,系統採用了進程間通信(IPC)機制。
-
IPC機制需要大量的開銷,所有實際應用的基於微內核的系統都讓大部分或全部服務器位於內核
-
Linux與傳統Unix差異:
- Linux支持動態加載內核模塊
- Linux支持對稱多處理(SMP)機制
- Linux內核可以搶佔。
- Linux對線程支持的實現:內核並不區分線程和其他一般進程,對於內核來說,所有的進程都一樣
- Linux提供具有設備類的面向對象的設備模型、熱拔插事件,以及用戶空間的設備文件系統
- Linux忽略了一些很拙劣的Unix特性,like STREAMS
- Linux自由