首页 > 代码库 > 第一章 Linux內核簡介

第一章 Linux內核簡介

1. Linux是類Unix系統,但他不是Unix。

儘管Linux借鑑了Unix的許多設計並且實現了Unix的API(由Posix標準和其他Single Unix Specification定義的),但Linux沒有像其他Unix變種那樣直接使用Unix的源代碼。

2. Linux系統的基礎是內核、C庫、工具集和系統的基本工具,如登錄程序和Shell。

3. 操作系統是指在整個系統中負責完成最基本功能和系統管理的那些部分。這些部分應該包括內核、設備驅動程序、啓動引導程序、命令行Shell或者其他種類的用戶界面、基本的文件管理工具和系統工具。

4. 內核空間和用戶空間

  • 對於提供保護機制的現代系統來說,內核獨立於普通應用程序,它一般處於系統態,擁有受保護的內存空間和訪問硬件設備的所有權限。這種系統態和被保護起來的內存空間,統稱爲內核空間

  • 與此相對,應用程序在用戶空間執行。它們只能看到允許它們使用的部分系統資源,並且只能使用某些特定的系統功能,不能直接訪問硬件,也不能訪問內核劃給別人的內存範圍,還有其他的一些使用限制。

  • 內核運行的時候,系統以內核態進入內核空間執行。當執行普通用戶程序時,系統以用戶態進入用戶空間執行。

5. 在系統中運行的應用程序通過系統調用來與內核通信。

當一個應用程序執行一條系統調用,就說內核正在代其執行。進一步,這時,應用程序被稱爲通過系統調用在內核空間執行,而內核被稱爲運行與進程上下文中。

技术分享

6.  在Linux中,中斷服務程序不在進程上下文執行,而在一個與所有進程都無關的、專門的中斷上下文中運行。原因是:爲了保證中斷服務程序能夠在第一時間響應和處理中斷請求,然後快速地退出。

7. 每個處理器在任何指定的時間點上的活動:

  • 運行於用戶空間,執行用戶進程

  • 運行於內核空間,執行進程上下文,代表某個特定進程執行

  • 運行於內核空間,處於中斷上下文,與任何進程無關,處理某個特定的終端

8. 當CPU空閒時,內核就運行一個空進程,處於進程殺下文,但運行於內核空間。

關於IDLE進程的知識,參考網摘:分析linux内核的idle的知识

9. Linux是一個單內核,即Linux內核運行在單獨的內核地址空間上。

不過,Linux汲取了微內核的精華,如模塊化設計、搶佔式內核、支持內核線程以及動態裝載內核模塊的能力。此外,Linux還避其微內核設計上性能損失的缺陷,讓所有的事情都運行在內核態,直接調用函數,無需消息傳遞。

10. Linux內核與傳統的Unix系統之間的差異:

  • Linux支持動態加載內核模塊

  • Linux支持對稱多處理(SMP)機制

  • Linux內核可以搶佔(preemptive)。Linux內核具有允許在內核運行的任務優先執行的能力。

  • Linux內核不區分線程和其他的一般進程。對於Linux內核來說,所有的進程都一樣——只不過是其中的一些共享資源而已。

  • Linux提供具有設備類的面向對象的設備模型、熱插拔事件,以及用戶空間的設備文件系統(sysfs)。

11. Linux內核版本

技术分享

其中,從版本號如果是偶數,那麼該內核就是穩定版,否則就是開發版。

 



来自为知笔记(Wiz)



第一章 Linux內核簡介