1,设备
Linux文件系统/dev/下通常存放了一系列设备名称。对设备的访问,即访问这些文件。
ls -l /dev/ 能看到这些设备的一些基本信息。如下图所示
了解过Linux下文件类型的小伙伴应该对哪些是字符设备、块设备不会感到陌生了。(bcd-lsp分别是块、字符、目录、普通、链接、套接字、管道)
root后面 那两个逗号隔开的数字是设备的主设备号和次设备号。那我们跳到下一个概念吧。
2,设备号
设备号分为主设备号和次设备号;
主设备号标识设备对应的驱动程序,次设备号由内核使用,区分同一个类型的多个设备,如两个串口。个人认为了解这些就够了。我们需要重点关注的是驱动程序里面如何表达这些概念,也就是下一步。
dev_t devno //定义设备号,数据类型为dev_t,实际是一个32位的数。
devno = MKDEV(int major, int minor); //major minor 即我们看到的程序员给出的203,0等这些数字。习惯上限于255个主设备号,255个次设备号 devno = major << 20 | minor;
int major = MAJOR(dev_t devno);