作品简介

本书是一本介绍Linux内核实践的入门书,基于Linux4.0内核,重点讲解Linux内核的理论和实验。本书分为12章,包括Linux系统入门、Linux内核基础知识、内核编译和调试、内核模块、简单的字符设备驱动、系统调用、内存管理、进程管理、同步管理、中断管理、调试和性能优化,以及如何参与开源社区等内容。此外,本书还介绍了Linux内核社区常用的开发工具和理论,如Vim8和git工具等。书中包括70多个实验,帮助读者深入理解Linux内核。

张天飞,笔名“笨叔叔”,Linux内核爱好者,从事Linux内核和驱动开发十余年,曾在多家芯片公司从事过手机芯片底层软件开发和客户支持工作。著有《奔跑吧 Linux内核》一书。

作品目录

  • 内容提要
  • 序一
  • 序二
  • 前言
  • 资源与支持
  • 第1章 Linux系统入门
  • 1.1 Linux的发展历史
  • 1.2 Linux发行版
  • 1.3 Linux内核
  • 1.4 如何学习Linux内核
  • 1.5 Linux内核实验入门
  • 第2章 Linux内核基础知识
  • 2.1 Linux常用的编译工具
  • 2.2 Linux内核中常用的C语言技巧
  • 2.3 Linux内核中常用的数据结构和算法
  • 2.4 Vim工具的使用
  • 2.5 git工具的使用
  • 2.6 实验
  • 第3章 内核编译和调试
  • 3.1 内核配置
  • 3.2 实验1:通过QEMU调试ARM Linux内核
  • 3.3 实验2:通过QEMU调试ARMv8的Linux内核
  • 3.4 实验3:通过Eclipse+QEMU单步调试内核
  • 3.5 实验4:在QEMU中添加文件系统的支持
  • 第4章 内核模块
  • 4.1 从一个内核模块开始
  • 4.2 模块参数
  • 4.3 符号共享
  • 4.4 实验
  • 第5章 简单的字符设备驱动
  • 5.1 实验1:从一个简单的字符设备开始
  • 5.2 字符设备驱动详解
  • 5.3 实验2:使用misc机制来创建设备
  • 5.4 一个简单的虚拟设备
  • 5.5 阻塞I/O和非阻塞I/O
  • 5.6 I/O多路复用
  • 5.7 实验8:为什么不能唤醒读写进程
  • 5.8 实验9:向虚拟设备中添加异步通知
  • 5.9 本章小结
  • 第6章 系统调用
  • 6.1 系统调用概念
  • 6.2 实验
  • 第7章 内存管理
  • 7.1 从硬件角度看内存管理
  • 7.2 从软件角度看内存管理
  • 7.3 物理内存管理
  • 7.4 虚拟内存管理
  • 7.5 缺页异常
  • 7.6 内存短缺
  • 7.7 内存管理实验
  • 第8章 进程管理
  • 8.1 进程
  • 8.2 进程的创建和终止
  • 8.3 进程调度
  • 8.4 多核调度
  • 8.5 实验
  • 第9章 同步管理
  • 9.1 原子操作与内存屏障
  • 9.2 自旋锁机制
  • 9.3 信号量
  • 9.4 互斥体
  • 9.5 读写锁
  • 9.6 RCU
  • 9.7 等待队列
  • 9.8 实验
  • 第10章 中断管理
  • 10.1 Linux中断管理机制
  • 10.2 软中断和tasklet
  • 10.3 工作队列机制
  • 10.4 实验
  • 第11章 调试和性能优化
  • 11.1 printk和动态输出
  • 11.2 proc和debugfs
  • 11.3 ftrace
  • 11.4 实验10:分析oops错误
  • 11.5 perf性能分析工具
  • 11.6 内存检测
  • 11.7 实验17:kdump
  • 11.8 性能和测试
  • 第12章 开源社区
  • 12.1 什么是开源社区
  • 12.2 参与开源社区
  • 12.3 实验1:使用cppcheck检查代码
  • 12.4 实验2:提交第一个Linux内核补丁
  • 12.5 实验3:管理和提交多个补丁组成的补丁集
  • 12.6 实验4:在Gitee中创建一个开源项目
  • 参考文献
展开全部