一、准备知识: slab的概念: 提出的原因:由于操作系统在运行中会不断产生、使用、释放大量重复的对象, 所以对这样的重复对象的生成进行改进可以大大提高效率最早由sun的工程师提出(1994年)并首先在sunos5.4上应用。slab算法的基本思路:分配: if(对相对应的缓存区有空闲位置) 使用这个位置,不必再初始化; else{ 分配内存; 初始化对象; } 释放: 在缓存中标记空闲,不做析构; 资源不足: 寻找未使用的对象空间...
by zhiqiang0071 - Linux文档专区 - 2008-11-21 23:01:32 阅读(1554) 回复(0)
编译Linux内核映像 要想了解Linux内核的引导过程就必须知道Linux内核的编译过程。这一部分说明编译Linux内核的步骤和编译过 程每一步产生的输出。编译过程依赖体系结构所以我要强调我所说的是指编译基于x86体系结构的Linux内核。首先用户使用make config或make menuconfig命令配置内核,然后输入make、make zImage或make bzImage后编译生成可引导的内核映像存放在arch/i386/boot/zImage或者arch/i386/boot/bzImage处,下面 是内核...
Linux作为开源软件的代表深受用户的支持,尤其是其在嵌入式系统领域更是具有广阔的发展前景,本文深入分析了Linux内核直接从硬盘引导的过程和部分代码。由于我一直在做基于x86体系结构的研究,读了两本关于Linux内核的书籍(内核完全注释>>赵炯、>Tigran Aivazian)。所以这篇文章分析的代码是基于x86体系结构、Linux2.4版本内核的。但这个流程跟嵌入式系统中ARM的bootloader要完成的功能和原理是一致的。下面的工作是详细分析boo...
Linux内核源码分析-链表代码分析 分析人:余旭 分析时间:2005年11月17日星期四 11:40:10 AM 雨 温度:10-11度 编号:1-4 类别:准备工作 Email:yuxu9710108@163.com 时代背景:开始在www.linuxforum.net Linux内核技术论坛上面发贴,在网友的帮忙下,解决了一些问题。 版权声明:版权保留。本文用作其他用途当经作者本人同意,转载请注明作者姓名 All Rights Reserved. If for other use,must Agreed By the writer.Citin...
再看《linux内核源代码情景分析》(毛德操,胡希明著上册)这本书,在252页,看到“就是说,如果内核能够在一个“异常表“中找到发生异常的指令所在的地址,并得到相应的”修复“地址fixup,就将CPU在异常返回后将要重新执行的地址替换成这个”修复”地址。为什么要这样做呢?因为在这种情况下内核不能为当前进程补上一个页面(那样的话name所指的字符串就变成空白了)。”这一小段时,实在是不能理解最后一句话(因为在这种情况下...
一、linux内核网络栈代码的准备知识
[code]#define switch_to(prev,next,last) do{
asm volatile {"pushl %%esi\n\t"
"pushl %%edi\n\t"
"movl %%esp,%0\n\t"
"movl %3,%%esp\n\t"
"movl $1f,%1\n\t"
"pushl %4\n\t"
"1\t"
"popl %%ebp\n\t"
...
呵呵,开始了,努力吧。
2008年5月3日
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/66022/showart_665354.html
凡是尝试做过内核分析的人都知
道,Linux的内核组织结构虽然非常有条理,但是,它毕竟是众人合作的结果,在阅读代码的时候要将各个部分结合起来,确实是件非常困难的事情。因为在内
核中的代码层次结构肯定分多个层次,那么对一个函数的分析,肯定会涉及到多个函数,而每一个函数可能又有多层的调用,一层层下来,直接在代码文件中查找那
些函数肯定会让你失去耐心和兴趣。
h%jY#jGI
@
Q,d$o0
俗话说:“工欲善其事,必先...