内核模块
内核整体架构非常庞大,编译时只把需要的功能编译到内核,其他部分可以编译成模块(.ko文件),在内核运行时,可动态注册模块到内核,也可卸载模块。
本文代码:https://github.com/mxxlei/kernel_demo/tree/master/1-module-hello
1. 内核模块hello world
#include <linux/init.h>
#include <linux/module.h>
static int __init hello_init(void){
printk(KERN_INFO, "Hello World enter\n");
return 0;
}
module_init(hello_init);
static void __exit hello_exit(void){
printk(KERN_INFO, "Hello World exit\n");
}
module_exit(hello_exit);
MODULE_AUTHOR("mxlei <xxx@gmail.com>");