【问题标题】:Why is __exit used in kernel module programming?为什么在内核模块编程中使用__exit?
【发布时间】:2015-11-30 03:42:23
【问题描述】:

如果在模块被内置到内核中或者如果模块卸载不被允许的情况下没有任何内存分配,那么为什么首先使用它呢?如果我错了/假设有任何错误,请纠正我。

编辑 - 我也无法理解 __exit 的用途。 module_exit() 应该够不够?

【问题讨论】:

  • 是的,有人建议我在这里发布它的合适位置
  • 您是否在参考或已经阅读过The Linux Kernel Module Programming Guide 的第 9 页?
  • 我也刚在那里读到过,但仍然不清楚。对不起

标签: linux-kernel initialization init


【解决方案1】:

简单的答案:它在那里,因此如果您的模块被证明不可卸载(例如,它是内置的,或者内核不支持模块卸载),您可以使模块可卸载而不会施加惩罚。

并非所有模块都可以卸载,但如果您的驱动程序可以卸载,添加对它的支持是有意义的,并且会让其他人(使用您的驱动程序)更快乐。

至于宏本身:__exit 扩展为一个特殊指令,告诉编译器在无法卸载模块时丢弃该函数。如果不调用退出函数,这可以节省代码空间。

【讨论】:

    猜你喜欢
    • 2015-09-25
    • 2015-02-03
    • 1970-01-01
    • 2012-01-23
    • 2015-09-21
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多