Linux系統從應用角度來看,分為核心空間和使用者空間兩個部分。核心空間是Linux作業系統的主要部分,但是僅有核心的作業系統是不能完成使用者任務。
一、 Linux核心的主要模組
1.進程調度
進程調度指的是系統對進程的多種狀態之間轉換的策略。Linux下的進程調度有3種策略:SCHED_OTHER、SCHED_FIFO和SCHED_RP。
SCHED_OTHER是用於針對普通進程的時間片輪轉調度策略。這種策略中,系統給所有的運行狀態的進程分配時間片。在目前時間片用完之後,系統從進程中優等級最高的進程中選擇進程運行。
SCHED_FIFO是針對啟動並執行即時性要求比較高、已耗用時間短的進程調度策略。這種策略中,系統按進入隊列的先後進行進程的調度,在沒有更高優先順序進程到來或者當前進程沒有因為等待資源而阻塞的情況下,會一直運行。
SCHED_RR是針對啟動並執行即時性要求比較高、運行經較長的進程調度策略。這種策略與SCHED_OTHER的策略類似,只不過SCHED_RR進程的優先順序要高得多。 系統分配給SCHED_RR的進程時間片,然後輪循運行這些進程,將時間片用完的進程放入隊列的末尾。
Linux進程調度月票用的是“有條件可剝奪”的調度方式。普通進程中採用的是SCHED_OTHER的時間片輪循方式,即時進程可以剝奪普通進程。如果普通進程在使用者空間運行,則普通進程立即停止運行,將資源讓給即時進程vkjsuo通進程運行在核心空間,需要等系統調用返回使用者空間後方可剝奪資源。
2.記憶體管理MMU
記憶體管理是多個進程間的記憶體共用策略。在Linux系統中,記憶體管理的主要概念是虛擬記憶體。
虛擬記憶體的分配策略是每個進程都可以公平地使用虛擬記憶體。虛擬記憶體的大小通常設定為實體記憶體的兩倍。
3.虛擬檔案系統VFS
在Linux下支援多種檔案系統,如ext、ext2、minix、umsdos、msdos、vfat、ntfs、proc、smb、ncp、iso9660、sysv、hpfs、affs等。
4、網路介面
Linux是在Internet飛速發展的時期成長起來的,所以Linux支援多種網路介面和協議。網路介面分為網路通訊協定和驅動程式。
5、處理序間通訊
Linux的處理序間通訊是從UNIX系統繼承過來的。Linux下的處理序間通訊方式主要有管道方式、訊號方式、訊息佇列方式、共用記憶體和通訊端等方法。 二、Linux的檔案結構
與Windows下的檔案組織圖不同,Linux不使用磁碟分割符號來訪問檔案系統,而是將整個檔案系統表示成樹狀的結構,Linux系統每增加一個檔案系統都會將其加入到這個樹中。
不同的Linux發行版本的目錄結構和具體的實現功能存在一些細微的差別。但是主要的功能都是一致的。一些常用目錄的作用如下:
/etc: 包括絕大多數Linux系統引導所需要的設定檔,系統引導時讀取設定檔,例如fstab、host.conf等。
/lib: 包含C編譯器需要的函數庫,是一組二進位檔案,例如glibc等。
/usr: 包括所有其他內容,如src、local。Linux的核心就在/usr/src中。其下有子目錄/bin,存放所有安裝語言的命令,如gcc、perl等。
/var:包含系統定義表,以便在系統運行改變可以只備份該目錄,如cache。
/tmp: 用於臨時性的儲存。
/bin: 大多數命令存放在這裡。
/home: 主要存放使用者帳號,並且可以支援ftp的使用者管理。系統管理員增加使用者時,系統在home目錄下建立與使用者同名的目錄,此目錄一般認有Desktop目錄。
/dev: 這個目錄下存放一種裝置檔案的特殊檔案,如fd0、had等。
/mnt: 在Linux系統中,它是專門給外掛的檔案系統使用的,裡面有兩個檔案cdrom、floopy,登入光碟機、軟體時要用到。