UNIX,因此 Linux,识别两种不同类型的设备:随机访问块设备(例如磁盘)和字符设备(例如磁带和串行线),其中一些可能是串行的,而另一些可能是随机访问的。每个受支持的设备在文件系统中都表示为一个设备文件。当您读取或写入设备文件时,数据来自或去往它所代表的设备。这样,访问设备就不需要特殊的程序(也不需要特殊的应用程序编程方法,例如捕获中断或轮询串行端口);例如,要将文件发送到打印机,只需说
$ cat filename > /dev/lp1 $ |
由于设备在文件系统中显示为文件(在/dev目录中),很容易使用 ls 或其他合适的命令来查看存在哪些设备文件。在 ls -l 的输出中,第一列包含文件类型及其权限。例如,检查串行设备可能会给出
$ ls -l /dev/ttyS0 crw-rw-r-- 1 root dialout 4, 64 Aug 19 18:56 /dev/ttyS0 $ |
请注意,通常所有设备文件都存在,即使设备本身可能未安装。因此,仅仅因为您有一个文件/dev/sda,这并不意味着您真的有一个 SCSI 硬盘。拥有所有设备文件使安装程序更简单,并使添加新硬件更容易(无需找出正确的参数并为新设备创建设备文件)。