9.4/proc文件系统
/proc文件系统真正显示了Linux虚拟文件系统的能力 。事实上它并不存在-不管时/proc目录还是其子目录和文件都不真正的存在 。但是我们是如何能够执行cat /proc/devices命令的?/proc文件系统象一个真正的文 件系统一样将向虚拟文件系统注册 。然而当有对/proc中的文件和目录的请求发生时, VFS系统将从核心中的数据中临时构造这些文件和目录 。例如核心的/proc/devices文件是从描叙其设备的内核数据结构中产生出来 。/proc文件系统提供给用户一个核心内部工作的可读窗口 。几个Linux子系统,如在modules一章描叙的Linux核心模块都在/proc文件系统中创建入口 。
9.5设备特殊文件
和所有Unix版本一样Linux将硬件设备看成特殊的文件 。如/dev/null表示一个空设备 。设备文件不使用文件 系统中的任何数据空间,它仅仅是对设备驱动的访问入口点 。EXT2文件系统和Linux VFS都将设备文件实现成特殊的inode类型 。有两种类型的设备文件:字符与块设备特殊文件 。在核心内部设备驱动实现了类似文件的操作过程:我们可以对它执行打开、关闭等工作 。字符设备允许以字符模式进行I/O操作而块设备的I/O操作需要通过buffer cache 。当对一个设备文件发出的I/O请求将被传递到相应的设备驱动 。常常这种设备文件并不是一个真正的设备驱动而仅仅是一个伪设备驱动,如SCSI设备驱动层 。设备文件通过表示设备类型的主类型标志符和表示单元或主类型实例的从类型来引用 。例如在系统中第一个IDE控制器上的IDE硬盘的主设备号为3而其第一个分区的从标志符为1 。所以执行ls -l /dev/hda1将有如下结果:
$ brw-rw---- 1 rootdisk 3,1Nov 2415:09 /dev/hda1
在核心内部每个设备由唯一的kdev_t结构来表示,其长度为两字节,首字节包含从设备号而尾字节包含主设备号 。上例中的核心IDE设备为0x0301 。表示块或者字符设备的EXT2 inode在其第一个直接块指针包含了设备的主从设备号 。当VFS读取它时,表示它的VFS inode结构的i_rdev域被设置成相应的设备标志符 。
- 诺基亚将在更多产品上采用Linux操作系统
- 蛤蟆皮的功效与作用 蛤蟆皮的功效
- Linux 核心--7.PCI设备
- Linux 核心--8.中断与中断处理
- 椰子汤的功效与作用 椰子汤有什么功效
- Linux操作系统如何限制SSH密码尝试次数
- 微软公司对Linux操作系统使出的各种杀招
- Linux 核心--4.内存管理
- 以Linux做路由器的问题
- Linux 核心--1.前言
