linux 内核 linux kernel travel
2015-08-05 23:46
645 查看
linux 内核 kernel_核 travel_旅行 linux kernel travel
linux 2.6
1
hellomod.c
001
// hello world driver for linux 2.6
#include <linux/module.h> /*所有模块都要使用头文件module.h*/
#include<linux/kernel.h> /*kernel.h包含了常用的内核函数*/
#inlcude<linux/init.h> /* init.h 包含了宏 _init和_exit 它们容许释放内存*/
/* 头文件*/
static int_init lkp_init(void)
{
printk("<1>hello,world! from the kernel space... \n"); /* 模块初始化,printk函数
相当于C语言中的printf输出 函数,<1>立即输出*/
return 0;
}
static void_exit lkp_cleanup(void)
{
printk("<1>Goodbye,world! leaving kernel space...\n");
}
module_init(lkp_init); /* 入口点*/
module_exit(lkp_cleanup); /* 可加载模块,内核在此处调用 lkp_cleanup 函数*/
MODULE_LICENSE("GPL"); /* 提示没有GNU公共许可证*/
module_init() 和 cleanup_exit
module_init() 向内核注册模块所提供的新功能
cleanup_exit() 注销由模块提供的新功能
C语言应用程序 内核模块程序
使用函数 Libc库 内核函数
运行空间 用户空间 内核空间
运行权限 普通用户 超级用户
入口函数 main() module_init()
出口函数 exit() module_exit()
编译 Gcc-c makefile
连接 Gcc insmod
运行 直接运行 insmod
调试 Gdb kdbug kdb kgdb
linux 2.6
1
hellomod.c
001
// hello world driver for linux 2.6
#include <linux/module.h> /*所有模块都要使用头文件module.h*/
#include<linux/kernel.h> /*kernel.h包含了常用的内核函数*/
#inlcude<linux/init.h> /* init.h 包含了宏 _init和_exit 它们容许释放内存*/
/* 头文件*/
static int_init lkp_init(void)
{
printk("<1>hello,world! from the kernel space... \n"); /* 模块初始化,printk函数
相当于C语言中的printf输出 函数,<1>立即输出*/
return 0;
}
static void_exit lkp_cleanup(void)
{
printk("<1>Goodbye,world! leaving kernel space...\n");
}
module_init(lkp_init); /* 入口点*/
module_exit(lkp_cleanup); /* 可加载模块,内核在此处调用 lkp_cleanup 函数*/
MODULE_LICENSE("GPL"); /* 提示没有GNU公共许可证*/
module_init() 和 cleanup_exit
module_init() 向内核注册模块所提供的新功能
cleanup_exit() 注销由模块提供的新功能
C语言应用程序 内核模块程序
使用函数 Libc库 内核函数
运行空间 用户空间 内核空间
运行权限 普通用户 超级用户
入口函数 main() module_init()
出口函数 exit() module_exit()
编译 Gcc-c makefile
连接 Gcc insmod
运行 直接运行 insmod
调试 Gdb kdbug kdb kgdb
相关文章推荐
- Linux socket 初步
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝
- vivi下重新调整分区
- Linux VS Unix:Linux欲一统天下 Unix不死
- linux下设定环境变量