Linux kernel linux中主要和次要数字的最大值

Linux kernel linux中主要和次要数字的最大值,linux-kernel,linux-device-driver,Linux Kernel,Linux Device Driver,我正在学习linux设备驱动程序开发,并创建了一个基本内核模块的代码,该模块创建了一个伪字符设备。 那个模块也被编译和插入了。。 当我做lsmod时,结果是这样的 Module Size Used by modeldriver 2540 0 这个数字表示什么?模块的大小是什么意思? linux中主数字和次数字的最大值是多少? 在哪里可以了解linux内核2.6.37的值。 “Size”是内核模块占用的内存量,即加载到内存中的

我正在学习linux设备驱动程序开发,并创建了一个基本内核模块的代码,该模块创建了一个伪字符设备。 那个模块也被编译和插入了。。 当我做lsmod时,结果是这样的

 Module                 Size   Used by
modeldriver             2540    0 
这个数字表示什么?模块的大小是什么意思? linux中主数字和次数字的最大值是多少? 在哪里可以了解linux内核2.6.37的值。 “Size”是内核模块占用的内存量,即加载到内存中的代码、数据和模块的某些特殊部分的大小。请注意,此处不包括由模块本身动态分配的内存

二,。 至于主要/次要数字,最好不要依赖特定的限制。例如,如果需要为角色设备保留此类号码,可以使用

从中的
MAJOR()
MINOR()
MKDEV()
的定义可以看出,12位用于编码一个主要数字(看起来是0..4095),20位用于次要数字。《Linux设备驱动程序》一书(第3版)第3章“设备编号的内部表示”一节也确认:

从内核的2.6.0版开始,dev_t是一个32位的量,其中12位用于主数字,20位用于次数字。当然,您的代码不应该对设备编号的内部组织进行任何假设;相反,它应该使用linux/kdev_t.h中的一组宏

如果你还没有这样做,我建议你看看上面提到的。虽然在某些地方有点过时,但它仍然非常有用