前言

时至今日,Linux操作系统充分展现了其跨平台、开源、支持众多应用软件和网络协议等优点,已经成为应用最广泛的开发平台。

在这部贴近实战、实例丰富的著作中,享誉世界的L inux驱动程序开发大师将与你面对面,系统深入地阐述如何为各种设备开发可靠的驱动程序。在回顾了驱动程序开发的各种基础知识和最新的Linux 2.6内核相关特性之后,作者不仅讲述了其他设备驱动程序图书中都会涉及的较容易的内容,更迎难而上,深入探讨了包括嵌入式Linux开发在内的驱动程序开发中必须面对的难点,比如PCMCIA、USB、I2C、视频、音频、内存、无线通信等,揭示了许多技术内幕。对每种驱动程序,书中除了剖析关键技术,还带你查看相关的内核源代码,提供完整的实例。

 

Srekrishnan Venkateswaran世 界顶级Linux开发技术专家。在IBM工作多年,有丰富的嵌入式L inux和驱动程序开发经验,曾将Linux移植到了手表、音乐播放器、VolP电话、心脏起搏器以及远程门诊监控系统等设备上。目前是IBM印度公司的嵌入式解决方案组负责人。他曾担任Linux Magazine的特邀编辑,主持内核技术专栏。

 

各章概述

第1章引言,简单介绍了Linux系统,讲解了下载内核源代码、进行小的代码修改以及建立可启动的Linux内核映像。

 

第2章内核,引导读者轻松地进入Linux内核的内部结构,讲解了一些必要的内核概念。首先讲述了内核的启动进程,接下来描述了与驱动程序开发相关的内核API,譬如内核定时器、并发管理以及内存分配等。

 

第3章内核组件,讲解了对驱动程序开发有用的一系列内核API。首先介绍了内核线程(它提供了一种在内核空间运行后台任务的能力),接下来讲解了一系列的辅助API(如链表、工作队列、完成函数、通知链等)。这些辅助API能简化代码,剔除内核中的冗余,有助于内核的长期维护

 

第4章基本概念,为掌握Linux设备驱动程序开发艺术打基础。这一章首先呈现 一般的PC兼容系统和嵌入式设备的体系结构的鸟瞰图,介绍了设备和驱动程序,并讲解了中断处理和内核设备模型等基本的驱动程序概念。

 

第5章字符设备驱动程序,介绍了Linux字符设备驱动程序的体系架构,引入了几个新概念,譬如轮询、异步通知.和I/O控制等。由于本书后面介绍的大多数设备都可以看作“超级”字符设备,所以这些概念也与后续章节密切相关。

 

第6章串行设备驱动程序,讲解了内核串行设备驱动程序的层次结构。

 

第7章输入设备驱动程序,讨论了内核中为键盘、鼠标和触摸屏控制器等输入设备服务的输入子系统。

 

第8章IC²协议,讲解了通过IC总线或SMBus总线与系统连接的设备( 如EEPROM)的驱动程序,同时也介绍了SPI总线和1 wire总线等其他串行接口。

 

第9章PCMCIA 和CF,分析了PCMCIA子系统,讲授了如何编写含PCMCIA或CF组件的设备的驱动程序。

 

第10章PCI,描述了内核对PCI及其衍生总线设备的支持。

 

第11章USB,探讨了USB的体系架构,并讲解了如何利用Linux内核USB子系统的API来开发USB设备驱动程序。

 

第12章视频驱动程序,讲解了Linux视频子系统,分析了内核提供的帧缓冲结构的优点,并给出了帧缓冲设备驱动程序的编写方法。

 

第13章音频驱动程序 ,描述了Linux音频子系统的架构,并给出了音频设备驱动程序的实现方法。

 

第14章块设备驱动程序,集中描述存储设备( 如硬盘)的驱动程序,并介绍Linux块子系统所支持的几种不同的I/O调度策略。

 

第15章网络接口卡,分析了网络设备驱动程序,介绍内核中与网络相关的数据结构以及网络设备驱动程序与协议层接口的实现方法。

 

第16章Linux 无线设备驱动,描述了各种无线网络设备的驱动程序,如蓝牙、红外、无线局域网WiFi和蜂窝通信等。

 

第17章存储技术设备,讲解了如何让闪存在嵌入式设备上运行起来,这一章最后讲解了PC上的FWH(FirmWare Hub,固件集线器)的驱动程序。

 

第18章嵌入式 Linux,介绍了嵌入式Linux,包括嵌入式设备中的引导装入程序、内核以及设备驱动程序等主要的固件组成。由于Linux在嵌入式领域越来越受欢迎,本书中介绍的Linux驱动程序开发技能极有可能应用于嵌入式领域。

 

第19章用户空间的驱动程序,讲解了如何在用户空间驱动各种设备。-些设备驱动程序(尤其是那些重策略、轻性能的设备)更适合在用户空间被驱动。这一-章也分析了Linux进程调度对用户空间设备驱动程序响应时间的影响。

 

第20章其他设备和驱动程序,描述了之前尚未论及的设备驱动程序系统,如错误侦测和校验(EDAC)、火线接口以及ACPI等。

 

第21章调试设备驱动程序,第21章讲解了用来调试Linux内核代码的各种调试工具,包括跟踪工具、内核探测器、崩溃转储和性能剖析器的使用方法。在开发Linux驱动程序的时候就可用到本章所学的驱动调试技能。

 

第22章维护与发布,给出了设备驱动程序软件开发生命周期的概况。

 

第22章结束语,给出 了当开始进行一个新设备驱动程序开发工作时,应该查验的工作项目清单。本书最后是对“下一步该做什么” 的思考。

 

这份【精通LINUX设备驱动程序开发】共有484页,因为内容实在是太多了,咱们在这里就不做过多的介绍啦,需要完整版的朋友,可以转发此文关注小编,