科技
类型
7.3
豆瓣评分
可以朗读
语音朗读
240千字
字数
2014-01-01
发行日期
展开全部
主编推荐语
腾讯资深Linux内核专家10余年工作经验结晶,Linux内核工程师和驱动发工程师的必读之作。
内容简介
本书独辟蹊径,对Linux内核的文件系统和设备驱动的架构设计进行了深入探讨。第一章从基础层和应用层的角度对内核提供的服务和数据结构进行了介绍;第2章和第3章分别介绍了文件系统和设备的核心概念、架构;第4章详细介绍了sysfs文件系统;第5章讲解了字符设备和输入设备;第6~8章分别讲解了Platform总线、serio总线和PCI总线;第9章讲解了块设备;第10章讲解了文件系统的读写;第11章讲解了Linux内核的通用块层和scis层;第12章讲解了linux的回写机制;第13章介绍了ext2文件系统。
目录
- 版权信息
- 前言
- 第1章 内核的基础层和应用层
- 1.1 内核基础层提供的服务
- 1.1.1 内核中使用内存
- 1.1.2 内核中的任务调度
- 1.1.3 软中断和tasklet
- 1.1.4 工作队列
- 1.1.5 自旋锁
- 1.1.6 内核信号量
- 1.1.7 原子变量
- 1.2 内核基础层的数据结构
- 1.2.1 双向链表
- 1.2.2 hash链表
- 1.2.3 单向链表
- 1.2.4 红黑树
- 1.2.5 radix树
- 1.3 内核应用层
- 1.4 从Linux内核源码结构纵览内核
- 1.5 内核学习和应用的四个阶段
- 1.6 本章小结
- 第2章 文件系统
- 2.1 文件系统的基本概念
- 2.1.1 什么是VFS
- 2.1.2 超级块super_block
- 2.1.3 目录项dentry
- 2.1.4 索引节点inode
- 2.1.5 文件
- 2.2 文件系统的架构
- 2.2.1 超级块作用分析
- 2.2.2 dentry作用分析
- 2.2.3 inode作用分析
- 2.2.4 文件作用分析
- 2.3 从代码层次深入分析文件系统
- 2.3.1 一个最简单的文件系统aufs
- 2.3.2 文件系统如何管理目录和文件
- 2.3.3 文件系统的挂载过程
- 2.3.4 文件打开的代码分析
- 2.4 本章小结
- 第3章 设备的概念和总体架构
- 3.1 设备的配置表
- 3.2 访问设备寄存器和设备内存
- 3.3 设备中断和DMA
- 3.4 总线对设备的扫描
- 3.5 设备驱动管理
- 3.6 本章小结
- 第4章 为设备服务的特殊文件系统sysfs
- 4.1 文件和目录的创建
- 4.1.1 sysfs文件系统的初始化
- 4.1.2 sysfs文件系统目录的创建
- 4.1.3 普通文件的创建
- 4.2 sysfs文件的打开操作
- 4.2.1 real_lookup函数详解
- 4.2.2 为文件创建inode结构
- 4.2.3 为dentry结构绑定属性
- 4.2.4 调用文件系统中的open函数
- 4.3 sysfs文件的读写
- 4.3.1 读文件的过程分析
- 4.3.2 写文件的过程分析
- 4.4 kobject结构
- 4.4.1 kobject和kset的关系
- 4.4.2 kobject实例:总线的注册
- 4.5 本章小结
- 第5章 字符设备和input设备
- 5.1 文件如何变成设备
- 5.1.1 init_special_inode函数
- 5.1.2 def_chr_fops结构
- 5.2 input设备的注册
- 5.2.1 主从设备号
- 5.2.2 把input设备注册到系统
- 5.2.3 设备区间的登记
- 5.2.4 注册字符设备
- 5.2.5 打开input设备
- 5.3 input设备架构
- 5.3.1 注册input设备的驱动
- 5.3.2 匹配input管理的设备和驱动
- 5.3.3 注册input设备
- 5.4 本章小结
- 第6章 platform总线
- 6.1 从驱动发现设备的过程
- 6.1.1 驱动的初始化
- 6.1.2 注册驱动
- 6.1.3 为总线增加一个驱动
- 6.1.4 驱动加载
- 6.1.5 遍历总线上已经挂载的设备
- 6.2 从设备找到驱动的过程
- 6.2.1 注册设备和总线类型
- 6.2.2 注册设备的资源
- 6.2.3 增加一个设备对象
- 6.3 本章小结
- 第7章 serio总线
- 7.1 什么是总线适配器
- 7.2 向serio总线注册设备
- 7.2.1 注册端口登记事件
- 7.2.2 遍历总线的驱动
- 7.2.3 注册input设备
- 7.3 虚拟键盘驱动
- 7.3.1 键盘驱动的初始化
- 7.3.2 与设备建立连接
- 7.3.3 启动键盘设备
- 7.3.4 输入设备和主机系统之间的事件
- 7.4 键盘中断
- 7.4.1 q40kbd设备的中断处理
- 7.4.2 serio总线的中断处理
- 7.4.3 驱动提供的中断处理
- 7.5 本章小结
- 第8章 PCI总线
- 8.1 深入理解PCI总线
- 8.1.1 PCI设备工作原理
- 8.1.2 PCI总线域
- 8.1.3 PCI资源管理
- 8.1.4 PCI配置空间读取和设置
- 8.2 PCI设备扫描过程
- 8.2.1 扫描0号总线
- 8.2.2 扫描总线上的PCI设备
- 8.2.3 扫描多功能设备
- 8.2.4 扫描单个设备
- 8.2.5 扫描设备信息
- 8.3 本章小结
- 第9章 块设备
- 9.1 块设备的架构
- 9.1.1 块设备、磁盘对象和队列
- 9.1.2 块设备和通用磁盘对象的绑定
- 9.1.3 块设备的队列和队列处理函数
- 9.2 块设备创建的过程分析
- 9.2.1 nbd驱动的初始化
- 9.2.2 为通用磁盘对象创建队列成员
- 9.2.3 将通用磁盘对象加入系统
- 9.3 块设备文件系统
- 9.3.1 块设备文件系统的初始化
- 9.3.2 块设备文件系统的设计思路
- 9.4 块设备的打开流程
- 9.4.1 获取块设备对象
- 9.4.2 执行块设备的打开流程
- 9.5 本章小结
- 第10章 文件系统读写
- 10.1 page cache机制
- 10.1.1 buffer I/O和direct I/O
- 10.1.2 buffer head和块缓存
- 10.1.3 page cache的管理
- 10.1.4 page cache的状态
- 10.2 文件预读
- 10.3 文件锁
- 10.4 文件读过程代码分析
- 10.5 读过程返回
- 10.6 文件写过程代码分析
- 10.7 本章小结
- 第11章 通用块层和scsi层
- 11.1 块设备队列
- 11.1.1 scsi块设备队列处理函数
- 11.1.2 电梯算法和对象
- 11.2 硬盘HBA抽象层
- 11.3 I/O的顺序控制
- 11.4 I/O调度算法
- 11.4.1 noop调度算法
- 11.4.2 deadline调度算法
- 11.5 I/O的处理过程
- 11.5.1 I/O插入队列的过程分析
- 11.5.2 I/O出队列的过程分析
- 11.5.3 I/O返回路径
- 11.6 本章小结
- 第12章 内核回写机制
- 12.1 内核的触发条件
- 12.2 内核回写控制参数
- 12.3 定时器触发回写
- 12.3.1 启动定时器
- 12.3.2 执行回写操作
- 12.3.3 检查需要回写的页面
- 12.3.4 回写超级块内的inode
- 12.4 平衡写
- 12.4.1 检查直接回写的条件
- 12.4.2 回写系统脏页面的条件
- 12.4.3 检查计算机模式
- 12.5 本章小结
- 第13章 一个真实文件系统ext2
- 13.1 ext2的硬盘布局
- 13.2 ext2文件系统目录树
- 13.3 ext2文件内容管理
- 13.4 ext2文件系统读写
- 13.5 本章小结
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。