快速业务通道

《深入浅出Linux设备驱动》第一章 设备驱动概述(2)

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-16
1.3有操作系统时的设备驱动 1.2节中我们看到一个干净利落的设备驱动,它直接运行在硬件之上,不与任何操作系统关联.当系统中包含操作系统后,设备驱动会变得怎样? ,无操作系统时设备驱动的硬件操作工作仍然是必不可少的,没有这一部分,驱动不可能与硬件打交道. 其外,我们还需要将驱动融入内核.为了实现这种融合,在所有设备的驱动中设计面向操作系统内核的接口,这样的接口由操作系统规定,对一类设备而言结构一致,独立于具体的设备. 由此可见,当系统中存在操作系统的时候,驱动变成了连接硬件和内核的桥梁.如图1.4,操作系统的存在势必要求设备驱动附加更多的代码和功能,把单一的“驱使硬件设备行动”变成了操作系统内与硬件交互的模块,它对外呈现为操作系统的API,不再给应用软件工程师直接提供接口. 图1.4 硬件、驱动、操作系统和应用程序的关系 那么我们要问,有了操作系统之后,驱动反而变得复杂,那要操作系统干什么? ,一个复杂的软件系统需要处理多个并发的任务,没有操作系统,想完成多任务并发是很困难的. 其次,操作系统给我们提供内存管理机制.一个典型的例子是,对于多数含MMU的处理器而言,Windows、Linux等操作系统可以让每个进程都可以独立地访问4GB的内存空间. 拥有帝国一切,皆有可能。欢迎访问phome.net上述优点似乎并没有体现在设备驱动身上,操作系统的存在给设备驱动究竟带来了什么实质的好处? 简而言之,操作系统通过给驱动制造麻烦来达到给上层应用提供便利的目的.当驱动都按照操作系统给出的独立于设备的接口而设计,那么,应用程序将可使用统一的系统调用接口来访问各种设备.对于类UNIX的VxWorks、Linux等操作系统而言,当应用程序通过write()、read()等函数读写文件就可访问各种字符设备和块设备,而不论设备的具体类型和工作方式,那将是怎样地便利? 1.4 Linux设备驱动 1.4.1设备的分类及特点 计算机系统的硬件主要由CPU、存储器和外设组成.随着IC制作工艺的发展,目前,芯片的集成度越来越高,往往在CPU内部就集成了存储器和外设适配器.譬如相当多的ARM、PowerPC、MIPS等处理器都集成了UART、I2C控制器、USB控制器、SDRAM控制器等,有的处理器还集成了片内RAM和FLASH. 驱动针对的对象是存储器和外设(包括CPU内部集成的存储器和外设),而不是针对CPU核.Linux将存储器和外设分为3个基础大类: · 字符设备 · 块设备 · 网络设备 字符设备指那些以串行顺序依次进行访问的设备,如触摸屏、磁带驱动器、鼠标等.块设备可以用任意顺序进行访问,以块为单位进行操作,如硬盘、软驱等.字符设备不经过系统的快速缓冲,而块设备经过系统的快速缓冲.但是,字符设备和块设备并没有明显的界限,如对于FLASH设备,符合块设备的特点,但是我们仍然可以把它作为一个字符设备来访问. 拥有帝国一切,皆有可能。欢迎访问phome.net字符设备和块设备的驱动设计呈现出很大的差异,但是对于用户而言,他们都使用文件系统的操作接口open()、close()、read()、write()等进行访问. 在Linux系统中,网络设备面向数据包的接收和发送而设计,它并不对应于文件系统的节点.内核与网络设备的通信与内核和字符设备、网络设备的通信方式完全不同. 另外一种设备分类方法中所称的I2C驱动、USB驱动、PCI驱动、LCD驱动等本身可归纳入3个基础大类,但是对于这些复杂的设备,Linux也定义了独特的驱动体系结构. 1.4.2 Linux设备驱动与整个软硬件系统的关系 如图1.5所示,除网络设备外,字符设备与块设备都被映射到Linux文件系统的文件和目录,通过文件系统的系统调用接口open()、write()、read()、close()等即可访问字符设备和块设备.所有的字符设备和块设备都被统一地呈现给用户.块设备比字符设备复杂,在它上面会建立一个磁盘/FLASH文件系统,如FAT、EXT3、

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号