Linux的內核不是孤立的,必須把它放在整個系統中去研究,圖1.1顯示了Linux內核在整個操作系統的位置:
用戶進程 系統調用接口 硬件 Linux內核
圖 1.1 Linux內核在整個操系統中的位置
由圖1.1可以看出,Linux操作系統由四個部分組成:
1.用戶進程—用戶應用程序是運行在Linux操作系統最高層的一個龐大的軟件集合, 當一個用戶程序在操作系統之上運行時,它成為操作系統中的一個進程。
2. 系統調用接口— 在應用程序中,可通過系統調用來調用操作系統內核中特定的過程,以實現特定的服務。例如,在程序中安排一條創建進程的系統調用,則操作系統內核便會為之創建一個新進程。
系統調用本身也是由若干條指令構成的過程。但它與一般的過程不同,主要區別是:系統調用是運行在內核態(或叫系統態),而一般過程是運行在用戶態。在Linux中,系統調用是內核代碼的一部分。
3. Linux內核—這是本書要討論的重點。內核是操作系統的靈魂,它負責管理磁盤上的文件、內存,負責啟動並運行程序,負責從網絡上接收和發送數據包等等。簡言之,內核實際是抽象的資源操作到具體硬件操作細節之間的接口。
4. 硬件—這個子系統包括了Linux安裝時需要的所有可能的物理設備。例如,CPU、 內存、硬盤、網絡硬件等等。
上面的這種劃分把整個Linux操作系統分為四個層次。把用戶進程也納入操作系統的范圍內是因為用戶進程的運行和操作系統密切相關,而系統調用接口可以說是操作系統內核的擴充,硬件則是操作系統內核賴以生存的物質條件。這四個層次的依賴關系表現為:上層依賴下層。