很多人学习 Linux,往往是从命令开始的:查看进程用ps,分析负载用 top,检查内存用 free ,查看日志用 dmesg。命令背了不少,但系统一旦出现高负载、内存不足、I/0 等待、驱动报错,排查时依然容易没有方向。
问题并不一定出在命令不会用,而是没有理解命令背后的 Linux 内核。
应用程序为什么不能直接操作硬件?一个进程什么时候获得 CPU?虚拟内存、物理内存、Page Cache 和 Swap 之间是什么关系?文件读写为什么要经过 VFS?网卡、磁盘和键盘又是如何被系统识别和控制的?这些问题的答案,都指向 Linux 内核。
今天我给大家分享从系统分层、系统调用、进程调度、内存管理、文件系统、设备驱动和内核排障七个方面,带你建立一套完整的 Linux 内核认知框架。理解这些机制之后,再去看高负载、OOM、磁盘异常和可疑进程,排查思路会清很多。