字符设备、块设备主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生了,而块设备则不然,它利用一块系统内存作为缓冲区,当用户进程对设备请求能满足用户的要求时,就返回请求的数据,如果不能就调用请求函数来进行实际的I/O操作,因此,块设备主要是针对磁盘等慢速设备设计的,以免消耗过多的CPU时间来等待。
块设备:系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。
字符设备:字符设备按照字符流的方式被有序访问,像串口和键盘就都属于字符设备
参考链接:https://blog.csdn.net/ll148305879/article/details/92782578
major & minor
Linux内核设备编号分为主设备编号和次设备编号
主设备号(major):主设备号是与驱动对应的概念,同一类设备一般使用相同的主设备号,不同类的设备一般使用不同的 主设备号(但是也不排除在同一主设备号下包含有一定差异的设备)
次设备号(minor):因为同一驱动可支持多个同类设 备,因此用次设备号来描述使用该驱动的设备的序号,序号一般从0开始。
查看设备major和minor,如上图major=180,minor=4
参考链接:https://blog.csdn.net/qq_41453285/article/details/102797556