版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zym326975/article/details/84719050
提供了对许多模块支持,包括但不限于设备驱动
每个模块由目标代码组成(没有连接成一个完整可执行程序)
insmod将模块动态加载到正在运行的内核
rmmod程序移除模块
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENCE("Dual BSD/GPL");
static int __init hello_init(void)
{
printk(KERN_ALERT"Hello world\n");
return 0;
}
static void __exit hello_exit(void)
{
printk(KERN_ALERT"Hello world exit\n");
}
内核驱动模块与应用程序对比
应用程序是一个进程
编程从主函数main()开始
主函数main返回即是进程结束
驱动程序是一系列内核函数
驱动程序向内核添加了一些函数,是内核的一部分:open() release() read() write()
这些函数由内核在适当的时候来调用
这些函数可以用来完成硬件访问操作