我正在读关于Linux内核开发,我只是阅读一些文字,我不明白。 下面是款,其中谈到了__init和__exit宏模块:
这里展示了内核2.2及更高版本的功能。 注意在初始化和清理函数的定义的变化。 在__init宏导致init函数被丢弃的内存被释放,一旦初始化函数完成了内置的驱动程序,但没有可加载模块。 如果你想在调用初始化函数时约,这非常有意义。
还有它的工作方式类似于__init但对于初始化变量,而不是功能的__initdata。
该__exit宏导致功能的省略当模块被编译进内核,和__exit一样,对动态加载模块是无效的。 同样,如果你认为当清理函数运行
我明白了; 宏__init
导致初始化函数被丢弃,一旦初始化函数完成了内置驱动程序的内存释放。 但是, 为什么? 不是可加载模块? 我无法理解它。
我知道这是一个愚蠢的事情,但我想过一段时间,不能完全理解它。 为什么内置驱动器而不是可加载模块? 变量,在分配的地址等__init
将需要为两个,对不对?