Linux设备与分类.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux设备与分类

Linux 设备 1.1.1 Linux 设备和分类 Linux 系统中的设备可以分为字符设备、块设备和网络设备这3 类。 字符设备:字符设备是能够像字节流一样被访问的设备,当对字符设备发出读写请求, 相应的I/O 操作立即发生。Linux 系统中很多设备都是字符设备,如字符终端、串口、键盘、 鼠标等。在嵌入式Linux 开发中,接触最多的就是字符设备以及驱动。 块设备:块设备是Linux 系统中进行I/O 操作时必须以块为单位进行访问的设备,块设 备能够安装文件系统。块设备驱动会利用一块系统内存作为缓冲区,因此对块设备发出读写 访问,并不一定立即产生硬件I/O 操作。Linux 系统中常见的块设备有如硬盘、软驱等等。 网络设备:网络设备既可以是网卡这样的硬件设备,也可以是一个纯软件设备如回环设 备。网络设备由Linux 的网络子系统驱动,负责数据包的发送和接收,而不是面向流设备, 因此在Linux 系统文件系统中网络设备没有节点。对网络设备的访问是通过socket 调用产生, 而不是普通的文件操作如open/close 和read/write 等。 1.1.2 设备节点和设备号 1. 设备节点 设备(包括硬件设备)在Linux 系统下,表现为设备节点,也称设备文件。设备文件是 一种特殊的文件,它们存储在文件系统中(通常在/dev 目录下),但它们仅占用文件目录项 而不涉及存储数据。事实上,它们仅仅记录了其所属的设备类别、主设备号和从设备号等设 备相关信息。 来看两个典型的设备文件的详细信息: chenxibing@gitserver-zhiyuan:~$ ls -l /dev/ttyS0 /dev/sda 1 brw-rw 1 root disk 8, 1 2011-01-07 17:48 /dev/sda1 crw-rw 1 root dialout 4, 64 2011-01-07 17:48 /dev/ttyS0 以/dev/ttyS0 的信息为例,对其中几项进行说明,参考图0.1。 crw-rw 1 root dialout 4, 64 2011-01-07 17:48 /dev/ttyS0 访问权限 次设备号 设备类型 主设备号 设备文件名 图0.1 设备文件说明 /dev/ttyS0 是设备节点名称,c 表示该设备是字符设备,主设备号为4 ,从设备号为64, 该设备节点对应于系统的串口0 。 设备分为字符设备、块设备和网络设备,而网络设备没有设备节点,所以设备文件基 本上就分为字符设备文件和块设备文件两类,在设备节点属性中,分别以c 和b 来表示,即 c 表示字符设备节点文件,b 表示块设备节点文件。 当程序打开一个设备文件时,内核就可以获取对应设备的设备类型、主设备号和次设备 号等信息,内核也就知道了程序需要操作使用哪个设备驱动程序。在程序随后对这个文件的 操作都会调用相应的驱动程序的函数,同时把从设备号传递给驱动程序。 2 . 设备编号 设备编号由主设备号和从设备号构成。在Linux 内核中,使用dev_t 类型来保存设备编 号。在2.6 版本的Linux 内核中,dev_t 是一个32 位数,高12 位是主设备号,低20 位是次 设备号。 主设备号标识设备对应的驱动程序,告诉Linux 内核使用哪个驱动程序驱动该设备。如 果多个设备使用同一个驱动程序,则它们拥有相同的主设备号。例如/dev/ttyS0~3 这4 个设 备,拥有相同的主设备号4 ,说明它们使用同一份驱动: chenxibing@gitserver-zhiyuan:~$ ls -l /dev/ttyS* crw-rw 1 root dialout 4, 64 2011-01-07 17:48 /dev/ttyS0 crw-rw 1 root dialout 4, 65 2011-01-07 17:48 /dev/ttyS1 crw-rw 1 root dialout 4, 66 2011-01-07 17:48 /dev/ttyS2 crw-rw 1 root dialou

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档