本帖最后由 csx 于 2025-7-29 02:28 编辑
经过近20年的发展,Linux 操作系统已经成为当今最成功的开源软件之一,使用广泛,影响深远。随着 Linux 操作系统功能的不断丰富和完善,Linux 内核的源代码也从最初的几万行增加到如今的数百万行,庞大无比,对于 Linux 内核的研究者和开发者而言,要系统研究 Linux 内核绝非易事。鉴于此,本书选取了资源管理(CPU、内存、进程等)、文件系统、网络、虚拟化、省电、调试、概要分析、追踪、内核调整等 Linux 内核的核心主题进行了深入剖析和讲解,总结出了75个能有助于读者深刻理解 Linux 内核精髓的技巧和最佳实践。
目录第1 章 内核入门 ············1 HACK #1 如何获取Linux 内核 ···········1 HACK #2 如何编译Linux 内核 ···········7 HACK #3 如何编写内核模块 ············18 HACK #4 如何使用Git ·····22 HACK #5 使用checkpatch.pl 检查补丁的格式 ·41 HACK #6 使用localmodconfig 缩短编译时间 ···44 第2 章 资源管理 ··········47 HACK #7 Cgroup、Namespace、Linux 容器 ··47 HACK #8 调度策略 ··········55 HACK #9 RT Group Scheduling 与RT Throttling ···········59 HACK #10 Fair Group Scheduling ··62 HACK #11 cpuset ············65 HACK #12 使用Memory Cgroup 限制内存使用量 ···········68 HACK #13 使用Block I/O 控制器设置I/O 优先级 ············74 HACK #14 虚拟存储子系统的调整 ···80 HACK #15 ramzswap ······85 HACK #16 OOM Killer 的运行与结构 91 第3 章 文件系统 ··········98 HACK #17 如何使用ext4 ·98 HACK #18 向ext4 转换·· 101 HACK #19 ext4 的调整 ·· 104 HACK #20 使用fio 进行I/O 的基准测试 ········· 111 HACK #21 FUSE ··········· 118 第4 章 网络 121 HACK #22 如何控制网络的带宽 ···· 121 HACK #23 TUN/TAP 设备 ············· 126 HACK #24 网桥设备 ······ 129 HACK #25 VLAN ··········· 133 HACK #26 bonding 驱动程序 ········ 136 HACK #27 Network Drop Monitor · 141 第5 章 虚拟化 ············147 HACK #28 如何使用Xen ·············· 147 HACK #29 如何使用KVM ············· 153 HACK #30 如何不使用DVD 安装操作系统 ····· 159 HACK #31 更改虚拟CPU 分配方法,提高性能 ············· 161 HACK #32 如何使用EPT 提高客户端操作系统的性能 ··· 166 HACK #33 使用IOMMU 提高客户端操作系统运行速度 ·· 173 HACK #34 使用IOMMU+SR-IOV 提高客户端操作系统速度 ··········· 183 HACK #35 SR-IOV 带宽控制 ········· 187 HACK #36 使用KSM 节约内存······ 189 HACK #37 如何挂载客户端操作系统的磁盘···· 194 HACK #38 从客户端操作系统识别虚拟机环境 200 HACK #39 如何调试客户端操作系统 ·············· 205 第6 章 省电 213 HACK #40 ACPI ············ 213 HACK #41 使用ACPI 的 S 状态 ···· 224 HACK #42 使用CPU 省电(C、P 状态) ········ 226 HACK #43 PCI 设备的热插拔 ········ 236 HACK #44 虚拟环境下的省电 ········ 240 HACK #45 远程管理机器的电源 ···· 246 HACK #46 USB 的电力管理 ·········· 251 HACK #47 显示器的省电 254 HACK #48 通过网络设备节省电能 · 260 HACK #49 关闭键盘的LED 来省电 263 HACK #50 PowerTOP ··· 269 HACK #51 硬盘的省电 ··· 276 第7 章 调试 282 HACK #52 SysRq 键 ······ 282 HACK #53 使用diskdump 提取内核崩溃转储 · 288 HACK #54 使用Kdump 提取内核崩溃转储····· 293 HACK #55 崩溃测试 ······ 297 HACK #56 IPMI 看门狗计时器 ······· 299 HACK #57 NMI 看门狗计时器 ······· 305 HACK #58 soft lockup ··· 307 HACK #59 crash 命令 ···· 312 HACK #60 核心转储过滤器 ··········· 326 HACK #61 生成用户模式进程的进程核心转储 329 HACK #62 使用lockdep 查找系统的死锁 ······· 335 HACK #63 检测内核的内存泄漏 ···· 341 第8 章 概要分析与追踪 ·············346 HACK #64 使用perf tools 的概要分析(1) ···· 346 HACK #65 使用perf tools 的概要分析(2) ···· 349 HACK #66 进行内核或进程的各种概要分析···· 353 HACK #67 追踪内核的函数调用 ···· 360 HACK #68 ftrace 的插件追踪器 ···· 366 HACK #69 记录内核的运行事件 ···· 371 HACK #70 使用trace-cmd 的内核追踪 ·········· 378 HACK #71 将动态追踪事件添加到内核中 ······· 382 HACK #72 使用SystemTap 进行内核追踪 ····· 388 HACK #73 使用SystemTap 编写对话型程序 ·· 394 HACK #74 SystemTap 脚本的重复利用 ········· 399 HACK #75 运用SystemTap ·········· 402
|