Linux-Kernel

沒有初始化函式時會載入Kernel模組嗎?

  • September 21, 2020

我是第一次編寫驅動程式碼。我檢查了許多資源,其中指出核心模組的初始化函式是 init_module() 或使用 module_init() 宏指定的任何其他函式。這個初始化函式在核心模組載入時被呼叫。

但是我找不到任何有關當可載入核心模組中不存在初始化函式並嘗試載入時會發生什麼的資訊。

如果核心模組在樹中並且沒有初始化功能會怎樣?

  • -提前致謝..

模組不需要有初始化函式,do_init_module處理它的缺席

       /* Start the module */
       if (mod->init != NULL)
               ret = do_one_initcall(mod->init);

此類模組也可以在沒有退出功能的情況下解除安裝(與具有初始化功能的模組相反,如果它們沒有退出功能,則它們是永久性的)。

內置模組時,初始化函式成為__initcall連結時辨識的函式;他們的缺席也不會造成任何問題。

引用自:https://unix.stackexchange.com/questions/610589