0

これが単純なモジュール プログラム コードです。

#include <linux/module.h>   /* Needed by all modules */
#include <linux/kernel.h>   /* Needed for KERN_INFO */
#include <linux/init.h>     /* Needed for the macros */

static int hello3_data __initdata = 3;

static int __init hello_3_init(void)
{
    printk(KERN_INFO "Hello, world %d\n", hello3_data);
    return 0;
}

static void __exit hello_3_exit(void)
{
    printk(KERN_INFO "Goodbye, world %d\n",hello3_data);
}

module_init(hello_3_init);
module_exit(hello_3_exit);

変数を__initdataマクロで、関数を で初期化しました__init。モジュールが挿入されたときinsmod、ログメッセージ(/var/log/messages)を見ることができました。しかし、私がやったとき、それはrmmodそれを取り除くことができず、それは言うResource busy.

My question is does the `modules_init` function cleans the memory of `hello3_data`??

or it is done by `module_exit`??.  

誰か説明してください。

4

1 に答える 1