作品简介

本书基于4.x版本的Linux内核,介绍了Linux内核的若干关键子系统的技术原理。本书主要内容包括内核的引导过程、内核管理和调度进程的技术原理、内核管理虚拟内存和物理内存的技术原理、内核处理异常和中断的技术原理,以及系统调用的实现方式等。此外,本书还详细讲解了内核实现的各种保护临界区的互斥技术,以及内核的文件系统。本书内容丰富,深入浅出,通过大量的图例来描述数据结构之间的关系和函数的执行流程,并结合代码分析,引导读者阅读和理解内核源代码。

本书适用于负责维护和开发Linux内核或基于Linux内核开发设备驱动程序的专业人士,以及想要学习了解Linux内核的软件工程师,也适合作为高等院校计算机专业的师生用书和培训学校的教材。

余华兵,2005年毕业于华中科技大学计算机学院,取得硕士学位。毕业后的十余年一直在网络通信行业从事软件设计和开发工作,研究方向包括IPv4协议栈、IPv6协议栈和Linux内核。

作品目录

  • 内容提要
  • 序一
  • 序二
  • 资源与支持
  • 前言
  • 第1章 内核引导和初始化
  • 1.1 到哪里读取引导程序
  • 1.2 引导程序
  • 1.3 内核初始化
  • 1.4 init进程
  • 第2章 进程管理
  • 2.1 进程
  • 2.2 命名空间
  • 2.3 进程标识符
  • 2.4 进程关系
  • 2.5 启动程序
  • 2.6 进程退出
  • 2.7 进程状态
  • 2.8 进程调度
  • 2.9 SMP调度
  • 2.10 进程的安全上下文
  • 第3章 内存管理
  • 3.1 概述
  • 3.2 虚拟地址空间布局
  • 3.3 物理地址空间
  • 3.4 内存映射
  • 3.5 物理内存组织
  • 3.6 引导内存分配器
  • 3.7 伙伴分配器
  • 3.8 块分配器
  • 3.9 不连续页分配器
  • 3.10 每处理器内存分配器
  • 3.11 页表
  • 3.12 页表缓存
  • 3.13 巨型页
  • 3.14 页错误异常处理
  • 3.15 反碎片技术
  • 3.16 页回收
  • 3.17 内存耗尽杀手
  • 3.18 内存资源控制器
  • 3.19 处理器缓存
  • 3.20 连续内存分配器
  • 3.21 userfaultfd
  • 3.22 内存错误检测工具KASAN
  • 第4章 中断、异常和系统调用
  • 4.1 ARM64异常处理
  • 4.2 中断
  • 4.3 中断下半部
  • 4.4 系统调用
  • 第5章 内核互斥技术
  • 5.1 信号量
  • 5.2 读写信号量
  • 5.3 互斥锁
  • 5.4 实时互斥锁
  • 5.5 原子变量
  • 5.6 自旋锁
  • 5.7 读写自旋锁
  • 5.8 顺序锁
  • 5.9 禁止内核抢占
  • 5.10 进程和软中断互斥
  • 5.11 进程和硬中断互斥
  • 5.12 每处理器变量
  • 5.13 每处理器计数器
  • 5.14 内存屏障
  • 5.15 RCU
  • 5.16 可睡眠RCU
  • 5.17 死锁检测工具lockdep
  • 第6章 文件系统
  • 6.1 概述
  • 6.2 虚拟文件系统的数据结构
  • 6.3 注册文件系统类型
  • 6.4 挂载文件系统
  • 6.5 打开文件
  • 6.6 关闭文件
  • 6.7 创建文件
  • 6.8 删除文件
  • 6.9 设置文件权限
  • 6.10 页缓存
  • 6.11 读文件
  • 6.12 写文件
  • 6.13 文件回写
  • 6.14 DAX
  • 6.15 常用的文件系统类型
  • 结束语
展开全部