
LINUX内核
yanook
把握生命里的每一分钟,全力以赴心中的梦!
展开
-
Android和linux
本文转贴自 http://mmdays.com/2008/10/11/android-淺探二:系統架構/, Kevin修改了部分台湾习惯用法为大陆习惯用法,并针对含混的地方略作了修改。 本篇目的在尽量不触及技术细节的情况下简介 Android 架构,并探讨其设计的特殊处,以及在版权上的意义。主要资料来源为 Anatomy & Physiology of an Android,有兴趣深转载 2012-01-04 13:27:00 · 1777 阅读 · 0 评论 -
Linux内核中的链表
有趣的数据结构——Linux内核中的链表 Linux内核中有很多种链表,如果对每一种链表都使用单独的数据结构去表示,那么需要对每个链表实现一组原语操作,包括初始化、插入、删除等。于是,Linux内核定义了一个很有趣的数据结构:list_head struct list_head { struct list_head *next, *prev; }; 复转载 2012-01-13 17:55:28 · 414 阅读 · 0 评论 -
kswapd和pdflush
首先,它们存在的目的不同: kswapd的作用是管理内存; pdflush的作用是同步内存和磁盘,当然因为数据写入磁盘前可能会换存在内存,这些缓存真正写入磁盘由三个原因趋势:1.用户要求缓存马上写入磁盘;2.缓存过多,超过一定阀值,需要写入磁盘;3.内存吃紧,需要将缓存写入磁盘以腾出地方。上述原因使得kswapd和pdflush有交叉的地方,因此很多人混淆了它们。 它转载 2012-01-04 17:08:31 · 521 阅读 · 0 评论 -
Buddy System,伙伴系统
Buddy System,伙伴系统,linux中用来分配、释放内存页块的经典算法。数据结构structzone中有个free_area数组。存放着本zone的空闲页块链表,注意这是一组链表,而不是一个链表。我们常常需要按“块”分配连续多个内存页面,因此需要用链表来保存长度为1、2、4、8、…、直至2MAX_ORDER-1的页块。通常MAX_ORDER为11,则free_area中一共保存了11个链转载 2012-01-04 16:30:33 · 774 阅读 · 0 评论 -
添加系统调用
本文基于Linux 2.4.26内核,GCC 3.2.2添加系统调用mycall(int num) 增加系统调用只修改/usr/src/linux-2.4.29/include/asm-i386/unistd.h和arch/i386/kernel/entry.S,系统调用函数一般在kernel/sys.c中,这里把增加的系统调用代码也加入这个文件中。 1.修改kern转载 2012-01-28 11:43:16 · 305 阅读 · 0 评论 -
linux 系统定时
linux 0.11内核中,PC机的可编程定时芯片Intel 8253被设置成每隔10毫秒就发出一个时钟中断(IRQ0)信号。这个时间节拍就是系统运行的脉搏,称之为1个系统滴答。因此每经过一个滴答就会调用一次时钟中断处理程序(timer_interrupt)。该处理程序主要用来通过jiffies变量来累计自系统启动以来经过的时钟滴答数。每当发生一次时钟中断该值就增加1.然后从被中断程序的段选择附中原创 2012-01-28 19:34:15 · 364 阅读 · 0 评论