Linux 系統由內核、GNU 工具鏈、系統庫與用戶空間應用構成。理解其分層架構與五大核心子系統,有助於把握系統整體運行機制。
用戶進程(應用程序)
↓ 系統調用介面(syscall)
系統調用介面(VFS、IPC、網絡、信號等)
↓
Linux 內核子系統(進程調度、記憶體管理、VFS、網絡協議棧、IPC)
↓
硬體(CPU、記憶體、磁碟、網卡、GPU 等)
內核位於用戶進程與硬體之間,扮演資源管理者與抽象層角色。
| 子系統 | 核心職責 | 關鍵數據結構/模塊 |
|---|---|---|
| 進程調度 | 決定哪個任務在哪個 CPU 運行,實現 CFS、實時、截止時間調度類 | struct task_struct、struct rq、sched_class、CFS 紅黑樹 |
| 記憶體管理 | 虛擬地址映射、頁框分配/回收、SLAB/SLUB 分配器、頁快取、換頁、NUMA 感知 | mm_struct、vm_area_struct、page、zone、kmem_cache |
| 虛擬文件系統 (VFS) | 統一文件操作介面,支援 ext4/XFS/Btrfs/NFS/OverlayFS 等數十種文件系統 | super_block、inode、dentry、file、file_operations |
| 網絡協議棧 | 實現 TCP/IP/UDP/ICMP/BSD Socket API,支援網卡驅動、流量控制、QoS、Netfilter 防火牆 | sk_buff、socket、net_device、proto_ops、nf_hook |
| 進程間通信 (IPC) | 提供管道、FIFO、System V IPC(消息隊列、信號量、共享內存)、POSIX IPC、Unix Domain Socket | ipc_namespace、msg_queue、sem_array、shmid_kernel |
arch/,核心邏輯與架構無關,支援 x86、ARM、RISC-V、PowerPC、s390、MIPS 等 30+ 架構。