【Linux内核&驱动&内核模块】
本章主要讨论linux内核和相关的模块技术。
paradox_1_0
自由、努力、向上。
展开
-
Linux4.4.0-21内核版本下一个简单的netfilter实例源码
本实例其实是《Linux网络编程》第二版第17章的一个netfilter框架的演示实例,但是在新版本内核下因为一些数据结构和常量定义名的调整是不能编译通过的。这里是在4.4.0-21内核版本下经过一些细节修改以及自己编写的用户态设置套接字选项的代码。test.c#include <linux/netfilter_ipv4.h>#include <linux/modul...原创 2019-11-16 15:23:24 · 960 阅读 · 0 评论 -
Linux内核create_singlethread_workqueue与create_workqueue学习
区别:使用create_singlethread_workqueue创建工作队列即使对于多CPU系统,内核也只负责在一个cpu上创建一个worker_thread内核线程;而使用create_workqueue创建工作队列对于多CPU系统,内核将会在每个CPU上创建一个worker_thread内核线程,使得线程处理的事务能够并行化.代码:worker_thread.c#inc...原创 2019-11-16 12:46:01 · 1253 阅读 · 1 评论 -
Linux内核线程学习
kernel_thread.c#include <linux/module.h>#include <linux/moduleparam.h>#include <linux/init.h>#include <linux/kmod.h>#include <linux/sched.h>#include <linux/del...原创 2019-11-16 12:37:46 · 133 阅读 · 0 评论 -
Linux中mdelay()和msleep()学习总结
Linux内核开发中,mdelay()和msleep()都有延时作用,但它们是有区别的。共同点:mdelay()和msleep()都是延时的毫秒数。 不同点:mdelay()是忙等待函数,其在延时过程中是占用cpu资源的,被占用的cpu同一时间不能执行其他任务;而msleep是休眠函数,是将当前调用线程挂起一段时间,不占用cpu资源。 另外一点区分udelay()、mdelay()、nde...原创 2019-11-16 11:43:37 · 1600 阅读 · 0 评论 -
Linux内核空间文件操作函数
在内核中操作文件的函数与用户空间不同,需要使用内核空间专用的一套函数,主要有filp_open()、filp_close()、vfs_read()、vsf_write()、set_fs()、get_fs()等,上述函数在头文件linux/fs和asm/uaccess.h中声明。1.内核空间中的文件结构内核中对文件操作额文件结构struct file,是进行文件操作时经常使用的结构,结构的...原创 2019-11-09 17:05:00 · 2130 阅读 · 0 评论 -
Ubuntu下netlink套接字测试实例
此项目在Linux ubuntu 4.4.0-21-generic实际环境中正常运行。1.sender.c用户态netlink程序#include <stdio.h>#include <stdlib.h>#include <sys/socket.h>#include <string.h>#include <linux/netl...原创 2019-11-01 21:03:20 · 688 阅读 · 0 评论 -
Linux5.2.0内核netlink套接字的接口定义
/* SPDX-License-Identifier: GPL-2.0 */#ifndef __LINUX_NETLINK_H#define __LINUX_NETLINK_H#include <linux/capability.h>#include <linux/skbuff.h>#include <linux/export.h>#inclu...原创 2019-10-28 20:15:49 · 696 阅读 · 0 评论