一个简单的内核模块来读取 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内核模块实例相关推荐

  1. linux 内核模块 编写例子,LINUX内核模块编程8

    Chapter 8. System Calls 系统调用 到目前为止,我们所做的只是使用完善的内核机制注册/proc文件和处理设备的对象.如果只是想写一个设备驱动, 这些内核程序员设定的方式已经足够了 ...

  2. linux 脚本编写基本命令,Linux Shell命令行及脚本编程实例详解

    <Linux典藏大系:Linux Shell命令行及脚本编程实例详解>共15章,分为两篇.主要内容包括:Linux 及Linux Shell简介.初识Linux Shell.常用Shell ...

  3. linux grep命令例子,Linux中grep命令的12个实践例子

    grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和 ...

  4. linux多线程编写哲学家,Linux系统编程(三) ------ 多线程编程

    一.线程的创建和调度 1.线程是程序执行的某一条指令流的映像. 为了进一步减少处理机制的空转时间,支持多处理器及减少上下文切换开销,进程在演化中出现了另一个概念--线程.它是进程内独立的一条运行路线, ...

  5. linux文件指令 例子,Linux 命令:文件目录操作与实例

    本文介绍基础的文件操作:创建,移动,编辑,删除 文件和文件夹 命令与案例: mkdir 创建目录 --创建两个目录tangym@ubuntu:~$ mkdir test2 test3 --在test1 ...

  6. linux脚本编写思想,Linux脚本编写入门基础(三)

    1.1.2 注释在进行shell编程时,以#开头的句子表示注释,直到这一行的结束.我们真诚地建议您在程序中使用注释.如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚 ...

  7. linux条件表达式例子,Linux的Iptables命令的基本知识(三)-常用匹配条件示例和执行动作...

    上一期给大家简单讲解了Linux的Iptables命令的常用命令示例,本期给大家讲解一下Linux的Iptables命令的基本知识-常用匹配条件示例和执行动作. 五.常用匹配条件示例: 1.-i:流出 ...

  8. linux fb应用例子,Linux下利用framebuffer画点的程序小例子

    Linux下利用framebuffer画点的程序小例子: /* * ================================================================== ...

  9. linux ipc shmget 例子,Linux IPC之共享内存C 事例(示例代码)

    简介 共享内存(shared memory)是最简单的Linux进程间通信方式之一.使用共享内存,不同进程可以对同一块内存进行读写.由于所有进程对共享内存的访问就和访问自己的内存空间一样,而不需要进行 ...

最新文章

  1. jQuery事件处理一瞥
  2. 这所985大学宣布调查结果:抄袭事实成立!撤销其硕士学位!
  3. 最强的浏览器插件——油猴脚本
  4. python上下文管理器
  5. 用VuePress来搭建一个极简的静态网站
  6. linux远程关闭不中断
  7. java内存分配和垃圾回收,Java内存分配与垃圾回收
  8. 漫步最优化二十一——全局收敛
  9. JZOJ 1237. 餐桌
  10. 求两条轨迹间的hausdorff距离_干货 | 轨迹方程问题?两招咔嚓!
  11. chart控件做实时曲线显示_Spark+Kafka+WebSocket+eCharts实时分析-完全记录(5)
  12. 9-Shell的逻辑操作符知识介绍-实践及企业案例脚本剖析
  13. 从“为什么不能直接打开PDF文件”说到“脚本***”
  14. 东方财富单独下单软件_炒股理财,就选东方财富证券!
  15. 杰控连接mysql_杰控组态手册22.数据库连接.pdf
  16. linux:mac系统占用空间过大,如何查看系统文件大小分布
  17. fbx格式转gif_FBX文件打开工具
  18. 古风系统仙侠文推荐_不容错过仙侠文强推:文笔超好,挑灯夜读系列,看完顿觉书荒...
  19. java实训项目百度脑图
  20. 【python】用递归解决汉洛塔问题

热门文章

  1. SpringMVC和Dubbo的整合
  2. 删除重复字符串的算法
  3. BCH升级新版本,实不相瞒该抄底了
  4. Furein平台-比特币现金晋级毕竟在吵什么
  5. Java并发编程之线程状态总结
  6. RecycleView分割线
  7. LVM逻辑卷轴管理和磁盘配额实验
  8. NFS配置全新设置常用参数说明
  9. 阿里云Windows服务器重启后无法远程桌面连接,大量注册表在检测
  10. spring集成Apache的ActiveMQ