
kernel
文章平均质量分 79
乐乐园
.........
展开
-
execl 内存泄露跟踪
遇到了嵌入式linux下面系统级内存泄露问题。跟踪问题日志。平台:ARM9内核:2.6.22问题:execl造成系统内存减少,通过cat /proc/memoinfo 发现少的内存并且都移往slab中去了测试代码:#include #include #include #include #include #include #include #inc转载 2015-04-20 20:24:23 · 535 阅读 · 0 评论 -
【百度分享】频繁分配释放内存导致的性能问题的分析 .
现象1 压力测试过程中,发现被测对象性能不够理想,具体表现为: 进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约70 2 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒增量大于10000。初步分析majflt代表major fault,中文名叫大错误,minflt代表minor转载 2015-04-21 11:36:38 · 496 阅读 · 0 评论 -
洞悉linux下的Netfilter&iptables:开发一个match模块【实战】
自己开发一个match模块 今天我们来写一个很简单的match来和大家分享如何为iptables开发扩展功能模块。这个模块是根据IP报文中有效载荷字段的长度来对其进行匹配,支持固定包大小,也支持一个区间范围的的数据包,在用户空间的用法是: iptables-A FORWARD -m pktsize --size XX[:YY] -j DROP转载 2015-04-21 11:53:59 · 436 阅读 · 0 评论 -
洞悉linux下的Netfilter&iptables:为防火墙增添功能模块【实战】
为netfilter/iptables增添新功能模块:ipp2p 一个防火墙功能模块包含两部分:内核空间的ko模块和用户空间的so模块。如下: 而且文件的命令都非常有讲究。例如我们有个模块名叫AAA,那么内核中该模块的文件名一般为ipt_AAA.c和ipt_AAA.h;对应的用户空间模块叫libipt_AAA.c。今天我通过简单的向防火墙添加ipp2p扩展功能模块的例子,向转载 2015-04-21 11:54:05 · 702 阅读 · 0 评论 -
洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【上】
预备知识:part1: 初见getopt_long() 在分析iptables源码时,作为命令解析的核心函数getopt_long()不得不提。随便百度或google搜索关于该函数的介绍有很多例子和解释,这里我只举一例,目的是让大家了解传递给iptables命令的每个参数是如何被正确识别并处理的。getopt_long(int argc,char * constargv[],转载 2015-04-21 11:50:46 · 537 阅读 · 1 评论 -
Linux启动过程综述
Bootloader在Alpha/AXP平台上引导Linux通常有两种方法,一种是由MILO及其他类似的引导程序引导,另一种是由Firmware直接引导。MILO功能与i386平台的LILO相近,但内置有基本的磁盘驱动程序(如IDE、SCSI等),以及常见的文件系统驱动程序(如ext2,iso9660等), firmware有ARC、SRM两种形式,ARC具有类BIOS界面,甚至还有多重引导的转载 2015-04-21 11:32:48 · 249 阅读 · 0 评论 -
洞悉linux下的Netfilter&iptables:开发自己的hook函数【实战】(下)
从用户空间来操作内核中Netfilter框架里自定义的HOOK函数 本文承上一篇博客。主要是和大家探讨一下如何从用户空间操作我已经注册到Netfilter中的自定义hook函数。有些童鞋可能就纳闷,难道iptables不能操作到么?如果我们需要让iptables操作我们在Netfilter框架中做过的扩展,那么最有效最直接的办法就是开发一个match或者target。但我们现在转载 2015-04-21 11:55:39 · 754 阅读 · 0 评论 -
洞悉linux下的Netfilter&iptables:开发自己的hook函数【实战】(上)
向Netfilter中注册自己的hook函数 数据包在协议栈中传递时会经过不同的HOOK点,而每个HOOK点上又被Netfilter预先注册了一系列hook回调函数,当每个清纯的数据包到达这些点后会被这些可恶hook函数轮番调戏一番。有时候我们就在想,只让系统自带的这些恶棍来快活,我自己能不能也make一个hook出来和它们同流合污呢?答案是肯定的。 我们来回顾一转载 2015-04-21 11:54:41 · 1409 阅读 · 0 评论 -
coredump来调试崩溃进程
在平常开发中,经常碰到进程异常崩溃退出的情况,这时候最便捷的方法就是生成core文件,然后通过gdb在查看程序崩溃时的调用栈,一般很快就能定位出问题。 linux系统中程序异常崩溃时默认是不会自动生成core文件的,这时候我们一般需要使用以下命令将core文件生成开关打开,然后再在终端手动拉起进程,当进程再次崩溃时就会生成core文件。# 将coresize从默认的0改成无限制ulimi原创 2015-04-21 11:40:01 · 1902 阅读 · 0 评论 -
洞悉linux下的Netfilter&iptables:iptables命令行工具源码解析【下】
iptables用户空间和内核空间的交互iptables目前已经支持IPv4和IPv6两个版本了,因此它在实现上也需要同时兼容这两个版本。iptables-1.4.0在这方面做了很好的设计,主要是由libiptc库来实现。libiptc是iptables control library的简称,是Netfilter的一个编程接口,通常被用来显示、操作(查询、修改、添加和删除)netfilter的转载 2015-04-21 11:53:11 · 1090 阅读 · 0 评论