免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1099 | 回复: 0
打印 上一主题 下一主题

Linux设备驱动概述 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-20 12:29 |只看该作者 |倒序浏览

设备管理即输入/输出子系统,可分为上下两部分:一部分是上层的,与设备无关,这部分根据输入/输出请求,通过特定的设备驱动程序接口来与设备进行通信。另一部分是下层的,与设备有关,常称为设备驱动程序,它直接与相应设备打交道,并且向上层提供一组访问接口。
设备管理的目标是对所有外接设备进行良好的读、写、控制等操作。由于用户希望能用同样的应用程序和命令来访问设备和普通文件。为此,Linux中的设备管理应用了设备文件这个概念来统一设备的访问接口。简单地说,系统试图使它对所有各类设备的输入、输出看起来就好像对普通文件的输入、输出一样。用户希望能用同样的应用程序和命令来访问设备和普通文件。
由于Linux中将设备当做文件来处理,所以对设备进行操作的系统调用和对文件的操作类似,主要包括open()、read()、write()、ioctl()、close()等。应用程序发出系统调用指令以后,会从用户态转换到内核态,通过内核将open()这样的系统调用转换成对物理设备的操作。
Linux下的设备驱动任务包括以下两个。
(1)自动配置和初始化子程序:这部分程序仅在初始化的时候被调用一次。
(2)服务于I/O请求的子程序:这部分是系统调用的结果。在执行这部分程序的时候,系统仍认为和进行调用的进程属于同一个进程,只是由用户态变成了内核态,并具有进行此系统调用的用户程序运行环境,所以可以在其中调用sleep()等与进程运行环境有关的函数。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/110576/showart_2182775.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP