2015-09-04 32 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