11.2.4 VFS对设备文件的处理

虽然设备文件也在系统的目录树中,但是它们和普通文件以及目录有根本的不同。当进程访问普通文件(即磁盘文件)时,它会通过文件系统访问磁盘分区中的一些数据块;而在进程访问设备文件时,它只要驱动硬件设备就可以了。例如,进程可以访问一个设备文件以从连接到计算机的温度计读取房间的温度。VFS的责任是为应用程序隐藏设备文件与普通文件之间的差异。

为了做到这点,VFS改变打开的设备文件的缺省文件操作;因此,可以把对设备文件的任一系统调用转换成对设备相关的函数的调用,而不是对主文件系统相应函数的调用。设备相关的函数对硬件设备进行操作以完成进程所请求的操作。

控制I/O设备的一组设备相关的函数称为设备驱动程序。由于每个设备都有一个唯一的I/O控制器,因此也就有唯一的命令和唯一的状态信息,所以大部分I/O设备类型都有自己的驱动程序。