linux 内核模块 编写例子,Linux内核模块实例
一个简单的内核模块来读取 timespec 数据结构的数据。
"read_kernel_time.c":
#include
#include
#include
#include
struct timespec ts;
static int __init init_k_time(void)
{
printk(KERN_INFO "Get kernel time:\n");
ts = current_kernel_time();
printk(KERN_INFO "ts->tv_sec: %ld\t ts->tv_nsec: %ld\n", ts.tv_sec, ts.tv_nsec);
return 0;
}
static void __exit exit_k_time(void)
{
printk(KERN_INFO "Exit\n");
}
module_init(init_k_time);
module_exit(exit_k_time);
MODULE_LICENSE("GPL");
"Makefile":
obj-m := read_kernel_time.o
all:
make -C /lib/modules/`uname -r`/build M=$(PWD) modules
clean:
make -C /lib/modules/`uname -r`/build M=$(PWD) clean
依赖的编译包:gcc, make, kernel-devel.
特殊情况,在fedora下,默认系统里没有kernel-devel包,如果此时安装的话,版本会比当前的kernel版本高,此时编译时会出现类似这样的错误:
make[1]: *** /lib/modules/4.14.13-200.fc26.x86_64/build: No such file or directory. Stop.
make: *** [Makefile:4: all] Error 2
错误就是当前kernel版本是"4.14.13-200.fc26",但是直接用"dnf install kernel-devel"安装的版本是"4.14.14-200.fc26"。这种情况下可以用下面的命令来安装:
sudo dnf install "kernel-devel-uname-r == $(uname -r)"
linux 内核模块 编写例子,Linux内核模块实例相关推荐
- linux 内核模块 编写例子,LINUX内核模块编程8
Chapter 8. System Calls 系统调用 到目前为止,我们所做的只是使用完善的内核机制注册/proc文件和处理设备的对象.如果只是想写一个设备驱动, 这些内核程序员设定的方式已经足够了 ...
- linux 脚本编写基本命令,Linux Shell命令行及脚本编程实例详解
<Linux典藏大系:Linux Shell命令行及脚本编程实例详解>共15章,分为两篇.主要内容包括:Linux 及Linux Shell简介.初识Linux Shell.常用Shell ...
- linux grep命令例子,Linux中grep命令的12个实践例子
grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和 ...
- linux多线程编写哲学家,Linux系统编程(三) ------ 多线程编程
一.线程的创建和调度 1.线程是程序执行的某一条指令流的映像. 为了进一步减少处理机制的空转时间,支持多处理器及减少上下文切换开销,进程在演化中出现了另一个概念--线程.它是进程内独立的一条运行路线, ...
- linux文件指令 例子,Linux 命令:文件目录操作与实例
本文介绍基础的文件操作:创建,移动,编辑,删除 文件和文件夹 命令与案例: mkdir 创建目录 --创建两个目录tangym@ubuntu:~$ mkdir test2 test3 --在test1 ...
- linux脚本编写思想,Linux脚本编写入门基础(三)
1.1.2 注释在进行shell编程时,以#开头的句子表示注释,直到这一行的结束.我们真诚地建议您在程序中使用注释.如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚 ...
- linux条件表达式例子,Linux的Iptables命令的基本知识(三)-常用匹配条件示例和执行动作...
上一期给大家简单讲解了Linux的Iptables命令的常用命令示例,本期给大家讲解一下Linux的Iptables命令的基本知识-常用匹配条件示例和执行动作. 五.常用匹配条件示例: 1.-i:流出 ...
- linux fb应用例子,Linux下利用framebuffer画点的程序小例子
Linux下利用framebuffer画点的程序小例子: /* * ================================================================== ...
- linux ipc shmget 例子,Linux IPC之共享内存C 事例(示例代码)
简介 共享内存(shared memory)是最简单的Linux进程间通信方式之一.使用共享内存,不同进程可以对同一块内存进行读写.由于所有进程对共享内存的访问就和访问自己的内存空间一样,而不需要进行 ...
最新文章
- jQuery事件处理一瞥
- 这所985大学宣布调查结果:抄袭事实成立!撤销其硕士学位!
- 最强的浏览器插件——油猴脚本
- python上下文管理器
- 用VuePress来搭建一个极简的静态网站
- linux远程关闭不中断
- java内存分配和垃圾回收,Java内存分配与垃圾回收
- 漫步最优化二十一——全局收敛
- JZOJ 1237. 餐桌
- 求两条轨迹间的hausdorff距离_干货 | 轨迹方程问题?两招咔嚓!
- chart控件做实时曲线显示_Spark+Kafka+WebSocket+eCharts实时分析-完全记录(5)
- 9-Shell的逻辑操作符知识介绍-实践及企业案例脚本剖析
- 从“为什么不能直接打开PDF文件”说到“脚本***”
- 东方财富单独下单软件_炒股理财,就选东方财富证券!
- 杰控连接mysql_杰控组态手册22.数据库连接.pdf
- linux:mac系统占用空间过大,如何查看系统文件大小分布
- fbx格式转gif_FBX文件打开工具
- 古风系统仙侠文推荐_不容错过仙侠文强推:文笔超好,挑灯夜读系列,看完顿觉书荒...
- java实训项目百度脑图
- 【python】用递归解决汉洛塔问题