我正在學習linux設備驅動程序開發並創建了一個基本內核模塊的代碼,該模塊創建一個僞char設備。 該模塊得到了編譯和插入太.. 當我做lsmod的的結果是這樣的在linux中主要和次要數字的最大值
Module Size Used by
modeldriver 2540 0
是什麼數字說明什麼?模塊的大小是什麼意思? Linux中主要和次要數字的最大值是多少? 我在哪裏可以知道Linux內核的價值2.6.37
我正在學習linux設備驅動程序開發並創建了一個基本內核模塊的代碼,該模塊創建一個僞char設備。 該模塊得到了編譯和插入太.. 當我做lsmod的的結果是這樣的在linux中主要和次要數字的最大值
Module Size Used by
modeldriver 2540 0
是什麼數字說明什麼?模塊的大小是什麼意思? Linux中主要和次要數字的最大值是多少? 我在哪裏可以知道Linux內核的價值2.6.37
1. 「大小」是內核模塊佔用的內存數量,也就是代碼的大小,數據的大小以及可能是某些特殊的部分的模塊加載到內存。請注意,模塊本身動態分配的內存不包含在那裏。
2. 至於大/小數字,最好不要依賴於特定的限制。例如,如果您需要爲角色設備預留這些號碼,則可以使用alloc_chrdev_region()
。
從MAJOR()
,在<linux/kdev_t.h>
MINOR()
和MKDEV()
的定義,它遵循12個比特被用於編碼主號碼(0..4095,似乎),20個比特 - 爲對未成年人。部分「的Linux設備驅動程序」一書(第三版)的第3章「設備編號的內部表示」確認過:
由於內核2.6.0版本的,dev_t的是一個32位位數爲12位,主數字爲20位,次數爲20位。當然,您的代碼不應該對設備編號的內部組織做任何假設;它應該,而是利用在linux/kdev_t.h
發現一組宏的如果您還沒有這樣做的話,我會建議考慮看看Linux Device Drivers book如上所述。雖然在某些地方有些過時,但它仍然非常有用。
非常感謝..這幫了我.. – GVK 2013-02-13 16:01:47