书籍详情
《官网 图解Linux内核 基于6.x 姜亚华 Linux技术与应用丛书 Linux内核开发核心技术书籍》[40M]百度网盘|亲测有效|pdf下载
  • 官网 图解Linux内核 基于6.x 姜亚华 Linux技术与应用丛书 Linux内核开发核心技术书籍

  • 出版社:机械工业出版社官方旗舰店
  • 作者:姜亚华 著
  • 热度:4842
  • 上架时间:2025-01-04 08:18:29
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

6f4d42192e1fff25.jpg.avif7e29aba89c34375c.jpg.avif







全书共五篇,以从易到难的顺序详细剖析了Linux内核开发的核心技术。“知识储备篇”介绍了Linux的数据结构、中断处理、内核同步和时间计算等内容,这些是理解后续章节的前提;之后通过“内存管理篇”“文件系统篇”“进程管理篇”详细介绍了Linux的三大核心模块;最后的“综合应用篇”则融合了前面诸多模块知识展示了Linux内核开发在操作系统、智能设备、驱动、通信、芯片、云计算和人工智能等热点领域的应用。书中的重点、难点均配有图表、代码和实战案例,力求直观、清晰。

学习本书的读者需要熟悉C语言,建议对Linux内核有一定了解。推荐初学者按照本书的编排顺序阅读,而熟悉Linux内核的读者可以跳过知识储备篇,直接从三大核心模块篇进行阅读。

本书深入浅出、配图丰富,可作为Linux初中级读者系统学习Linux内核开发的指导手册,也可作为从事嵌入式、操作系统、Linux编程、驱动/内核开发,以及智能设备开发的工程师的案头指南和进阶工具书。






前言

知识储备篇

第1章Linux内核概述

1.1基于Linux的操作系统生态

1.2【图解】Linux工程师技能和领域

1.3内核代码结构

1.4【看图说话】Android操作系统

第2章数据结构和设计模式

2.1【图解】关系型数据结构

2.1.1一对一关系

2.1.2一对多关系

2.1.3多对多关系

2.2【图解】内核中常见的设计模式

2.2.1模板方法设计模式

2.2.2观察者设计模式

2.3【看图说话】input子系统第3章中断

3.1【图解】中断处理的软硬件分工

3.2中断的处理

3.2.1注册中断服务例程

3.2.2中断处理和返回

3.3软中断

3.3.1tasklet小任务

3.3.2timer定时器

3.4【看图说话】系统调用与程序优化

第4章Linux的时间

4.1数据结构

4.2时间的衡量

4.2.1时钟芯片

4.2.2时间的计算

4.3【图解】时钟中断

4.4【看图说话】timer和hrtimer内存管理篇

第5章内存寻址

5.1DRAM和MMIO

5.2【图解】内存分页

5.2.1寻址

5.2.2内存映射

5.3【看图说话】访问GPU的

Framebuffer

第6章物理内存的管理

6.1【图解】物理内存的布局

6.1.1【图解】node

6.1.2【图解】node的管理

6.2物理内存申请的三个阶段

6.2.1启动程序

6.2.2memblock分配器

6.2.3伙伴系统

6.3【看图说话】搭建管理物理内存的

系统

第7章虚拟内存的管理

7.1线性空间的划分

7.2【图解】内核线性空间布局

7.2.1直接映射区

7.2.2动态映射区

7.2.3永久映射区

7.2.4固定映射区

7.3用户空间内存映射mmap

7.3.1数据结构

7.3.2mmap的实现

7.4【看图说话】/dev/mem的巧用和限制

第8章内存管理进阶

8.1内存申请

8.1.1申请连续物理内存

8.1.2vmalloc的使用

8.2缓存

8.2.1TLB缓存

8.2.2内存缓存

8.3【图解】缺页异常

8.3.1异常的处理

8.3.2COW的精髓

8.4【看图说话】看似简单的malloc

第9章内存回收

9.1【图解】内存回收调用栈

9.2扫描过程的控制

9.3选择扫描对象

9.4扫描inactive链表

9.4.1页隔离

9.4.2folio的原理

9.4.3回收隔离页

9.4.4扫尾

9.5扫描active链表

9.6【看图说话】反向映射

9.6.1匿名映射的mapping

9.6.2文件映射的mapping文件系统篇

第10章虚拟文件系统

10.1数据结构

10.2【图解】文件系统的挂载

10.3文件查找

10.4文件操作

10.4.1软链接和硬链接

10.4.2创建和删除目录

10.4.3打开和关闭文件

10.4.4创建节点

10.4.5删除文件

10.5文件的IO

10.5.1读写

10.5.2ioctl操作

10.6【看图说话】proc文件系统

第11章sysfs文件系统

11.1基本框架

11.2数据结构

11.3创建文件

11.4文件的IO

11.5【看图说话】sysfs和驱动

第12章ext4文件系统

12.1【图解】ext4布局

12.2数据结构

12.2.1ext4_super_block结构体

12.2.2ext4_group_desc结构体

12.2.3ext4_inode结构体

12.2.4ext4_sb_info结构体

12.2.5ext4_inode_info结构体

12.3ext4的挂载

12.4【图解】ext4目录结构

12.4.1线性目录

12.4.2哈希树目录

12.4.3硬链接

12.5【图解】ext4文件的IO

12.5.1映射

12.5.2区段树

12.6【看图说话】文件的恢复进程管理篇

第13章进程

13.1概述

13.1.1数据结构

13.1.2扩展讨论

13.2进程的创建

13.2.1dup_task_struct函数

13.2.2复制creds

13.2.3设置时间

13.2.4sched_fork函数

13.2.5复制资源

13.2.6申请pid

13.2.7重要的杂项

13.3创建进程

13.3.1fork/vfork系统调用

13.3.2创建线程

13.3.3创建内核线程

13.4进程“三巨头”

13.5进程退出

13.5.1退出方式

13.5.2退出过程

13.5.3使用wait等待子进程

13.6【看图说话】Android的thread

目录图解Linux内核(基于6.x)第14章进程调度

14.1数据结构

14.2进程调度的过程

14.2.1进程被创建

14.2.2唤醒进程

14.2.3时钟中断

14.2.4进程切换

14.3stop调度类

14.4实时调度类

14.4.1优先级和抢占

14.4.2task_tick_rt函数

14.4.3选择下一个进程

14.5【图解】完全公平调度类

14.5.1task_fork_fair函数

14.5.2enqueue_task和check_preempt

14.5.3task_tick_fair函数

14.5.4进程切换

14.6最后期限调度类

14.7idle调度类

14.8进程优先级

14.9【看图说话】idle进程

第15章进程通信

15.1经典的管道

15.1.1创建pipe

15.1.2pipe的操作

15.1.3命名管道

15.2POSIX通信

15.2.1POSIX信号量

15.2.2POSIX共享内存

15.2.3POSIX消息队列

15.3XSI通信

15.3.1IPC对象的key和id

15.3.2XSI信号量

15.3.3XSI消息队列

15.3.4XSI共享内存

15.4【看图说话】多线程和多进程

第16章信号

16.1数据结构

16.2捕捉信号

16.3发送信号

16.4【图解】信号处理的过程

16.4.1处理信号的时机和方式

16.4.2处理信号后如何返回

16.5【看图说话】监控文件的IO综合应用篇

第17章玩转操作系统——程序的

执行

17.1【图解】elf文件

17.1.1概述

17.1.2文件格式

17.2exec函数族

17.2.1数据结构

17.2.2系统调用

17.3【看图说话】main函数的来龙去脉

第18章玩转操作系统——IO多路

复用

18.1select机制

18.2poll机制

18.3【图解】epoll

18.3.1数据结构

18.3.2epoll的使用

18.4【看图说话】改良管道通信

第19章玩转操作系统——Binder

通信

19.1【图解】Binder通信的原理

19.2Binder的流程

19.2.1ServiceManager进程管理

服务

19.2.2注册和获取服务

19.2.3服务的过程

19.3Binder的驱动

19.4【看图说话】使用Binder让设计变

清晰

第20章玩转驱动——Linux设备驱动

模型

20.1数据结构

20.2【图解】probe

20.3再论总线

20.4【看图说话】触摸屏的驱动

第21章玩转驱动——智能设备的

Camera

21.1Camera在智能设备中的应用

21.2【图解】V4L2架构

21.2.1数据结构

21.2.2ioctl操作

21.3Camera的核心ioctl操作

21.4【看图说话】安卓的Camera的架构

第22章玩转云计算、虚拟化——

KVM

22.1【图解】KVM原理

22.2KVM的实现

22.2.1硬件上的Intercept

22.2.2CPU虚拟化

22.3【看图说话】KVM和QEMU

第23章玩转云计算、虚拟化——设备

虚拟化

23.1【图解】virtio

23.1.1设备端实现

23.1.2驱动端实现

23.2【图解】VFIO

23.2.1原理

23.2.2VFIO驱动

23.3【看图说话】QEMU的virtio设备

附录

附录A内存初始化

A.1内存识别

A.2内存加入伙伴系统

A.3内存热插拔

附录B内核同步

B.1竞争

B.2同步原语

B.2.1每cpu变量

B.2.2volatile关键字

B.2.3屏障

B.2.4atomic变量

B.2.5禁中断

B.2.6禁抢占

B.2.7自旋锁

B.2.8读写锁

B.2.9顺序锁

B.2.10信号量

B.2.11互斥锁

B.2.12读-拷贝-更新

附录C内嵌汇编语言

C.1基本格式

C.2扩展格式

附录D链接脚本

D.1编译的基本过程

D.2内核的链接脚本




相关推荐