在Linux系统中,所有的硬件设备都被视为文件。这些文件是通过文件系统的形式,被我们所熟悉,以便于操作系统可以把所有信息统一起来。这种以文件的方式来处理硬件设备的方式,被称作“设备文件”。
在Linux中设备文件分为两类:块设备和字符设备。块设备是指按照块进行数据交换,比如硬盘。字符设备是指按字符进行数据交换,比如键盘。
块设备与字符设备的差别在于,块设备读写数据的时候,需要按照块这个单位来读写,而字符设备则是一次一个字节。
设备文件可以通过驱动程序自动创建,也可以手动在/dev目录下创建。
手动创建设备文件的两种方式:
Linux内核使用主设备号和次设备号来识别硬件设备。主设备号是用来区分不同的设备类型,次设备号用来区分同一类型的设备。
设备文件命名规则为:类型+主设备号+次设备号。例如,/dev/sda就是一块SCSI硬盘的设备文件,其中s表示SCSI设备,a表示第一个SCSI设备,而主设备号为8,次设备号则是0。