在Linux中,一切皆文件,包括硬件设备。Linux系统中的设备可以表示为设备节点(device node)。
设备节点是内核和用户空间之间的一个接口,它允许用户空间的应用程序与内核进行通信来访问硬件。应用程序可以通过打开设备节点来访问设备,并使用read、write等系统调用与该设备进行通信。
linux设备节点分为两种:字符设备和块设备。
字符设备节点是一种序列I/O设备,如串口设备、声卡、键盘等。一个字符设备节点通常被设计成一个字节一个字节地读取或写入,其中读写长度并不一定相等。
字符设备节点的文件类型是“c”
块设备节点是一种随机I/O设备,如硬盘、磁带等。一个块设备节点通常通过大块读取和写入较长的数据块。块设备节点中的每个块通常有统一的大小。
块设备节点的文件类型是“b”,通常用于存储文件系统。
可以使用ls -l命令查看linux设备节点。输出的结果中,第一列标识了文件类型,包括块设备(b)和字符设备(c)。
例如:
$ ls -l /dev/sda
brw-rw----. 1 root disk 8, 0 Oct 6 23:33 /dev/sda
上述输出结果表示/dev/sda是一个主设备为8,次设备为0的块设备节点。