《精通Linux设备驱动程序开发》——导读

简介: 在Linux内核源代码树提供的各个子系统中,drivers/目录是其中最大的一个分支,它比其他子系统大数倍。随着各种新技术的广泛应用,内核中新的设备驱动程序的开发工作正在稳步加速。最新的Linux内核支持多达70余种设备驱动程序。
+关注继续查看


screenshot


**
前言
**
20世纪90年代末,我们IBM的一群同事将Linux内核移植到了一种智能手表上。目标设备虽然微不足道,但是移植Linux的任务却相当艰巨。在当时,内核中还不存在MTD(Memory Technology Device,内存技术设备)子系统,这意味着为了让文件系统能够运行在这种手表的闪存中,我们不得不从头开发必要的存储驱动程序。由于当时内核的输入事件驱动程序接口尚未诞生,因此手表的触摸屏与用户应用程序的接口非常复杂。让X Windows运行在手表的LCD上十分困难,因为X Windows和帧缓冲设备驱动程序搭配得并不好。如果你戴着一块防水的Linux智能手表,却不能躺在浴缸里实时获得股票行情,那么这块手表还有什么用呢?Linux几年前就已集成了蓝牙技术,而当时我们却花费了数月的时间将一种专有的蓝牙协议栈移植到手表上,从而使得这种手表可以联上因特网。电源管理系统虽然只能从手表的电池中多“榨出”短短几个小时时间,但也算够意思了;实际上,为了解决这个棘手的问题,我们也没少花心思。那时候,Linux红外项目Linux-Infrared还不稳定,而为了使用红外键盘输入数据,我们不得不与其协议栈小心翼翼地周旋。最后,由于当时还没有能应用于消费类电子产品的成型的编译器发行版,我们也只能自己编个编译器,并交叉编译出一个紧凑的应用程序集。

时光飞逝,当年的小企鹅已经成长为一名健壮的少年。过去我们编写了成千上万行代码并耗时一年完成的任务,若采用现在的内核,只需要几天就可以完成。但是,要成为一名能巧妙地解决多种问题的高级内核工程师,就必须理解今天的Linux内核提供的各种功能和设施。
在Linux内核源代码树提供的各个子系统中,drivers/目录是其中最大的一个分支,它比其他子系统大数倍。随着各种新技术的广泛应用,内核中新的设备驱动程序的开发工作正在稳步加速。最新的Linux内核支持多达70余种设备驱动程序。

本书主要讲解如何编写Linux设备驱动程序,介绍了目前内核所支持的主要设备类型的设计与开发,其中包括当年我在将Linux移植到手表中时未遇到的设备。本书在讲解每类设备驱动程序的时候,都会先介绍与该驱动程序相关的技术,接着给出一个实际的开发例子,最后列出相关的内核源代码文件。在介绍Linux设备驱动程序之前,本书先介绍了内核以及Linux 2.6的重要特性,重点介绍了设备驱动程序编写者感兴趣的内核知识。

目录

**[第1章 引言
1.1 演进](https://yq.aliyun.com/articles/98940)**
1.2 GNU Copyleft
1.3 kernel.org
1.4 邮件列表和论坛
1.5 Linux发行版
1.6 查看源代码
1.7 编译内核
1.8 可加载的模块
1.9 整装待发

相关文章
|
15天前
|
算法 Linux C语言
Linux驱动IO篇——ioctl设备操作
Linux驱动IO篇——ioctl设备操作
|
25天前
|
Linux
Linux驱动入门(6.0)--- Linux驱动与设备的匹配规则
Linux驱动入门(6.0)--- Linux驱动与设备的匹配规则
18 0
|
1月前
|
Linux
7.4.2 【Linux】特殊设备 loop 挂载 (镜像文件不烧录就挂载使用)
7.4.2 【Linux】特殊设备 loop 挂载 (镜像文件不烧录就挂载使用)
26 0
|
2月前
|
存储 固态存储 Linux
通过Linux设备映射器使用持久内存设备
通过Linux设备映射器使用持久内存设备
32 0
|
2月前
|
Linux Docker 容器
宿主机上docker0 Linux 网桥设备是怎么来的?
在默认安装情况下, Docker 会在宿主机上创建一个名为 docker0 的 Linux 网桥设备。该网桥设备拥有一个私有网络地址及其所属子网。
23 0
|
3月前
|
存储 Linux 开发者
【Linux学习笔记】设备驱动模型详解——总线、设备、驱动和类
设备驱动是计算机系统中的重要组成部分,它们允许操作系统与硬件交互。设备驱动模型是一种通用的抽象框架,用于描述操作系统如何管理硬件设备。这里我们将介绍设备驱动模型中的四个关键概念:总线、设备、驱动和类。
143 0
|
4月前
|
Linux 芯片
Linux驱动分析之SPI设备
前面我们对SPI控制器驱动进行了分析,接下来来分析SPI设备驱动。我们以DS1302驱动作为分析对象。DS1302是一款RTC芯片,估计很多人在学单片机时用到过。RTC芯片算是比较简单的,也方便分析理解。
Linux驱动分析之SPI设备
|
7月前
|
存储 安全 Linux
Linux USB 设备基础理论
通过扫描以下目录获取物理节点所有 USB 设备:
114 0
|
7月前
|
Linux
Linux 平台设备platform
Linux 平台设备platform
|
8月前
|
算法 Linux 调度
内核笔记](八)——Linux 设备管理机制
内核笔记](八)——Linux 设备管理机制
262 0
内核笔记](八)——Linux 设备管理机制
相关产品
云迁移中心
推荐文章
更多