首页 百科知识 设备特殊文件

设备特殊文件

时间:2022-10-09 百科知识 版权反馈
【摘要】:EXT2文件系统和Linux VFS都将设备文件实现成特殊的inode类型。Linux的以太型网卡界面通常被称做eth0、eth1等。Linux的另一特点是网络界面并不会像其他设备一样地被看成是一个在/dev里头的文件。当对一个设备文件发出的I/O请求将被传递到相应的设备驱动。设备文件通过表示设备类型的主类型标志符和表示单元或主类型实例的从类型来引用。表示块或者字符设备的EXT2 inode在其第一个直接块指针包含了设备的主从设备号。

6.7 设备特殊文件

和所有Unix版本一样Linux将硬件设备看成特殊的文件。如/dev/null表示一个空设备。设备文件不使用文件系统中的任何数据空间,它仅仅是对设备驱动的访问入口点。EXT2文件系统和Linux VFS都将设备文件实现成特殊的inode类型。

系统中所有设备文件都存放在dev子目录下。每个设备文件也使用i节点来标识,设备文件i节点不指向文件系统中任何实际的物理块,通过i节点可以访问相应的设备驱动程序,对设备文件的操作就是直接对设备本身进行相应的操作。

Linux有两种类型的设备文件:对应字符设备的字符设备文件和对应块设备的块设备文件。

Linux的以太型网卡界面通常被称做eth0、eth1等。环形卡亦同样地被看待,然而它们被称做tr0、tr1等。可用ifconfig命令来观看及修改网络界面的状态。Linux的另一特点是网络界面并不会像其他设备一样地被看成是一个在/dev里头的文件。

在内核设备驱动实现了类似文件的操作过程:我们可以对它执行打开、关闭等工作。字符设备允许以字符模式进行I/O操作,而块设备的I/O操作需要通过buffer cache。当对一个设备文件发出的I/O请求将被传递到相应的设备驱动。常常这种设备文件并不是一个真正的设备驱动而仅仅是一个伪设备驱动,如SCSI设备驱动层。设备文件通过表示设备类型的主类型标志符和表示单元或主类型实例的从类型来引用。例如在系统中第一个IDE控制器上的IDE硬盘的主设备号为3而其第一个分区的从标志符为1。所以执行ls -l/dev/hda1将有如下结果:

brw-rw----  1 root  disk   3,  1 Nov 24 15:09 /dev/hda1

在内核每个设备由惟一的kdev_t结构来表示,其长度为两字节,首字节包含从设备号而尾字节包含主设备号。上例中的核心IDE设备为0x0301。表示块或者字符设备的EXT2 inode在其第一个直接块指针包含了设备的主从设备号。当VFS读取它时,表示它的VFS inode结构的i_rdev域被设置成相应的设备标志符。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈