Добрый день, коллеги!
Подскажите пожалуйста, в чем может быть дело. Пишу модуль ядра, точнее каркас:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
static int __init hello_init(void) {
printk("Hello, world 2!");
return 0;
}
static void __exit hello_exit2(void) {
printk("Goodbye, world 2!");
}
module_init(hello_init);
module_exit(hello_exit2);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Mikhail");
При загрузке модуля (
insmod test-mod.ko) в логе вижу сообщение "
Goodbye, world 2!". При выгрузке (
rmmod test-mod) получаю сообщение "
Hello, world 2!".
То есть hello_exit2 вызывается при инициализации, а hello_init при завершении. Как так то? Как будто я что-то упускаю.