Linux内核
文章平均质量分 72
雜貨鋪老闆
这个作者很懒,什么都没留下…
展开
-
Linux内核Makefile文件(一)
原文地址:http://blog.sina.com.cn/s/blog_4ce1e0e30100g83k.html 本文是/Documentation/kbuild/makefiles.txt的中文译稿Linux内核Makefiles本篇文章描述了Linux内核Makefiles。=== 目录 === 1 概述 === 2 角色分工转载 2013-04-17 10:23:13 · 806 阅读 · 0 评论 -
Overview of Linux Kernel Security Features
原文地址:https://www.linux.com/learn/docs/727873-overview-of-linux-kernel-security-features Editor's Note: This is a guest post from James Morris, the Linux kernel security subsystem maintainer and ma转载 2013-08-12 17:57:45 · 1361 阅读 · 0 评论 -
Linux 内核IP和UDP检验和计算
原文地址:http://wenx05124561.blog.163.com/blog/static/124000805201242032041268/· IP checksuma. 接收报文struct iphdr *iph = ip_hdr(skb);if (unlikely(ip_fast_csum((u8 *)iph, iph->ihl)转载 2014-02-08 10:53:26 · 958 阅读 · 0 评论 -
Linux内核构造和发送vlan&udp数据报文
原文地址:http://wenx05124561.blog.163.com/blog/static/124000805201242023941402/Linux内核中构造ip数据包,通过网卡驱动直接发送是一种有效的发送数据包方式。本文通过构造数据包和发送数据包来实现该方式。构造数据包:构造vlant头的ip和udp数据包#define IP_HEAD_LENTH转载 2014-02-08 10:51:47 · 2873 阅读 · 0 评论 -
配置内核看门狗支持
原文地址:http://sunnyshineboy.blog.163.com/blog/static/2028151182012539552151/linux内核的默认配置中没有看门狗,(即/dev/目录中没有watchdog设备)需要对内核进行配置添加对看门狗的支持,下面以Redhat9.0为例。想要对watchdog了解可以查看内核中的文档非常有用。[root@转载 2014-08-29 17:39:04 · 4628 阅读 · 0 评论 -
使用ctl_table向内核传递数据
在/proc/sys/目录下创建文件实现参数变更#include static struct ctl_table_header *ctl_table_test_header;unsigned int sysctl_test_int;char sysctl_test_string[256];static struct ctl_table ctl_table_test[]原创 2015-01-27 15:51:13 · 1508 阅读 · 0 评论 -
Linux内核中timer_list定时器的使用
设置定时器结构体的回调函数参数、回调函数、到期时间初始化定时器添加定时器如果需要重复执行,则在回调函数里使用mod_timer继续激活定时器回调#include #include struct timer_list test_timer;static void test_func(unsigned long data){ printk("jiffies:原创 2015-01-28 13:18:58 · 623 阅读 · 0 评论 -
Linux内核中tasklet的使用
调用tasklet_init初始化结构体struct tasklet_struct调用tasklet_schedule将结构体加入软中断的链表,只会执行一次tasklet的回调函数调用tasklet_kill等待tasklet执行完毕,如果tasklet_disable了,则会一直等待#include #include static struct taskle原创 2015-01-27 18:17:30 · 713 阅读 · 0 评论 -
中断处理过程
原文地址:http://blog.csdn.net/sicf/article/details/89572191. 在entry_32.S 里面,会建立一个interrupt数组, interrupt数组,是一个函数指针数组。数组的每个元素都指向一个函数 其实呢,数组的每个元素,指向的是一段代码。 这段代码的功能为: push转载 2015-01-28 17:20:35 · 534 阅读 · 0 评论 -
Linux内核中工作队列的使用work_struct,delayed_work
初始化工作队列调度工作队列取消工作队列#include #include #include #include #include static struct work_struct test_work;static struct delayed_work test_delayed_work;static void test_func(struct work_st原创 2015-01-29 11:35:58 · 3104 阅读 · 0 评论 -
Linux内核线程中信号处理
创建线程允许信号屏蔽指定信号信号处理#include #include #include #include #include static struct task_struct *test_thread;static int test_thread_func(void *arg){ sigset_t hupmask; siginitset(&hupm原创 2015-01-29 10:41:09 · 935 阅读 · 0 评论 -
Linux内核中bitmap的使用
声明bitmap,实际上就是一个unsigned long数组bit计数从0开始#include #include #include #include #include #define BIT_CNT 50DECLARE_BITMAP(test_map, BIT_CNT) = {[0 ... BITS_TO_LONGS(BIT_CNT) - 1] = ~0};s原创 2015-02-02 10:44:06 · 2346 阅读 · 0 评论 -
Linux内核中rbtree的使用
在结构体内嵌struct rb_node定义根节点struct rb_root把节点依据key加入红黑树移除节点遍历红黑树#include #include #include #define NODES 20struct test_node { u32 key; struct rb_node rb; u32 val;};static原创 2015-02-03 14:04:46 · 1287 阅读 · 1 评论 -
linux内核中操作文件的方法--使用get_fs()和set_fs(KERNEL_DS)
原文地址:http://blog.csdn.net/fuyajun01/article/details/8691385#include #include #include #include #include #include #include #include #include #define MY_FILE "/root/LogFile"转载 2014-12-11 14:13:39 · 699 阅读 · 0 评论 -
rmmod: chdir(/lib/modules): No such file or directory 解决方法
原文地址:http://blog.csdn.net/quyang0602/article/details/7351431使用rmmod会出现 rmmod : chdir(/lib/modules): No such file or directory ? 现在的内核模块在插入卸载时都会要转到 “/lib/modules/内核版本号/ ” 这个目录里。所以只要建立这个转载 2015-01-15 17:06:02 · 458 阅读 · 0 评论 -
Linux内核中使用红黑树的扩展特性实现区间树(Interval tree)
原文地址:http://galex.cn/linux%E5%86%85%E6%A0%B8%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%BA%A2%E9%BB%91%E6%A0%91%E7%9A%84%E6%89%A9%E5%B1%95%E7%89%B9%E6%80%A7%E5%AE%9E%E7%8E%B0%E5%8C%BA%E9%97%B4%E6%A0%91%EF%BC%88int转载 2015-02-03 16:48:52 · 2021 阅读 · 0 评论 -
miscdevice混杂设备驱动
原文地址:http://blog.csdn.net/tong646591/article/details/8301925定义:字符设备的一种,它们共享一个主设备号(10),但次设备号不同,所有的混杂设备形成一个链表,对设备访问时内核根据次设备号查找到相应的miscdevice设备。例如:触摸屏,LED,按键,串口。即:为了节约主设备号,将某些设备用链表的形式连接在一转载 2015-01-17 14:54:30 · 480 阅读 · 0 评论 -
read 系统调用剖析--file_operations中read/write函数与内核系统调用的关系
原文地址:http://blog.chinaunix.net/uid-7332782-id-3216393.html在阅读LDD3-第三章-字符设备驱动程序中:点击(此处)折叠或打开 struct file_operations scull_fops = { .owner = THIS_MODULE, .llseek = s转载 2015-01-22 10:49:48 · 809 阅读 · 0 评论 -
linux内核workqueue的两种调度方式
原文地址:http://blog.chinaunix.net/uid-20703572-id-1889214.html 第一种使用schedule_work手动调度:#includelinux/init.h>#include linux/module.h>#include linux/timer.h>#include linux/time转载 2013-08-12 17:53:24 · 989 阅读 · 0 评论 -
内核中工作队列(linux工作队列)
原文地址:http://gqf2008.iteye.com/blog/447060 Linux自从2.6.20之后,工作队列发生了一些变化,目前从网络上搜索的资料一般都是介绍老版本的工作队列,很少见到对新版本的介绍。本文对新老版本都做了简要概述,并分别提供了简单的实作案例。工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和B转载 2013-08-12 16:08:41 · 811 阅读 · 0 评论 -
What is Linux Driver Model ?
原文地址:http://linuxkernel51.blogspot.com/2011/02/linux-driver-model.html The Linux Device model is built around the concept of busses, devices and drivers. All devices in the system are connected to转载 2013-08-08 23:54:56 · 1007 阅读 · 0 评论 -
Linux内核Makefile文件(二)
原文地址:http://blog.sina.com.cn/s/blog_4ce1e0e30100g83o.html === 6 体系Makefile文件在开始进入各个目录编译之前,顶层Makefile文件设置编译环境和做些准备工作。顶层Makefile文件包含通用部分,arch/$(ARCH) /Makefile包含该体系架构所需的设置。因此arch/$(ARCH)/Makefil转载 2013-04-17 10:25:15 · 921 阅读 · 0 评论 -
Linux内核的编译控制
make help使用make help查看内核Makefile支持的目标 .configLinux内核编译选项主要由.config文件控制通过一些*config之类的目标由主机程序conf生成当make命令行中带有*config一类的目标时会生成.config文件 ARCH交叉编译的时候使用ARCH=选择架构如:ARCH=mips CROSS_原创 2013-04-17 10:22:16 · 1224 阅读 · 0 评论 -
Linux内核的编译makefiles.txt
https://github.com/kernel-digger/linux/blob/comments/Documentation/kbuild/makefiles.txt === 1 OverviewMakefile包含5个部分:1. 顶层Makefile。2. 配置文件.config。3. 对应架构的arch/$(ARCH)/Makefile。4. 对原创 2013-07-07 21:20:21 · 1129 阅读 · 0 评论 -
$(if $(KBUILD_VERBOSE:1=),@) 语法释疑
原文地址:http://blog.csdn.net/lcw_202/article/details/6656633 内核版本:2.6.35.13在 Makefile 的 125 行中有一句:[cpp] view plaincopyprint?$(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUT转载 2013-07-13 16:48:07 · 1290 阅读 · 0 评论 -
Linux内核中bool值的返回
使用两个 !! 取反再取反对非零值返回bool值1对零值返回bool值0 使用 condition ? 1 : 0 返回bool值原创 2013-06-27 18:01:11 · 1855 阅读 · 0 评论 -
Linux内核参数和模块参数
内核代码文档kernel-parameters.txt中列出了内核支持的参数这里的内核参数指通过内核加载器,如GRUB传递给内核的参数 内核参数内核中大部分的内核参数使用宏__setup来定义在内核代码树下使用-rin "__setup(\"*\""查看定义了哪些参数例如__setup("selinux=", selinux_enabled_setup); 使用宏e原创 2013-07-01 15:19:59 · 1644 阅读 · 0 评论 -
查看Linux内核启动时调用的init函数
Linux内核引导加载后会调用一些初始化函数其中有很多模块化的代码使用do_initcalls调用这些函数通过宏pure_initcall、core_initcall、subsys_initcall、fs_initcall等声明在内核链接的时候将函数指针加入".initcall"节这样do_initcalls遍历该节中的函数指针进行调用 启动时按e键在GRUB中加入原创 2013-07-01 15:50:32 · 6086 阅读 · 0 评论 -
Linux内核线程列表
使用ps aux命令查看到的内核线程列表 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 4.2 6.0 17504 15140 ? Ss 00:21 0:04 /usr/lib/systemd/systemdroot原创 2013-07-01 16:25:06 · 1924 阅读 · 0 评论 -
Kbuild: the Linux Kernel Build System
原文地址:http://www.linuxjournal.com/content/kbuild-linux-kernel-build-system Dec 26, 2012 By Javier Martinez... inHOW-TOskernelOne amazing thing about Linux is that the same code b转载 2013-07-17 13:02:55 · 1484 阅读 · 0 评论 -
Linux内核scripts/Makefile.build文件结构
1. 默认目标__build2. 初始化obj-y、obj-m等变量3. -include include/config/auto.conf 内含CONFIG_RING_BUFFER=y等变量列表4. include scripts/Kbuild.include 内含各辅助函数、变量的定义 如变量build := -f $(if $(KBUILD_SRC),$(srctre原创 2013-07-18 19:18:06 · 3669 阅读 · 0 评论 -
Linux 内核 Makefile 体系简单分析
原文地址:http://blog.chinaunix.net/uid-26806098-id-3141136.html 众所周知,Linux内核是使用make命令来配置并编译的,那必然少不了Makefile。在内核目录树中我们可以看到内核编译系统的顶层Makefile文件。但是如此复杂、庞大的内核源码绝不可能使用一个或几个Makefile文件来完成配置编译,而是需要一套同样复杂、庞大,且为转载 2013-07-22 10:16:06 · 824 阅读 · 0 评论 -
Linux 内核IP和UDP检验和计算
原文地址:http://wenx05124561.blog.163.com/blog/static/124000805201242032041268/ · IP checksuma. 接收报文struct iphdr *iph = ip_hdr(skb);if (unlikely(ip_fast_csum((u8 *)iph, iph->ihl)))转载 2013-06-26 00:19:32 · 1924 阅读 · 0 评论 -
Linux内核中位图的使用
使用位图标记 #include #ifdef CONFIG_64BIT#define BITS_PER_LONG 64#else#define BITS_PER_LONG 32#endif /* CONFIG_64BIT *//*计算在第几个unsigned long数组中的掩码*/#define BIT_MASK(nr) (1UL <<原创 2013-06-05 14:04:01 · 1602 阅读 · 0 评论 -
linux网络协议栈分析——ioctl的调用流程
原文地址:http://blog.csdn.net/cbmsft/article/details/7214639 首先从系统调用开始,ioctl的系统调用在fs/ioctl.c中:[cpp] view plaincopySYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd, unsign转载 2013-07-24 21:16:06 · 1214 阅读 · 0 评论 -
ioctl系统调用流程
原文地址:http://blog.sina.com.cn/s/blog_60692ff60100ecd2.html 一、系统调用框架与系统调用相关的数据结构和函数系统调用函数名以“sys_”开头,后面是该系统调用的名字,由此构成了sys_name()这样的函数名。在include/asm/unistd.h中不同的体系结构为每一个系统调用定义了惟一的编号,假设用name来表示系统转载 2013-07-24 21:14:39 · 2223 阅读 · 0 评论 -
The Linux Kernel Module Programming Guide
原文地址:http://tldp.org/LDP/lkmpg/2.6/html/ Table of ContentsForeword1. Authorship2. Versioning and Notes3. Acknowledgements1. Introduction1.1. What Is A Kernel Module?1.2. How Do Modules Get转载 2013-07-27 16:59:28 · 991 阅读 · 0 评论 -
Linux设备驱动编程模型之上层容器篇
原文地址:http://blog.csdn.net/bullbat/article/details/7259261 2.6内核增加了一个引人注目的新特性——统一设备模型(device model)。设备模型提供了一个独立的机制专门来表示设备,并描述其在系统中的拓扑结构,从而使得系统具有以下优点:l 代码重复最小化。l 提供诸如引用计数这样的统一机制。转载 2013-08-08 22:03:22 · 846 阅读 · 0 评论 -
linux软中断与tasklet
原文地址:http://blog.csdn.net/rockrockwu/article/details/7315677软中断软中断由struct softirq_action{Void(*action)(struct softirq_action *)}表示。并且当前内核中的软中断总数固定为32个,由数组Static struct so转载 2015-04-13 17:26:30 · 638 阅读 · 0 评论