自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Netfilter,iptables/OpenVPN/TCP guard:-(

我不会编程,但也不是一点都不会,我稍微会一些 :-)

原创 linux内核对伙伴系统的改进--migrate_type

<br />linux底层使用伙伴系统-buddy管理物理内存,buddy可以被证明是一种很有效的内存管理方式,但是它也拥有很多缺点,其中碎片避免的不完备性--仅仅寄托于释放时的合并操作而不考虑分配时的策略,这也许是它最大的不足,linux2.6内核的后期版本对这个问题进行了改进,大大...

2010-12-30 20:21:00 7484 2

原创 linux内核模块的版本检查机制

<br />linux内核对插入的内核模块进行严格的版本检查,即使一个小版本号不一致也会导致加载的不成功,这完全是为了内核本身运行安全。由于linux内核的发布是基于版本号的,而所有的内核模块的开发必须依赖内核头文件--其使用的内核导出符号均在头文件中,该头文件肯定属于一个特定版本的源...

2010-12-29 20:50:00 5640 0

原创 sync_inodes和sync_filesystems

<br />[基于2.6.8内核]<br /> 这两个函数在do_sync的时候都要调用两次,这是为何?sync_filesystems这个函数的作用是什么?do_sync在什么时候会被调用?<br />      对于第一个问题,调用两次其实就是一个分类,...

2010-12-14 20:36:00 4026 3

原创 buffer_head和bio

<br />buffer_head完全按照设备块来进行io,块大小取决于设备但是普遍比页面小,bh的元数据比率开销过大,bio则按照页面大小进行io,然而一个bio中可以包含多个页面,因此聚集的基于page的io吞吐量更大些,这就好比用桶提水比用汤勺舀水效率高一样。因此2.6内核普遍使...

2010-12-11 21:10:00 4005 0

原创 kexec机制

<br />kexec是一个内核机制,注意它的参数,一个是-l,一个是-p,-l加载的内核不能用于panic之后重启的,只有-p加载的内核才可以用于panic重启,另外使用linux的启动命令行也是可以的,效果和-p是一样的。<br /> kexec -l加载的内核一般用...

2010-12-11 21:09:00 3467 0

原创 问题以及发现问题和解决问题

<br />发现问题比解决问题更重要,如果发现了问题的所在,解决它仅仅是一个时间的问题,可能有些问题永远解决不了,但是我们最终知道它永远解决不了也算是解决了问题。问题的实质其实是一种反差,也就是期望和实际的反差,这是好事,如果每件事都和我们期望的一致,那么我们的脑子里面就不会有问题了,...

2010-12-11 21:06:00 2537 0

原创 linux内核page结构体的PG_referenced和PG_active标志

<br />linux内核使用了lru算法来置换内存页面,但是实际上并不是纯的lru算法,里面掺杂了很多别的思想,比如第二次机会,比如双时钟指针等等。这里着重说一下第二次机会的体现。在内核中有一个mark_page_accessed函数,它实际上体现一个状态机,这是它的实现:<b...

2010-12-11 21:03:00 5709 1

原创 linux内存管理系统后期的内核对zonelist的简化

<br />struct pglist_data {<br />     struct zone node_zones[MAX_NR_ZONES];<br />     struct zonelist node_zonelists[GFP_ZONETYPES...

2010-12-11 21:01:00 5054 4

原创 linux内核内存管理中的pagevec结构体

<br />linux内核的内存管理中有一个2.6内核才加入的并不很张扬的结构体,那就是pagevec:<br /> struct pagevec {<br />     unsigned long nr;<br />     unsigned...

2010-12-11 20:59:00 6228 1

原创 一个日志输出系统的设计

<br />本文介绍一个基于linux进程调度策略来调度的信息输出系统,多条信息可以显示多次,每次的显示时间也可以设置:<br /> 以下是头文件定义loglet.h:<br /> #include <pthread.h><br />...

2010-12-11 20:58:00 2550 0

提示
确定要删除当前文章?
取消 删除