精通Linux 驱动程序开发(英文影印版)(目前最全面深入的Linux设备驱动程序著作)
基本信息
- 原书名: Essential Linux Device Drivers
- 原出版社: Prentice Hall PTR
- 作者: (印)Sreekrishnan Venkateswaran [作译者介绍]
- 丛书名: 图灵程序设计丛书 操作系统
- 出版社:人民邮电出版社
- ISBN:9787115206473
- 上架时间:2009-5-25
- 出版日期:2009 年4月
- 开本:16开
- 页码:714
- 版次:1-1
- 所属分类:
计算机 > 操作系统 > Linux
编辑推荐
目前最全面深入的Linux设备驱动程序著作.
世界级Linux技术大师力作..
大量技术内幕首次公开...
内容简介回到顶部↑
书籍
计算机书籍
时至今日,linux操作系统以其跨平台、开源、支持众多应用软件和网络协议等优点,已经成为应用最广泛的开发平台。.
在这部贴近实战、实例丰富的著作中,世界上经验最丰富的linux驱动程序开发者之一系统全面地阐述了如何为各种设备开发可靠的驱动程序。在回顾了驱动开发的各种基础知识和最新的linux 2.6内核相关特性之后,作者不仅讲述了其他设备驱动程序图书中都会涉及的较容易的内容,更迎难而上,深入探讨了驱动开发包括嵌入式linux开发中必须面对的难点,比如pcmcia、usb、i2c、视频、音频、闪存、无线通信等,揭示了许多内幕技术的秘密。对每种驱动程序,书中在剖析关键技术之外,还带你查看相关的内核源代码,提供完整的实例。..
本书适合中高级linux 开发人员阅读。...
计算机书籍
时至今日,linux操作系统以其跨平台、开源、支持众多应用软件和网络协议等优点,已经成为应用最广泛的开发平台。.
在这部贴近实战、实例丰富的著作中,世界上经验最丰富的linux驱动程序开发者之一系统全面地阐述了如何为各种设备开发可靠的驱动程序。在回顾了驱动开发的各种基础知识和最新的linux 2.6内核相关特性之后,作者不仅讲述了其他设备驱动程序图书中都会涉及的较容易的内容,更迎难而上,深入探讨了驱动开发包括嵌入式linux开发中必须面对的难点,比如pcmcia、usb、i2c、视频、音频、闪存、无线通信等,揭示了许多内幕技术的秘密。对每种驱动程序,书中在剖析关键技术之外,还带你查看相关的内核源代码,提供完整的实例。..
本书适合中高级linux 开发人员阅读。...
作译者回到顶部↑
本书提供作译者介绍
Sreekrishnan Venkateswaran 世界顶级Linux开发技术专家。在IBM工作多年,有丰富的嵌入式Linux和驱动程序开发经验,曾经将Linux移植到了手表、音乐播放器、VoIP电话、心脏起搏器以及远程门诊监控系统等各种设备上。目前负责IBM印度公司的嵌入式解决方案组。他曾担任Linux Magazine的特邀编辑,主持内核技术专栏作。...
.. << 查看详细
.. << 查看详细
目录回到顶部↑
chapter 1 introduction . 1
evolution 2
the gnu copyleft 3
kernel.org 4
mailing lists and forums 4
linux distributions 5
looking at the sources 6
building the kernel 10
loadable modules 12
before starting 14
chapter 2 a peek inside the
kernel 17
booting up 18
kernel mode and user mode 30
process context and interrupt context 30
kernel timers 31
hz and jiffies 31
long delays 33
short delays 36
pentium time stamp counter 36
evolution 2
the gnu copyleft 3
kernel.org 4
mailing lists and forums 4
linux distributions 5
looking at the sources 6
building the kernel 10
loadable modules 12
before starting 14
chapter 2 a peek inside the
kernel 17
booting up 18
kernel mode and user mode 30
process context and interrupt context 30
kernel timers 31
hz and jiffies 31
long delays 33
short delays 36
pentium time stamp counter 36
前言回到顶部↑
20世纪90年代末,我们IBM的一群同事进行了一项将Linux内核移植到一种智能手表上的工作。目标设备虽然微不足道,但是移植Linux的任务却相当艰巨。在当时,内核中还不存在MTD(Memory Technology Device,内存技术设备)子系统,这意味着在文件系统能够运行在这种手表的闪存之前,我们不得不从头开发必要的存储驱动器。由于当时内核的输入事件驱动接口尚未诞生,因此手表的触摸屏与用户应用程序的接口非常复杂。让X Windows运行在手表的LCD上十分困难,因为X Windows和帧缓冲设备驱动程序搭配得并不好。如果你戴着一块防水的Linux智能手表,却不能躺在浴缸里实时获得股票行情,那么这块手表还有什么用?Linux几年前就已集成了蓝牙技术,而当时我们却花费了数月的时间将一种专有的蓝牙协议栈移植到手表上,从而使得这种手表具备了Internet连网能力。电源管理系统可以让这种手表的电池多运行几个小时,因此我们又设计了一个省电方案。那时候,Linux红外项目Linux-Infrared还不稳定,我们十分小心地用红外协议栈,设计出使用红外键盘作为手表的数据输入设备。最后,由于当时还没有能应用于消费类电子产品的成型的编译器发行版,我们也不得不编译出编译器,并交叉编译出一个紧凑的应用程序集。.
时光飞逝,当年嗷嗷待哺的企鹅宝宝已经成长为一名健壮的少年。过去我们编写了成千上万行代码并耗时一年完成的任务,若采用现在的内核,只需要几天的时间就可以完成。但是,要成为一名能巧妙地解决多种问题的高级内核工程师,你需要理解今天的Linux内核提供的各种功能和设施。
关于本书
在Linux内核源代码树提供的各个子系统中,drivers/目录是其中最大的一个分支,它比其他子系统大数倍。随着各种新技术的广泛应用,内核中新的设备驱动程序的开发工作正在稳步加速。最新的Linux内核支持多达70余种设备驱动程序的庞大家族。
本书主要讲解Linux设备驱动程序,介绍了目前内核所支持的主要设备类型的设计与开发,其中包括当年我在开发Linux-on-Watch项目时未遇到的设备。本书在讲解每种设备驱动程序家族的时候,先介绍与该驱动程序相关的技术,接着给出一个实际的开发例子,最后列出相关的内核源代码文件。在踏入Linux设备驱动程序领域之前,本书先介绍了内核以及Linux 2.6的重要特性,重点讲解了设备驱动程序编写者感兴趣的内核知识。
读者对象
本书面向渴望在Linux内核上开发新设备驱动程序的中级程序员。要阅读本书,你需要具备操作系统相关的基本概念。比如,要知道什么是系统调用,理解为什么在内核开发中需要关注并发问题。本书假定你已经下载了Linux,浏览过Linux内核源代码,并至少浏览过一些相关的文档。另外,你必须能非常熟练地使用C语言。
各章概述
前4章为你阅读本书剩余部分打下了基础,接下来的16章讨论了不同的Linux设备驱动程序家族,之后的第21章描述了设备驱动程序的调试技术,第22章讲解了维护和交付设备驱动程序的相关事宜,最后一章给出了当你接到一个新设备驱动程序开发任务的时候,要首先查验的项目清单。
第1章带你走入Linux的世界。这一章教你下载内核源代码、进行小的代码修改并建立可启动的Linux内核映像。
第2章引导读者轻松地进入Linux内核的内部结构,讲解一些必要的内核概念。这一章首先讲述了内核的启动进程,接下来描述了与驱动程序开发相关的内核API,譬如内核定时器、并发管理以及内存分配等。
第3章讲解了对驱动程序开发有用的一系列内核API。这一章首先介绍了内核线程(它提供了一种在内核空间运行后台任务的能力),接下来讲解了一系列的辅助API(如链表、工作队列、完成函数、通知链等)。这些辅助API能简化代码、剔除内核中的冗余并有助于内核的长期维护。
第4章为你打下驾驭Linux设备驱动程序开发艺术的基础。这一章通过呈现一般的PC兼容系统和嵌入式设备的体系结构的鸟瞰图介绍了设备和驱动程序,并讲解了中断处理和内核设备模型等基本的驱动程序概念。..
第5章介绍了Linux字符设备驱动程序的体系结构。这一章引入了几个新概念,譬如轮询、异步通知和I/O控制等。由于本书后面介绍的大多数设备都可以看作“超级”字符设备,所以这些概念也与后续章节密切相关。
第6章讲解了内核串口设备驱动程序的层次结构。
第7章讨论了内核中为键盘、鼠标和触摸屏控制器等输入设备服务的输入子系统。
第8章讲解了通过I2C总线或SMBus总线与系统连接的设备(如EEPROM)的驱动程序。同时,这一章也介绍了SPI总线和1-wire总线等其他串行接口。
第9章分析了PCMCIA子系统。这一章将教会你如何编写含PCMCIA或Compact Flash组件的设备的驱动程序。
第10章描述了内核对PCI及其衍生总线设备的支持。
第11章探讨了USB的体系结构,并讲解了如何利用Linux内核USB子系统的API来开发USB设备驱动程序。
时光飞逝,当年嗷嗷待哺的企鹅宝宝已经成长为一名健壮的少年。过去我们编写了成千上万行代码并耗时一年完成的任务,若采用现在的内核,只需要几天的时间就可以完成。但是,要成为一名能巧妙地解决多种问题的高级内核工程师,你需要理解今天的Linux内核提供的各种功能和设施。
关于本书
在Linux内核源代码树提供的各个子系统中,drivers/目录是其中最大的一个分支,它比其他子系统大数倍。随着各种新技术的广泛应用,内核中新的设备驱动程序的开发工作正在稳步加速。最新的Linux内核支持多达70余种设备驱动程序的庞大家族。
本书主要讲解Linux设备驱动程序,介绍了目前内核所支持的主要设备类型的设计与开发,其中包括当年我在开发Linux-on-Watch项目时未遇到的设备。本书在讲解每种设备驱动程序家族的时候,先介绍与该驱动程序相关的技术,接着给出一个实际的开发例子,最后列出相关的内核源代码文件。在踏入Linux设备驱动程序领域之前,本书先介绍了内核以及Linux 2.6的重要特性,重点讲解了设备驱动程序编写者感兴趣的内核知识。
读者对象
本书面向渴望在Linux内核上开发新设备驱动程序的中级程序员。要阅读本书,你需要具备操作系统相关的基本概念。比如,要知道什么是系统调用,理解为什么在内核开发中需要关注并发问题。本书假定你已经下载了Linux,浏览过Linux内核源代码,并至少浏览过一些相关的文档。另外,你必须能非常熟练地使用C语言。
各章概述
前4章为你阅读本书剩余部分打下了基础,接下来的16章讨论了不同的Linux设备驱动程序家族,之后的第21章描述了设备驱动程序的调试技术,第22章讲解了维护和交付设备驱动程序的相关事宜,最后一章给出了当你接到一个新设备驱动程序开发任务的时候,要首先查验的项目清单。
第1章带你走入Linux的世界。这一章教你下载内核源代码、进行小的代码修改并建立可启动的Linux内核映像。
第2章引导读者轻松地进入Linux内核的内部结构,讲解一些必要的内核概念。这一章首先讲述了内核的启动进程,接下来描述了与驱动程序开发相关的内核API,譬如内核定时器、并发管理以及内存分配等。
第3章讲解了对驱动程序开发有用的一系列内核API。这一章首先介绍了内核线程(它提供了一种在内核空间运行后台任务的能力),接下来讲解了一系列的辅助API(如链表、工作队列、完成函数、通知链等)。这些辅助API能简化代码、剔除内核中的冗余并有助于内核的长期维护。
第4章为你打下驾驭Linux设备驱动程序开发艺术的基础。这一章通过呈现一般的PC兼容系统和嵌入式设备的体系结构的鸟瞰图介绍了设备和驱动程序,并讲解了中断处理和内核设备模型等基本的驱动程序概念。..
第5章介绍了Linux字符设备驱动程序的体系结构。这一章引入了几个新概念,譬如轮询、异步通知和I/O控制等。由于本书后面介绍的大多数设备都可以看作“超级”字符设备,所以这些概念也与后续章节密切相关。
第6章讲解了内核串口设备驱动程序的层次结构。
第7章讨论了内核中为键盘、鼠标和触摸屏控制器等输入设备服务的输入子系统。
第8章讲解了通过I2C总线或SMBus总线与系统连接的设备(如EEPROM)的驱动程序。同时,这一章也介绍了SPI总线和1-wire总线等其他串行接口。
第9章分析了PCMCIA子系统。这一章将教会你如何编写含PCMCIA或Compact Flash组件的设备的驱动程序。
第10章描述了内核对PCI及其衍生总线设备的支持。
第11章探讨了USB的体系结构,并讲解了如何利用Linux内核USB子系统的API来开发USB设备驱动程序。
序言回到顶部↑
拿到这本书,你也许会问自己:为什么还要另一本Linux设备驱动程序的书呢?这样的书不是已经有一堆了吗?.
答案是:相对于其他图书,本书是一个巨大的飞跃。
首先,本书与时俱进,基于最新的2.6内核进行讲解。其次,也是更重要的,本书对驱动程序的讲解非常透彻。大多数设备驱动程序的图书仅仅讲解标准Unix内核图书或操作系统图书中论述的主题,譬如串口、磁盘驱动和文件系统等,如果你运气好,它可能也会讲解网络协议栈。
本书前进了一大步,它没有避重就轻,而是知难而上,探讨了在现代PC和嵌入式系统中必须面对的难点,比如PCMCIA、USB、I2C、视频、音频、闪存、无线通信等。你可以这样定位这本书:Linux内核包含了什么,这本书就会告诉你什么。..
它毫无遗漏,应有尽有,不留死角。
进而,本书的作者赢得了他的荣耀:读到他在20世纪90年代末期就将Linux移植到某种智能手表上的故事就像在进行一次惊险的奇幻之旅。
本书能成为Prentice Hall出版社开源软件开发系列图书中的一本,我感到非常兴奋。在开源领域发生这样的事情,令人振奋,它将成为开源领域的光辉典范。我希望你能从本书中找到你在进行内核开发时需要的东西,并且也能享受这一过程。 ...
Arnold Robbins
(资深Linux技术专家,Gawk维护者)
答案是:相对于其他图书,本书是一个巨大的飞跃。
首先,本书与时俱进,基于最新的2.6内核进行讲解。其次,也是更重要的,本书对驱动程序的讲解非常透彻。大多数设备驱动程序的图书仅仅讲解标准Unix内核图书或操作系统图书中论述的主题,譬如串口、磁盘驱动和文件系统等,如果你运气好,它可能也会讲解网络协议栈。
本书前进了一大步,它没有避重就轻,而是知难而上,探讨了在现代PC和嵌入式系统中必须面对的难点,比如PCMCIA、USB、I2C、视频、音频、闪存、无线通信等。你可以这样定位这本书:Linux内核包含了什么,这本书就会告诉你什么。..
它毫无遗漏,应有尽有,不留死角。
进而,本书的作者赢得了他的荣耀:读到他在20世纪90年代末期就将Linux移植到某种智能手表上的故事就像在进行一次惊险的奇幻之旅。
本书能成为Prentice Hall出版社开源软件开发系列图书中的一本,我感到非常兴奋。在开源领域发生这样的事情,令人振奋,它将成为开源领域的光辉典范。我希望你能从本书中找到你在进行内核开发时需要的东西,并且也能享受这一过程。 ...
Arnold Robbins
(资深Linux技术专家,Gawk维护者)
媒体评论回到顶部↑
“这是我读过的最全面的Linux设备驱动程序著作。” .
——Alan Cox,Linux内核维护者
“这本书涵盖了各种Linux设备驱动程序,全面而翔实。”
——Theodore Ts’o,Linux基金会CTO,北美第一位内核开发者...
——Alan Cox,Linux内核维护者
“这本书涵盖了各种Linux设备驱动程序,全面而翔实。”
——Theodore Ts’o,Linux基金会CTO,北美第一位内核开发者...








点击看大图





加载中...

