Linux 核心技术知识体系
Linux 是现代后端工程师必须深入掌握的底层基石。无论是理解 JVM 内存管理、Netty 零拷贝,还是排查线上 CPU 飙高、网络抖动,都离不开对 Linux 内核机制的原生认知。本体系从内核原理出发,贯穿系统调用、网络协议栈,直达生产运维实战与高级底层调试。
工程师进阶路线图
第一阶段:基础命令与系统管理
1.1 文件系统与核心命令
- 文件系统与核心命令速查:VFS 抽象层、inode/dentry 结构、硬链接与软链接本质,以及 find/awk/sed/xargs 生产级用法。
- 用户权限与安全模型:DAC 自主访问控制、
rwx位与setuid/setgid/sticky特权位、sudo提权机制与/etc/sudoers深度解析。 - 进程管理与信号机制:进程状态机(R/S/D/Z/T)、
fork/exec/wait调用链、信号传递模型与进程控制。 - Systemd 深度剖析:Systemd PID 1 进程初始化流程、并行服务启动(套接字激活/D-Bus 激活)、Unit 全类型配置与依赖拓扑设计,以及 journald 日志管理与守护进程模型。
第二阶段:内核原理深度剖析
2.1 I/O 模型
- Linux I/O 模型与多路复用:五种 I/O 模型对比、
select/poll/epoll实现差异、epollLT/ET 触发模式与io_uring异步 I/O 内核原理。
2.2 内存管理
- 虚拟内存与内核内存管理:四级页表结构、
mmap/brk内存分配、Buddy System + Slab 分配器、OOM Killer 触发机制与 /proc/meminfo 解读。
2.3 进程调度与隔离
- 进程调度器 CFS 与实时调度:完全公平调度器 CFS vruntime 红黑树、调度类优先级、CPU 亲和性与
cgroups资源隔离机制。 - 虚拟化 Namespaces & Cgroups:Linux 6大命名空间、内核
clone/unshare/setns系统调用、Cgroups v1 与 v2 单层级层次结构区别,以及容器化隔离的底层机理。
2.4 进程间通信
- IPC 底层通信:管道(Anon/FIFO Pipe)、共享内存(System V/POSIX SHM)、信号量、Unix 域套接字(UDS)等的高吞吐零拷贝及内存隔离通信技术。
第三阶段:网络协议栈与安全
- TCP/IP 内核协议栈深度解析:内核 Socket 接收发送缓冲区、TCP 三次握手/四次挥手内核状态机、TIME_WAIT 大量积压根因与
tcp_tw_reuse调优。 - 网络诊断工具实战:
tcpdump过滤语法与抓包分析、ss/netstat连接状态诊断、iperf3带宽测试与eBPF/bcc动态追踪。 - Netfilter 与本地防火墙:Netfilter 内核框架五表五链、
iptables与新一代高性能nftables防火墙对比、高吞吐下conntrack连接跟踪表爆满引发丢包性能调优。
第四阶段:性能调优与故障排查
- CPU 与内存性能调优:
perf/flamegraph火焰图分析、vmstat/mpstat/sar系统级监控、内存碎片与大页(HugePage)调优。 - 线上故障排查方法论:CPU 100% 根因分析(
top/pidstat/strace)、内存泄漏定位(valgrind/smaps)、磁盘 I/O 瓶颈排查(iostat/iotop/blktrace)。 - 崩溃转储 KDUMP & GDB:应用层 Core Dump 信号控制与高吞吐调优、内核 Panic 时的 KDUMP 双内核捕获转储流程,以及使用 GDB 和 Crash 实战分析崩溃堆栈。
关联知识推荐
- Java NIO 与 Netty:Linux epoll 是 Netty 高性能的底层支撑,见 JDK NIO 核心三件套。
- 容器与 K8s:Linux cgroups/namespace 是容器隔离的基础,见 Kubernetes 架构。
- JVM 调优:Linux 内存管理与 JVM GC 调优紧密相关,见 JVM 内存模型与 GC。