LINUX 设备驱动程序(ALESSANDRO,中国电力出版社)的详细介绍,评论,读后感及网上价格比较。

好图书-图书价格比较与图书搜索
首页 | 排行榜 | 新书上架 | 优惠情报 | 图书分类 | 全国书店 | 请注册 或 登陆
搜索 1,681,448 种书的介绍和售价       高级搜索  使用帮助

好图书搜索 25 家网上书店, 1,681,448 种图书,售价及其他信息。 更多介绍

LINUX 设备驱动程序

LINUX 设备驱动程序

ALESSANDRO RUBINI   

7508302214

中国电力出版社 / 1999-11-30

平装 / 16开 / 475页 / 0字

¥59.00

 (1家书店)

"LINUX 设备驱动程序"的详细介绍……

本书是针对那些想在Linux操作系统下支持计算机外设或者是想在Linux下开发并运行新硬件的人而写的。Linux是UNIX市场中份额增长最快的操作系统,在许多应用领域中赢得了众多热心的追随者。本书展示了迄今为止流传于口头上的或隐含在源代码评注背后的信息,并引导您为众多的设备编写驱动程序。 您不必成为一个内核的"黑客"才可以理解并欣赏这本书。您所需要具备的只是对C语言和一些UNIX系统调用的背景知识的了解。本书循序渐进地描述了字符设备、块设备和网络接口的驱动程序,并附之以功能完善的示例以及有关驱动程序设计的事项,而且这些示例不用在特定的硬件上就能运行。对于那些想知道操作系统是怎样进行工作的人来讲,本书也为他们提供了有关寻址空间、异步事件及I/O方面的知识。 贯穿全书的一个重点是可移植性。它涉及了从1.2.13到2.0的内核版本,以及2.0以后至2.1.43之间的开发版本。本书也告诉你怎样在硬件平台上最大限度地移植代码。 本书涵盖的内容包括: 建立驱动程序并装载模块 完善字符设备、块设备和网络设备驱动程序 调试驱动程序 计时 内存管理和DMA 中断 可移植性事项 外部设备互连(PCI) 内核内幕的导览

哪里可以买到"LINUX 设备驱动程序"?

从 1 家优秀的网上书店中选购"LINUX 设备驱动程序"

书店名称 价格 购买 去看看
去当当网购买'LINUX 设备驱动程序' ¥47.20
卓越网  

 

※ 如果您是第一次来到好图书选购图书,请点此查看“购书指南”

※ 发现价格错误了?书店有售而好图书却没有显示?立刻点此给好图书改错

※ 图书价格仅供参考,实际售价及是否有库存以各网站实际标示为准。

※ 若售价差别过大,可能因不同规格或者版本引起,请自行甄别。

 

喜欢"LINUX 设备驱动程序"的人们通常也喜欢……

对"LINUX 设备驱动程序"的评论……

暂无评论

我来评论一下"LINUX 设备驱动程序"……

登录之后才能发表评论,请  登录  或  注册

"LINUX 设备驱动程序"的图书目录……

前言

第一章 Linux内核简介

驱动程序作者的作用

划分内核

设备和模块的分类

安全问题

版本编号

许可证术语

全书概貌

第二章 编写和运行模块

模块与应用程序

编译和加载

版本相关性

内核符号表

初始化和终止

使用资源



自动和手动配置

在用户空间编写驱动程序

快速索引

第三章 字符设备驱动程序

Scull的设计

主设备号和次设备号

文件操作

file结构

Open和Close

Scull的内存使用

读和写

试试新设备

快速索引

第四章 调试技术

用打印信息调试

通过查询调试

通过监视进行调试

调试系统故障

使用调试器

第五章 字符设备驱动程序的扩展操作

ioctl

阻塞型I/O

Select

异步触发

定位设备

设备文件的访问控制

快速索引



第六章 时间流

内核中的时间间隔

获取当前时间

延迟执行

任务队列

内核定时器

快速索引

第六章 获取内存

kmalloc函数的内幕

get_free_Page和相关函数

Vmalloc和相关函数

“脏”的处理方法(Playing Dirty)

快速索引

第八章 硬件管理

使用1/O端口

使用并口

访问设备卡上的内存

访问字符模式的视频缓冲区

快速索引

第九章 中断处理

准备并口

安装中断处理程序

实现中断处理程序

下半部

共享中断

中断驱动的I/O



竞争条件

中断处理的版本相关性

快速索引

第十章 合理使用数据类型

使用标准C类型

分配确定的空间大小给数据项

接口特定的类型

其他与移植有关的问题

快速索引

第十一章 kerneld和高级模块化

按需加载模块

模块中的版本控制

跨过卸载/装载的持久存储

快速索引

第十二章 加载块设备驱动程序

注册驱动程序

头文件bik.h.

处理请求

挂载(Mounting)是如何工作的

ioctl方法

可拆卸的设备

可分区设备

中断驱动的块设备驱动程序

快速索引



第十三章 MMAP和DMA

Linux中的内存管理

mmap设备操作

直接内存访问(DMA)

快速索引

第十四章 网络驱动程序

snull如何设计

与内核相连

设备结构的细节

打开和关闭

包发送

包接收

中断驱动的操作

插座缓冲区

地址解析

加载时配置

运行时配置

自定义ioctl命令

统计信息

选播(multicasting)

快速索引

第十五章 外设总线概览

PCI接口

回顾:ISA

其他PC总线

Sbus

快速索引



第十六章 内核源代码的物理布局

引导内核

引导之前

Init进程

kernel目录

mm目录

fs目录

网络

IPC和lib函数

Drivers

体系结构相关性

第十七章 最新进展

模块化

文件操作

访问用户空间

任务队列

中断管理

位操作

转换函数

vremap

虚拟内存

处理内核空间错误

其他变化

"LINUX 设备驱动程序"的书摘……

作为一个程序员,你可以选择自己的驱动程序,在编程所需时间和结果的灵活性

之间做个可以接受的权衡。尽管说驱动程序的灵活性看起来有那么点怪,我喜欢

这个词是因为它强调了设备驱动程序提供的是机制,而不是策略。

机制和策略之间的差别是Unix设计背后最好的点子之一。实际编程中遇到的大多

数问题都可以被划分成两个部分:“需要做什么”(机制)和“这个程序怎么用”

(策略)。如果这两个主题是由程序不同部分来承担的,或者是由不同的程序组合

一起承担的,那么这个软件包就很容易开发,也很适合特殊需求。

举个例子,Unix的图形显示管理在X服务器和窗口管理器之间划了一道线,X服

务器了解硬件并给用户程序提供唯一的接口,而窗口管理器实现特殊的策略并不

需要知道硬件的任何信息。人们可以在不同硬件上使用同样的窗口管理器,并且

不同用户在同一台工作站上可以使用不同的设置。另一个例子是TCP/IP的网络分

层结构:操作系统提供抽象的插座(socket)操作,是与设备无关的,不同服务

器主管这个服务。另外,ftpd服务器提供文件传输机制,而用户可以使用任何

客户端程序,命令行的客户端和图形化界面的客户端都存在,并且谁都可以为传

输文件写一个新的用户界面。

只要涉及到驱动程序,就会运用这样的功能划分。软盘驱动程序是与设备无关的

——这不仅表现在将磁盘作为一个连续读写的字节数组。如何使用设备是应用程

序要做的事:tar要连续地写数据,而mkfs则为要安装的设备做准备工作,mcopy

依赖于设备上存在的特殊数据结构。

在写驱动程序时,程序员应该特别留心这样的基本问题:我们要写内核代码访问

硬件,但由于不同用户有不同需要,我们不能强迫用户采用什么样的特定策略。

设备驱动程序应该仅仅处理硬件,将如何使用硬件的问题留给应用程序。如果在

提供获得硬件能力的同时没有增加限制,我们就说驱动程序是灵活的。不过,有

时必须要作一些策略上的决策。

可以从不同侧面来看你的驱动程序:它是位于应用层和实际设备之间的软件。驱

动程序的程序员可以选择这个设备应该怎样实现:不同的驱动程序可以提供不同

的能力,甚至相同的设备也可以提供不同能力。实际驱动程序设计应该是在众多

需求之间的一个平衡。例如,不同程序可以同时使用同一个设备,而驱动程序的

开发者可以完全自由地决定如何处理同步机制。你可以实现到设备上的内存映射,

而完成独立于硬件的具体能力,或者你可以提供给用户函数库,帮助应用程序的

程序员在可用原语的基础上实现新策略,或者诸如此类的方法。一个很重要又需

要考虑的问题就是,如何在提供给用户尽可能多的选项,平衡你需要编写所花费

的时间,以及为使错误尽可能少而保持代码简单之间寻求平衡。

如果既为同步又为异步操作设计驱动程序,如果允许同时打开多次,并且如果能

够发掘所有硬件功能,而不用增加软件层“去简化事情”——例如将二进制数据

转换成文本或者策略相关的操作——那就很容易编写而且很好维护了。达成“策

略无关”实际上是软件设计的共同目标。

实际上,大多数设备驱动程序是和用户程序一起发布的,这些程序可以帮助完成

对目标设备的配置和访问。这些程序可以是从简单的配置程序到完整的图形应用。

通常还要提供一个客户端库文件。

本书讨论范围是内核,所以我们不考虑策略问题,也不考虑应用程序或支持库。

有时,我们会讨论不同策略,以及如何支持这些策略,但我们不会深入到使用一

定策略或设备编程需要的细节问题。不过你应该可以理解,用户程序是一个软件

包的内核,就算策略无关的软件包也会和配置文件一起发布,这些文件提供了基

本机制上的默认行为。

划分内核

在Unix系统中,若干并发进程会参加不同的任务。每个进程都要求获得系统资

源,可以是计算、内存、网络连接或别的资源。内核是一整块可执行代码,用它

来负责处理所有这样的请求。尽管在不同的内核任务之间的区别不是总能清楚地

标识出来,内核的作用还是可以被划分的。如图1-1所示,划分为如下这些部分:

进程管理

内核负责创建和终止进程,并已处理它们和外部世界的联系(输入和输出)。

本站所列的图书资料、图书封面图片归各自的版权所有人所有

本站所收录之图书评论、图书社区话题、及本站所做之广告均属其各自行为,与本站立场无关,不代表本站赞同其观点