2015-09-04 53 views
1

如果沒有要在情況下,模塊被編譯進內核或者模塊卸載是不允許的,那麼爲什麼首先使用它的內存分配?如果我錯了/假設有任何問題,請糾正我。爲什麼__exit在內核模塊編程中使用?

編輯 - 我也無法理解什麼目的呢__exit服務。 module_exit()應該足夠或不是?

+0

是啊,我建議,這是適當的地方將它張貼 – hakunamatata

+0

你指的,或者已經讀過,第9頁的[Linux內核模塊編程指南(的http://www.tldp.org /LDP/lkmpg/2.6/lkmpg.pdf)? – localhost

+0

我剛剛在那裏看過,但還是不清楚。 Sry – hakunamatata

回答

2

簡單的回答:它在那裏,因此如果您的模塊不是可卸載的(例如它是內置的,或者內核不支持模塊卸載),您可以使模塊無需加載而不會受到懲罰。

不是所有的模塊是有意義的卸載,但如果你的驅動程序可以實用卸載,對於增加的支持有意義,會讓其他人(誰使用您的驅動)更快樂。

至於宏本身:__exit擴展爲一個特殊的指令,它告訴編譯器丟棄功能模塊是否無法卸載。如果退出函數不被調用,這節省了代碼空間。

+0

好的,明白了。謝啦 :) – hakunamatata