Какая необходимость в использовании макросов, таких как module_init
и module_exit
, при написании загружаемых модулей ядра? Кроме того, почему мы используем макросы, такие как __init
или __exit
. Хотя мы можем выполнять работу и без них.
Без МАКРОСОВ
/* Without using MACROS Author: Sricharan Chiruvolu Date: 14 Dec 2014 */ #include <linux/module.h> #include <linux/kernel.h> int init_module(void){ printk(KERN_ALERT "This is our first program."); return 0; } void cleanup_module(void){ printk(KERN_ALERT "End of our first program."); }
С МАКРО
/* Edited first.c; Added macros module_init and module_exit Author: Sricharan Chiruvolu Date: 14 Dec 2014 */ #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> static int __init first_init(void) { printk(KERN_ALERT "This is our first program."); return 0; } static void __exit first_exit(void) { printk(KERN_ALERT "End of our first program."); } module_init(first_init); module_exit(first_exit);
В чем разница?