字符设备节点(一)

用个新的开始,记录学习过程

从写一个字符设备节点开始,第一步写个helloworld。

一个最简单的内核模块

Module

作用:使编译出来的内核本身不需要包含所有需要的功能,这些功能在使用时,其对应的代码被动态得加载到内核中。
特点:模块本身不被变一如内核映像,从而控制内核大小;模块一旦被加载,它就和内核中的其他部分完全一样。
static int __init ××__init(void):
		模块加载函数,当通过insmod或modprobe命令加载内核模块时,模块的加载函数会自动被内核执行,完成
本模块的相关初始化工作。
static void __exit ××__exit(void):
	模块卸载函数:当通过rmmod命令卸载模块时,模块的卸载函数会自动被内核执行,完成与模块加载函数相反的
过程。
MODULE_LICENSE("GPL v2"):
	模块许可证声明:许可证声明描述内核模块的许可权限,如果不生命LICENSE,模块加载时,将收到内核被污染
(Kernel Tainted)的警告

代码实例

#include <linux/init.h>
#include <linux/module.h>
static int __init helloworld_init(void)
{
    printk(KERN_ALERT "Hello, World!\n");
    return 0;
}

static void __exit helloworld_exit(void)
{
    printk(KERN_ALERT "bye bye!\n");
}

module_init(helloworld_init);
module_exit(helloworld_exit);
MODULE_LICENSE("GPL v2");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值