kindle电子书

资源下载,尽在我的书库!
首页 > kindle电子书库 > 工业|计算机|互联网 > 电子、计算机、网络

Linux内核探秘:深入解析文件系统和设备驱动的架构与设计

  • 作者:[中] 高剑林
  • 体积:1.13 MB
  • 语言:中文
  • 日期:2017-05-26
  • 推荐:

简介:《linux内核探秘:深入解析文件系统和设备驱动的架构与设计》从工业需求角度出发,注重效率和实用性,是帮助内核研发及调试、驱动开发等领域工程师正确认识并高效利用linux内核的难得佳作!作者是腾讯公司资深的linux内核专家和存储系统专家,在该领域工作和研究的10余年间,面试了数百位linux内核工程师,深知学习linux内核过程中经常遇到的困惑,以及在工作中容易犯的错误。基于这些原因作者撰写了《linux内核探秘:深入解析文件系统和设备驱动的架构与设计》。《linux内核探秘:深入解析文件系统和设备驱动的架构与设计》出发点和写作方式可谓独辟蹊径,将linux内核分为两个维度,一是基础部分和应用部分,二是内核架构和内核实现,将两个维有机统一,深入分析了linux内核的文件系统、设备驱动的架构设计与实现原理。

电子书详细介绍

 《Linux内核探秘:深入解析文件系统和设备驱动的架构与设计》从工业需求角度出发,注重效率和实用性,是帮助内核研发及调试、驱动开发等领域工程师正确认识并高效利用Linux内核的难得佳作!作者是腾讯公司资深的Linux内核专家和存储系统专家,在该领域工作和研究的10余年间,面试了数百位Linux内核工程师,深知学习Linux内核过程中经常遇到的困惑,以及在工作中容易犯的错误。基于这些原因作者撰写了《Linux内核探秘:深入解析文件系统和设备驱动的架构与设计》。《Linux内核探秘:深入解析文件系统和设备驱动的架构与设计》出发点和写作方式可谓独辟蹊径,将Linux内核分为两个维度,一是基础部分和应用部分,二是内核架构和内核实现,将两个维有机统一,深入分析了Linux内核的文件系统、设备驱动的架构设计与实现原理。
全书在逻辑上分为三部分:第一部分(第1~2章)首先将内核层划分为基础层和应用层,讲解了基础层包含的服务和数据结构,以及应用层包含的各种功能,然后对文件系统的架构进行了提纲挈领的介绍,为读者学习后面的知识打下基础;第二部分(第3~9章)从设备到总线到驱动,逐步深入,剖析了设备的总体架构、为设备服务的特殊文件系统sysfs、字符设备和input设备、platform总线、serio总线、PCI总线、块设备的实现原理和工作机制;第三部分(第10~13章)对文件系统的读写机制进行了深入分析,最后通过一个真实文件系统ext2,复习本书所有知识点。

作者简介

高剑林,资深Linux内核专家、存储系统专家、嵌入式系统专家。先后就职于华为、UT斯达康、赛门铁克等公司,从事路由器设备研发、软件开发和存储系统研究相关的工作10余年,经验非常丰富。现就职于腾讯,负责存储系统的开发和研究。

目录

前言 
第1章 内核的基础层和应用层1 
1.1内核基础层提供的服务1 
1.1.1内核中使用内存2 
1.1.2内核中的任务调度2 
1.1.3软中断和tasklet3 
1.1.4工作队列4 
1.1.5自旋锁5 
1.1.6内核信号量5 
1.1.7原子变量5 
1.2内核基础层的数据结构6 
1.2.1双向链表6 
1.2.2hash链表6 
1.2.3单向链表7 
1.2.4红黑树7 
1.2.5radix树7 
1.3内核应用层8 
1.4从Linux内核源码结构纵览内核9 
1.5内核学习和应用的四个阶段10 
1.6本章小结11 
第2章 文件系统12 
2.1文件系统的基本概念12 
2.1.1什么是VFS13 
2.1.2超级块super_block13 
2.1.3目录项dentry14 
2.1.4索引节点inode15 
2.1.5文件17 
2.2文件系统的架构17 
2.2.1超级块作用分析17 
2.2.2dentry作用分析18 
2.2.3inode作用分析20 
2.2.4文件作用分析21 
2.3从代码层次深入分析文件系统21 
2.3.1一个最简单的文件系统aufs22 
2.3.2文件系统如何管理目录和文件26 
2.3.3文件系统的挂载过程38 
2.3.4文件打开的代码分析42 
2.4本章小结59 
第3章 设备的概念和总体架构60 
3.1设备的配置表60 
3.2访问设备寄存器和设备内存61 
3.3设备中断和DMA61 
3.4总线对设备的扫描62 
3.5设备驱动管理62 
3.6本章小结62 
第4章 为设备服务的特殊文件系统sysfs63 
4.1文件和目录的创建63 
4.1.1sysfs文件系统的初始化64 
4.1.2sysfs文件系统目录的创建64 
4.1.3普通文件的创建68 
4.2sysfs文件的打开操作69 
4.2.1real_lookup函数详解70 
4.2.2为文件创建inode结构70 
4.2.3为dentry结构绑定属性71 
4.2.4调用文件系统中的open函数72 
4.3sysfs文件的读写74 
4.3.1读文件的过程分析74 
4.3.2写文件的过程分析75 
4.4kobject结构76 
4.4.1kobject和kset的关系76 
4.4.2kobject实例:总线的注册77 
4.5本章小结79 
第5章 字符设备和input设备80 
5.1文件如何变成设备80 
5.1.1init_special_inode函数80 
5.1.2def_chr_fops结构81 
5.2input设备的注册82 
5.2.1主从设备号83 
5.2.2把input设备注册到系统84 
5.2.3设备区间的登记85 
5.2.4注册字符设备86 
5.2.5打开input设备87 
5.3input设备架构88 
5.3.1注册input设备的驱动88 
5.3.2匹配input管理的设备和驱动89 
5.3.3注册input设备90 
5.4本章小结92 
第6章 platform总线93 
6.1从驱动发现设备的过程93 
6.1.1驱动的初始化93 
6.1.2注册驱动94 
6.1.3为总线增加一个驱动95 
6.1.4驱动加载95 
6.1.5遍历总线上已经挂载的设备96 
6.2从设备找到驱动的过程98 
6.2.1注册设备和总线类型98 
6.2.2注册设备的资源99 
6.2.3增加一个设备对象100 
6.3本章小结102 
第7章 serio总线103 
7.1什么是总线适配器103 
7.2向serio总线注册设备103 
7.2.1注册端口登记事件104 
7.2.2遍历总线的驱动106 
7.2.3注册input设备109 
7.3虚拟键盘驱动110 
7.3.1键盘驱动的初始化110 
7.3.2与设备建立连接111 
7.3.3启动键盘设备111 
7.3.4输入设备和主机系统之间的事件112 
7.4键盘中断112 
7.4.1q40kbd设备的中断处理113 
7.4.2serio总线的中断处理113 
7.4.3驱动提供的中断处理113 
7.5本章小结116 
第8章 PCI总线117 
8.1深入理解PCI总线117 
8.1.1PCI设备工作原理117 
8.1.2PCI总线域118 
8.1.3PCI资源管理118 
8.1.4PCI配置空间读取和设置119 
8.2PCI设备扫描过程120 
8.2.1扫描0号总线120 
8.2.2扫描总线上的PCI设备121 
8.2.3扫描多功能设备124 
8.2.4扫描单个设备125 
8.2.5扫描设备信息125 
8.3本章小结128 
第9章 块设备129 
9.1块设备的架构129 
9.1.1块设备、磁盘对象和队列129 
9.1.2块设备和通用磁盘对象的绑定130 
9.1.3块设备的队列和队列处理函数131 
9.2块设备创建的过程分析132 
9.2.1nbd驱动的初始化132 
9.2.2为通用磁盘对象创建队列成员133 
9.2.3将通用磁盘对象加入系统134 
9.3块设备文件系统135 
9.3.1块设备文件系统的初始化135 
9.3.2块设备文件系统的设计思路136 
9.4块设备的打开流程136 
9.4.1获取块设备对象137 
9.4.2执行块设备的打开流程140 
9.5本章小结142 
第10章 文件系统读写143 
10.1pagecache机制143 
10.1.1bufferI/O和directI/O143 
10.1.2bufferhead和块缓存143 
10.1.3pagecache的管理144 
10.1.4pagecache的状态145 
10.2文件预读146 
10.3文件锁146 
10.4文件读过程代码分析147 
10.5读过程返回161 
10.6文件写过程代码分析162 
10.7本章小结169 
第11章 通用块层和scsi层170 
11.1块设备队列170 
11.1.1scsi块设备队列处理函数170 
11.1.2电梯算法和对象171 
11.2硬盘HBA抽象层172 
11.3I/O的顺序控制173 
11.4I/O调度算法173 
11.4.1noop调度算法173 
11.4.2deadline调度算法174 
11.5I/O的处理过程178 
11.5.1I/O插入队列的过程分析178 
11.5.2I/O出队列的过程分析186 
11.5.3I/O返回路径194 
11.6本章小结203 
第12章 内核回写机制204 
12.1内核的触发条件204 
12.2内核回写控制参数204 
12.3定时器触发回写205 
12.3.1启动定时器205 
12.3.2执行回写操作207 
12.3.3检查需要回写的页面208 
12.3.4回写超级块内的inode209 
12.4平衡写213 
12.4.1检查直接回写的条件214 
12.4.2回写系统脏页面的条件215 
12.4.3检查计算机模式216 
12.5本章小结216 
第13章 一个真实文件系统ext2217 
13.1ext2的硬盘布局217 
13.2ext2文件系统目录树218 
13.3ext2文件内容管理219 
13.4ext2文件系统读写219 
13.5本章小结219

我来说两句

本书评论

共有 0 条评论
图书分类
我的书库手机端
帮助中心
会员登录 ×
新用户注册 ×