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


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 整装待发

2016年,精通Linux设备驱动程序开发是一项非常重要的技能。随着Linux系统的广泛应用,设备驱动程序的需求也越来越大。精通Linux设备驱动程序开发意味着具备了深入理解Linux内核的能力,并能够编写和优化设备驱动程序。 在2016年,有一些重要的发展趋势使得精通Linux设备驱动程序开发变得尤为重要。首先是物联网的发展,各种设备都需要与Linux系统进行连接和通信,这就需要有大量的驱动程序来支持。其次是虚拟化和云计算技术的迅速发展,这就要求设备驱动程序具备高性能和可扩展性。 此外,2016年也是Linux社区不断迭代和更新的一年。内核版本的升级和新的驱动程序框架的引入都对驱动程序开发者提出了更高的要求。因此,精通Linux设备驱动程序开发,意味着必须不断学习和适应这些新的变化。 在精通Linux设备驱动程序开发的过程中,需要具备深入理解Linux内核和设备驱动程序实现的知识。熟悉Linux内核的架构和调度机制,掌握设备驱动程序的编写和调试技巧,以及了解新的驱动程序框架和工具都是必不可少的。 总而言之,精通Linux设备驱动程序开发是一项非常有价值的技能,在2016年更是如此。具备这项技能可以为个人带来更广阔的职业发展机会,也可以为企业带来更高的竞争力和创新能力。因此,不论是对个人还是对整个行业而言,精通Linux设备驱动程序开发都具有重要的意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值