发表于2024-12-23
深入理解Linux驱动程序设计 pdf epub mobi txt 电子书 下载
随着物联网和人工智能的发展,Linux将更多地应用于嵌入式设备中,这对Linux内核中各种驱动的设计和实现也提出了更高的要求。Linux内核版本不断升级,其设备管理方式也发生变化,内核提供的设备管理的关键数据结构和函数也产生变化,尤其是随着新的硬件体系结构变化和新型外围设备的出现,内核设备管理也随之不断变化。本书基于新的Linux 3.8.13 内核,通过13章(包括Linux内核、驱动开发基础、驱动开发实例)内容,全面深入地论述了Linux设备驱动开发的全方位技术……。主要内容如下:
(1) Linux内核设备管理方式
(2) Linux驱动开发基础
(3) Linux字符设备驱动开发
(4) Linux内核中断机制
(5) Linux块设备驱动开发
(6) Linux网络设备驱动开发
(7) Linux MMC/SD驱动开发
(8) LinuxUSB驱动开发
(9) Linux I2C总线设备驱动
(10) Linux PCI总线设备驱动
(11) Linux输入设备驱动
(12) Linux Flash驱动开发
吴国伟 大连理工大学软件学院教授,博士生导师。长期讲授“操作系统”、“嵌入式操作系统”方面的课程,著有畅销图书《嵌入式操作系统应用开发》、《Linux内核分析与高级编程》和《嵌入式系统原理与设计》。
第1章Linux内核组成和机制
1.1Linux内核版本与发展
1.1.1Linux操作系统的诞生
1.1.2Linux内核版本的变迁
1.2Linux内核编译
1.2.1获取内核源码
1.2.2内核源码树
1.2.3编译内核
1.3Linux内核组成
1.4Linux内核机制
1.4.1内核启动过程
1.4.2模块机制
第2章Linux内核设备管理方式
2.1devfs设备文件系统
2.2sysfs文件系统
2.3udev设备文件系统
2.4主要数据结构
2.4.1kobject
2.4.2ktype
2.4.3kset
2.4.4三者关系
2.5热插拔设备管理机制
2.5.1热插拔事件流程
2.5.2涉及的模块
2.5.3关键驱动函数
第3章Linux驱动开发基础
3.1同步机制
3.1.1内核同步机制分类
3.1.2自旋锁与信号量的比较
3.2make及makefile
3.2.1makefile文件
3.2.2编写makefile文件
3.2.3make命令
3.3调试方法
3.3.1printk
3.3.2/proc文件系统
3.3.3调试器及相关工具
第4章Linux字符设备驱动开发
4.1关键数据结构
4.2接口函数部分内核代码分析
4.3字符设备驱动设计
4.3.1字符设备驱动设计场景描述
4.3.2字符设备驱动设计过程
第5章Linux内核中断机制
5.1中断
5.2中断处理
5.2.1注册中断处理程序
5.2.2编写中断处理程序
5.3中断上半部与下半部的对比
5.4中断下半部
5.5BH机制与任务队列机制
5.6软中断
5.6.1软中断的实现
5.6.2软中断的使用
5.7tasklet
5.7.1tasklet的实现
5.7.2tasklet的使用
5.8工作队列
5.8.1工作队列的实现
5.8.2工作队列的使用
第6章Linux块设备驱动开发
6.1块设备管理机制
6.1.1块设备基本概念
6.1.2块设备在Linux中的结构
6.2块设备关键数据结构
6.2.1gendisk数据结构
6.2.2block_device_operations数据结构
6.2.3request数据结构
6.2.4request_queue数据结构
6.2.5bio数据结构
6.3块设备驱动设计函数
6.3.1块设备驱动注册与注销函数
6.3.2块设备驱动打开与关闭函数
6.3.3块设备驱动ioctl、read和write函数
6.3.4块设备驱动的请求函数
6.4Ramdisk块设备驱动实例
6.4.1Ramdisk块设备驱动实例分析
6.4.2Ramdisk块设备驱动实例测试
第7章Linux网络设备驱动开发
7.1网络设备
7.1.1网络系统分层结构
7.1.2网络设备管理
7.2NAPI机制
7.3关键数据结构
7.4内核提供的网络设备驱动设计函数
7.4.1alloc_netdev
7.4.2register_netdev
7.4.3ether_setup
7.4.4unregister_netdev
7.5网络设备驱动开发实例
7.5.1snull_init_module函数
7.5.2snull_init函数
7.5.3相关操作函数
第8章Linux MMC/SD驱动开发
8.1MMC子系统基本架构
8.2关键数据结构
8.2.1基本数据结构
8.2.2基本数据结构主要成员及关系
8.3MMC/CD卡驱动实例
8.3.1MMC/SD卡设备驱动设计场景
8.3.2MMC/SD卡设备驱动实例实现
第9章Linux USB驱动开发
9.1USB设备管理机制
9.1.1USB与串口
9.1.2USB设备属性拓扑结构管理机制
9.1.3USB设备逻辑组织管理机制
9.2USB驱动关键数据结构分析
9.3USB设备驱动函数及其使用说明
9.3.1客户端驱动管理
9.3.2USB设备配置和管理
9.3.3主机控制器的管理
9.3.4协议控制命令集和数据传输管理
9.4USB设备驱动开发实例
9.4.1实例开发场景设计
9.4.2USB设备驱动开发实例的实现
9.4.3驱动测试分析
第10章Linux I2C总线设备驱动
10.1Linux总线驱动及I2C总线
10.1.1Linux总线驱动设计过程
10.1.2I2C总线的工作原理与应用
10.1.3总线基本操作
10.2Linux I2C体系结构
10.2.1Linux的I2C体系结构组成
10.2.2Linux I2C关键数据结构
10.3Linux I2C核心
10.4Linux I2C总线驱动
10.4.1I2C适配器驱动加载与卸载
10.4.2I2C总线通信方法
10.5Linux I2C设备驱动
10.5.1Linux I2C设备驱动模块加载与卸载
10.5.2Linux I2C设备驱动的数据传输
10.5.3Linux i2c�瞕ev.c文件分析
10.6Linux I2C驱动实例——EEPROM
10.6.1初始化
10.6.2探测设备
10.6.3检查适配器的功能
10.6.4访问设备
10.6.5其他函数
第11章Linux PCI总线设备驱动
11.1PCI总线设备
11.1.1PCI总线
11.1.2PCI设备
11.2PCI设备驱动结构
11.3PCI设备驱动实例
11.3.1PCI设备驱动程序基本框架
11.3.2初始化设备模块
11.3.3打开设备模块
11.3.4数据读写和控制信息模块
11.3.5中断处理模块
11.3.6释放设备模块
11.3.7卸载设备模块
第12章Linux输入设备驱动
12.1Linux输入子系统结构
12.2输入设备驱动核心数据结构分析
12.3Linux输入设备驱动实例
12.3.1输入设备驱动流程
12.3.2USB鼠标驱动编写实例
第13章Linux Flash驱动开发
13.1Flash存储器
13.2Linux MTD系统层次结构
13.3关键数据结构
13.3.1mtd_info结构体
13.3.2mtd_table结构体
13.3.3mtd_part结构体
13.3.4mtd_partition结构体
13.3.5map_info结构体
13.4驱动相关函数
13.4.1add_mtd_device函数
13.4.2del_mtd_device函数
13.4.3add_mtd_partitions函数
13.4.4del_mtd_partitions函数
13.4.5do_map_probe函数
13.5Nor型Flash驱动实例
13.5.1Nor型Flash驱动设计流程
13.5.2Nor型Flash驱动详细设计
13.6Nand型Flash驱动实例
13.6.1Nand型Flash设备驱动设计步骤
13.6.2Nand型Flash驱动实现
参考文献
Linux从1991年发布第一个版本到现在的3.19.3版,经过无数开发者的共同努力,内核日趋完善。Linux作为一种开源、跨平台的操作系统,受到了越来越多开发者的青睐。
随着物联网和人工智能的发展,Linux将更多地应用在嵌入式设备中,这对Linux内核中的驱动设计和实现也提出了更高的要求。现有的介绍Linux设备驱动开发的图书中,有的偏重于内核各模块的结构和原理的阐述,难以理解和掌握; 有的侧重Linux内核的部分特征及应用,缺少对Linux架构整体的介绍及系统原理的分析。基于这样的现状,编写此书供广大Linux爱好者参考。
本书结合Linux内核中各模块的原理及设备驱动实例,详细地介绍了Linux设备驱动开发的方法与实践。全书共分为13章,首先介绍了Linux操作系统的发展,然后针对Linux内核3.8.13全面介绍了Linux设备驱动开发,分析了各模块的Linux实现并给出了驱动开发实例。在介绍了Linux内核机制的基础上,着重论述块设备、网络设备、MMC/SD驱动、USB驱动、总线驱动及Flash驱动的开发。
全书各章均首先概要介绍各模块的实现原理,随后列举各模块中的关键数据结构,再结合源代码及实例分析介绍,让读者更全面地了解Linux驱动开发。
本书编写过程中参考了众多Linux开发者的研究成果和相关书籍,参考文献中无法一一列出,在此向他们致以谢意。书中实际案例,是诸多课程的研究生们在Linux 3.8.13版本下调试通过,在此一并表示感谢。本书的出版也离不开清华大学出版社的支 深入理解Linux驱动程序设计 电子书 下载 mobi epub pdf txt
呵呵,工作用的,学了涨工资
评分在书店看上了这本书一直想买可惜太贵又不打折,回家决定上京东看看,果然有折扣。毫不犹豫的买下了,京东速度果然非常快的,从配货到送货也很具体,快递非常好,很快收到书了。书的包装非常好,没有拆开过,非常新,可以说无论自己阅读家人阅读,收藏还是送人都特别有面子的说,特别精美;各种十分美好虽然看着书本看着相对简单,但也不遑多让,塑封都很完整封面和封底的设计、绘图都十分好画让我觉得十分细腻具有收藏价值。书的封套非常精致推荐大家购买。 打开书本,书装帧精美,纸张很干净,文字排版看起来非常舒服非常的惊喜,让人看得欲罢不能,每每捧起这本书的时候 似乎能够感觉到作者毫无保留的把作品呈现在我面前。 作业深入浅出的写作手法能让本人犹如身临其境一般,好似一杯美式咖啡,看似快餐,其实值得回味 无论男女老少,第一印象最重要。”从你留给别人的第一印象中,就可以让别人看出你是什么样的人。所以多读书可以让人感觉你知书答礼,颇有风度。 多读书,可以让你多增加一些课外知识。培根先生说过:“知识就是力量。”不错,多读书,增长了课外知识,可以让你感到浑身充满了一股力量。这种力量可以激励着你不断地前进,不断地成长。从书中,你往往可以发现自己身上的不足之处,使你不断地改正错误,摆正自己前进的方向。所以,书也是我们的良师益友。 多读书,可以让你变聪明,变得有智慧去战胜对手。书让你变得更聪明,你就可以勇敢地面对困难。让你用自己的方法来解决这个问题。这样,你又向你自己的人生道路上迈出了一步。 多读书,也能使你的心情便得快乐。读书也是一种休闲,一种娱乐的方式。读书可以调节身体的血管流动,使你身心健康。所以在书的海洋里遨游也是一种无限快乐的事情。用读书来为自己放松心情也是一种十分明智的。 读书能陶冶人的情操,给人知识和智慧。所以,我们应该多读书,为我们以后的人生道路打下好的、扎实的基础!读书养性,读书可以陶冶自己的性情,使自己温文尔雅,具有书卷气;读书破万卷,下笔如有神,多读书可以提高写作能力,写文章就才思敏捷;旧书不厌百回读,熟读深思子自知,读书可以提高理解能力,只要熟读深思,你就可以知道其中的道理了;读书可以使自己的知识得到积累,君子学以聚之。总之,爱好读书是好事。让我们都来读书吧。 其实读书有很多好处,就等有心人去慢慢发现. 最大的好处是可以让你有属于自己的本领靠自己生存。 最后在好评一下京东客服服务态度好,送货相当快,包装仔细!这个也值得赞美下 希望京东这样保持下去
评分好评,宝贝非常好,物美价廉,值得购买,物流也很快,服务也很好
评分正版书看起来字就清晰多了!!!!
评分深入理解Linux驱动程序设计
评分这年头,学了太多东西,但是总赚不来钱,sigh
评分好评,宝贝非常好,物美价廉,值得购买,物流也很快,服务也很好
评分不错~!
评分速度还挺快,内容还没看,不知道怎么样!
深入理解Linux驱动程序设计 pdf epub mobi txt 电子书 下载