linux內核從邏輯上可以分為5個部分:
1、進程調度
進程調度控制進程對CPU的訪問。當需要選擇下一個進程運行時,由調度程序選擇最值得運行的程序。可運行進程實際上是僅等待CPU資源的進程,如果某個進程在等待其他資源,則該進程是不可運行進程。linux使用了基于優先級的進程調度算法選擇新的運行進程。
2、進程間通信
IPC(Intre-Process Communication)包括FIFO、管道等機制以及System V IPC的共享內存(shm)、消息隊列(msg)和信號燈(sem);
3、內存管理
內存管理允許多個進程安全地共享主內存區域。linux的內存管理支持虛擬內存,即在計算機中運行的程序,它的代碼、數據和堆棧的總量可以超過實際內存的大小,操作系統只是把當前使用的程序塊保存在內存中,其余的程序塊則保留在磁盤中。當必要時,操作系統負責在磁盤和內存間交換程序塊。內存管理從邏輯上分為硬件無關部分和硬件有關部分。硬件無關部分提供了進程的映射和邏輯內存的對換。硬件有關部分為內存管理硬件提供了虛擬接口。
4、虛擬文件系統
Virtual File System 隱藏了各種硬件的具體細節,為所有設備提供了統一的接口,VFS提供了多達數十種不同的文件系統。虛擬文件系統可以分為邏輯文件系統和設備驅動程序。邏輯文件系統指linux所支持的文件系統。設備驅動程序指的是為每一種硬件控制器所編寫的設備驅動程序模塊。
5、網絡
linux是源于網絡的操作系統,提供了大量的內置網絡功能,并且網絡功能和內核的聯系非常緊密。linux的網絡功能包括各種網絡協議和對網絡硬件的訪問。