1.2.10. 设备文件
设备文件包括系统的物理设备和虚拟设备,如硬盘、显卡、显示屏、键盘。虚拟设备的一个例子是控制台,用“/dev/console
”来描述。
设备文件有两种类型。
字符设备
每次访问一个字符
一个字符等于一个字节
如键盘、串口…
块设备
通过更大的单元–块,进行访问
一个块>一个字节
如硬盘等…
你可以读写块设备文件,尽管该文件可能包含二进制数据,读取后显示出无法理解的乱码。向文件写入数据,有时可以帮助定位硬件连接故障。比如,你可以将文本文件导入打印机设备“/dev/lp0
”,或者将调制解调命令发送到合适的串口“/dev/ttyS0
”。但是,除非这些操作都小心完成,否则可能会导致一场大灾难。所以要特别小心。
注意 | |
---|---|
常规访问打印机,使用lp(1)。 |
设备的节点数可以通过执行ls(1)得到,如下所示。
$ ls -l /dev/sda /dev/sr0 /dev/ttyS0 /dev/zero
brw-rw---T 1 root disk 8, 0 Oct 16 20:57 /dev/sda
brw-rw---T+ 1 root cdrom 11, 0 Oct 16 21:53 /dev/sr0
crw-rw---T 1 root dialout 4, 64 Oct 16 20:57 /dev/ttyS0
crw-rw-rw- 1 root root 1, 5 Oct 16 20:57 /dev/zero
“
/dev/sda
“的主设备号是8,次设备号是0。它可以被disk
群组的用户读写。“
/dev/sr0
“的主设备号是11,次设备号是0。它可以被cdrom
群组的用户读写。“
/dev/ttyS0
“的主设备号是4,次设备号是64。它可以被dailout
群组的用户读写。“
/dev/zero
“的主设备号是1,次设备号是5。它可以被任意用户读写。
在现代Linux系统中,处在”/dev
“之下的文件系统会自动被udev()机制填充。