Linux内核编程
文章平均质量分 89
kanguolaikanguolaik
2013.08.07 今天是个好日子
展开
-
Linux内核代码,传参数
一、源代码1.1 temp_main.c#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inclu原创 2014-01-13 17:00:58 · 980 阅读 · 0 评论 -
Linux进程调度
一、策略二、Linux调度算法原创 2014-11-12 00:04:20 · 877 阅读 · 0 评论 -
Linux内核模块:初始化、加载/卸载、模块参数、导出符号、错误处理、模块装载竞争
一、代码模块1:原创 2014-10-29 14:08:12 · 2206 阅读 · 0 评论 -
Linux内核:编译内核
参考资料:http://blog.chinaunix.net/uid-28241959-id-3827944.html原创 2014-08-20 13:31:55 · 1523 阅读 · 0 评论 -
Linux内核数据类型及跨平台
一、内核对象数据类型1.1 C语言类型1.2 确定大小的类型1.3原创 2014-10-30 14:38:06 · 4407 阅读 · 0 评论 -
Linux内核等待队列
一、等待队列二、使用原创 2014-10-31 13:53:15 · 1092 阅读 · 0 评论 -
Linux内核:从skb获取udp头,udp_hdr()获取到是错误的udp头
内核代码HOOK函数中,从skb获取udp头时:一般通过udp_hdr原创 2014-11-19 17:38:54 · 7457 阅读 · 1 评论 -
Linux内核调试:vmdumper <world-id> nmi,死循环调试
此种方法只适合vmvare esx管理的虚拟机。一、设置变量echo 1 > /proc/sys/kernel/unknown_nmi_panicecho 1 > /proc/sys/kernel/panic_on_unrecovered_nmi参数含义说明:就是向虚拟机发送nmi时,虚拟机可以产生panic,产生core文件。参照内核代码中:documentation/sys原创 2014-11-25 13:27:06 · 1664 阅读 · 0 评论 -
Linux内核开发常用函数及其头文件
一、protocol//protocol//-----include/linux/in.hIPPROTO_UDPINADDR_ANYstruct sockaddr_in//-----include/linux/ip.h struct iphdrip_hdr()//-----include/linux/udp.h struct udphdrud原创 2015-01-31 17:21:12 · 6025 阅读 · 1 评论 -
Linux内核:for_each_possible_cpu()/for_each_present_cpu()/for_each_online_cpu()区别
一、介绍假设一太机器上有8个CPU:1.1 cpu_possible_map 机器上最多有多少个CPU,包括本机的CPU,以及可以热插拔的CPU。 1. 假设cpu_possible_map为10,本机CPU个数为8个,则最多可以再添加2个可插拔CPU。1.2 cpu_present_map 当前有多少个CPU。原创 2015-03-12 18:02:58 · 8805 阅读 · 0 评论 -
Linux进程管理
一、进程概述二、进程描述符及其任务结构三、进程创建四、原创 2014-11-10 19:49:57 · 752 阅读 · 0 评论 -
Linux内核:安装kdb
一、下载kdb 文件名原创 2014-08-20 13:54:47 · 3372 阅读 · 0 评论 -
Linux内核:kthread_create(线程)、SLEEP_MILLI_SEC
一、代码#include #include #include #include #include MODULE_VERSION("1.0.0_0");MODULE_LICENSE("GPL");MODULE_AUTHOR("gwy");#ifndef SLEEP_MILLI_SEC#define SLEEP_MILLI_SEC(nMilliSec) \ do原创 2014-09-12 15:12:42 · 2776 阅读 · 0 评论 -
Linux内核编程:第一个Linux内核代码
生成testtcp.ko模块,添加到内核。添加该模块后,每个由该机器发出的数据包,如果是TCP协议,且源端口为81,将其改为RST包发出。一、代码1.1 文件:testtcp.c#include #include #include #include #include #include #include #include #include #include #原创 2013-09-24 10:38:47 · 1546 阅读 · 0 评论 -
Linux内核:读写配置文件、/proc
一、介绍 Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。 proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。 它以文件系统的方式为访问系统内核数据的操作提供接口。二、代码 代码,是在/proc/sys/net/ipv4/下创建目录test_server/,创建文原创 2014-02-27 10:23:43 · 2871 阅读 · 0 评论 -
Linux内核:insmod:error inserting 'hinfo.ko': -1 Unknown sysmbol in module
一、错误现象 执行:insmod hinfo.ko 出现错误:insmod:error inserting 'hinfo.ko': -1 Unknown sysmbol in module二、解决方法2.1 modinfo modinfo hinfo.ko2.2 modprobe modprobe uio原创 2013-10-22 19:18:42 · 2475 阅读 · 0 评论 -
Linux内核调试:kdump、vmcore、crash、kernel-debuginfo
一、简介 linux内核发送崩溃时,会生成一个内核转储文件vmcore。 可以通过分析vmcore分析出内核崩溃的原因。 crash是一个被广泛应用的内核奔溃转储文件分析工具。 使用crash调试内核转储文件,需要安装crash工具和内核调试工具kernel-debuginfo。二、安装crash、kernel-debuginfo2.1 安装cr原创 2014-02-24 09:49:19 · 32815 阅读 · 1 评论 -
linux内核:定时器
一、Linux内核定时器1.1 代码#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include MODULE_LICENSE("GPL");st原创 2014-03-07 17:32:55 · 987 阅读 · 0 评论 -
Linux内核:分析coredump文件 - 内核代码崩溃
一、分析Core文件1.1 找到core文件目录,启动mycrash:mycrash1.2 查看崩溃的堆栈信息:bt1.3 反汇编崩溃点的代码,10行:dis -l extract_http_info+73 10二、分析源文件hinfo.ko2.1 查看源文件信息:objdump -S hinfo.ko > tmp2.2 从tmp文件中查找1原创 2013-10-23 17:21:37 · 19935 阅读 · 0 评论 -
linux内核调试:kgdb,配置kgdb调试环境
一、kgdb介绍 linux下的模块开发,不可避免要用到kgdb来调试。 kgdb的调试环境需要一台开发机,一台目标机,其中代码运行在目标机上,开发机通过串口来调试目标机上的模块代码。 用vmware可以方便的使用管道来代替真正的串口,而且只用一台笔记本就可以玩起来,非常简单粗暴。原创 2014-09-17 17:14:19 · 6727 阅读 · 0 评论 -
Linux CentOS内核编译:下载CentOS源码、编译2.6.32-220的错误(apic.c:819 error 'numi_watchdog' undeclared)
一、下载CentOS源码1.1 查看CentOS版本1.2 查看Linux内核版本原创 2014-09-18 17:57:21 · 2635 阅读 · 0 评论 -
Netfilter:源IP是本机的包,不会进入NF_INET_FORWARD
:源IP是本机的包,不会进入NF_INET_FORWARD原创 2014-08-28 17:23:58 · 1994 阅读 · 1 评论 -
Linux内核:写proc文件的返回值问题
一、使用说明1. 用户态写(echo或write())内核/proc文件时,返回值,就是内核的函数提供的返回值。2. echo数据时的返回情况: a. echo写int数据,可以用以下2种方式: echo "6" > /proc/sys/net/ipv4/test/testdata echo 7 > /p原创 2015-08-12 18:39:31 · 10626 阅读 · 0 评论