Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1254203
  • 博文数量: 185
  • 博客积分: 495
  • 博客等级: 下士
  • 技术积分: 1418
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-02 15:12
个人简介

治肾虚不含糖,专注内核性能优化二十年。 https://github.com/KnightKu

文章分类

全部博文(185)

文章存档

2019年(1)

2018年(12)

2017年(5)

2016年(23)

2015年(1)

2014年(22)

2013年(82)

2012年(39)

发布时间:2012-12-21 14:36:11

参考这里:http://blogs.msdn.com/b/oldnewthing/archive/2004/06/29/168719.aspx这个例子非常好,线程安全但不是可重入的:int length = 0;char *s = NULL;// Note: Since strings end with a 0, if we want to// add a 0, we encode it as "\0", and encode a// backslash as "\\".// WARNING! This code is buggy - do not use!void AddToString(i......【阅读全文】

阅读(1206) | 评论(0) | 转发(0)

发布时间:2012-12-21 10:53:21

1.导致并发执行的原因    硬件中断服务    SMP(对称多处理)    内核抢占    schedule()2.scull的缺陷if (!dptr->data[s_pos]) {        dptr->data[s_pos] = kmalloc(quantum, GFP_KERNEL);       &nb......【阅读全文】

阅读(1194) | 评论(0) | 转发(0)

发布时间:2012-12-17 09:36:24

简介 虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装。本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在linux环境下的设计思路。 tun/tap驱动程序实现了虚拟网卡的功能,tun表示虚拟的是点对点设备,tap表示虚拟的是以太网设备,这两种设备针对网络包实 施不同的封装。利用tun/tap驱动,可以将tcp/ip协议栈处理好的网络分包传给任何一个使用tun/tap驱动的进程,由进程重新处理后再发到物 理链路中。开源项目openvpn( ......【阅读全文】

阅读(1342) | 评论(0) | 转发(0)

发布时间:2012-12-10 11:36:44

简单实现dump_stack0.首先确保你能写个内核模块:打印"hello kernel"  如果熟悉dump_stack的话,完全可以绕开此文,或者自己去看dump_stack代码实现之。 1.dump_stack是什么经常调试内核一定对这个函数不陌生,因为我们大多数人调试内核的时候都受这个函数的折磨,不信,那么我们调用下这个函数看看(随意写个内核模块调用dump_stack(),插入内核),我们来看看输出:Pid: 9982, comm: insmod Not tainted 2.6.31.5-127.fc12.i686.PAE #1Call Trace:&n......【阅读全文】

阅读(5372) | 评论(0) | 转发(0)

发布时间:2012-12-09 20:09:34

 进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合,这些资源在Linux中被抽 象成各种数据对象:进程控制块、虚存空间、文件系统,文件I/O、信号处理函数。所以创建一个进程的过程就是这些数据对象的创建过程。 在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性,但是二者之间的通讯需要通过专门的通讯机制,如:pipe,fifo,System V IPC机制等,另外通过fork创建子进程系统开销很大,需要将上面描述的每种资源都复制一个副本。这样看来,fork是一个开销十分大的系统调用,这些开......【阅读全文】

阅读(652) | 评论(0) | 转发(0)
给主人留下些什么吧!~~

登高望远海2013-09-16 22:09

你乃博客狂人。。。。。。。。。

回复  |  举报
留言热议
请登录后留言。

登录 注册