上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 45 下一页

2011年4月5日

摘要: 近年来,Linux内核演变极为迅速,如同一个沸腾的火球。人手不敢触及,谈何拥有?怎么办? 3月15日,Linux 2.6.38刚发布不久,就进入了一个新的开发周期。3月30日,Linux 2.6.39的第一个候选版本(RC1)就发布了,该开发周期的(程序)合并窗口也关闭了,预计在5月底(或是6月初)Linux 2.6.39的最终版本就要正式发布。在这15天时间里面,Linux内核有什么变化呢? 根据Linux官方网站的统计,相对于2.6.38而言,Linux 2.6.39 RC1有8,995个文件发生了改变,即新增加(插入)了828,740行源代码,与此同时,删除了509,303行源代码。这是 阅读全文
posted @ 2011-04-05 10:57 yming0221 阅读(172) 评论(0) 推荐(0)

2011年4月1日

摘要: 下图清楚的表示了linux内核的主要模块图。 阅读全文
posted @ 2011-04-01 12:22 yming0221 阅读(140) 评论(0) 推荐(0)

2011年3月26日

摘要: 摘要:现在各公司对Linux的关切程度日益高涨,这促使越来越多的IT专业人员试图掌握这个企鹅操作系统的相关知识和经验。最近由NetAdmin组织的一次调查结果表明,大量的IT技术人员都正在考虑通过Linux认证考试,为了帮助你做出选择,我们现在就来看一看Linux认证领域的现状,提出可供你选择的头4号Linux资格认证计划。标签:Linux认证现在各公司对Linux的关切程度日益高涨,这促使越来越多的IT专业人员试图掌握这个企鹅操作系统的相关知识和经验。最近由NetAdmin组织的一次调查结果表明,大量的IT技术人员都正在考虑通过Linux认证考试,为了帮助你做出选择,我们现在就来看一看Lin 阅读全文
posted @ 2011-03-26 22:30 yming0221 阅读(453) 评论(0) 推荐(0)
摘要: 2009年3月,开源操作系统领导厂商红帽公司在中国发布了2009年《Linux从业人员就业形式分析报告》,报告指出:在近一个月内,对Linux有招聘需求的企业共有2733家,有8199个具体工作岗位,共需求29330名Linux人才,与Windows人才需求基本持平。专家预计,在金融危机一职难求的情况下,Linux人才需求将在09年逆市扩张持续增长。51CTO.com之前曾经发布过2008年《Linux从业人员就业形式分析报告》,有兴趣的读者可以对比阅读。08年Linux市场超过2亿,Linux人才缺口达120万。Linux行业的大好形式使得Linux人才一直供不应求。红帽的调查报告显示,对L 阅读全文
posted @ 2011-03-26 22:23 yming0221 阅读(153) 评论(0) 推荐(0)
摘要: 用fork创建进程 除了进程0,其它所有的进程都是fork产生的。子进程是通过复制父进程的数据和代码产生的。创建结束后,子进程和父进程的代码段、数据段共享。但是子进程有自己的进程控制块、内核堆栈和页表。 我们知道一个进程需要有如下3个结构1.task[]数组中的一项,即进程控制块(task_struct)2.GDT中的两项,即TSS段和LDT段描述符3.页目录和页表所以fork()的任务就是为一个新进程构造这3个结构。sys_fork() 系统调用的实现在2个文件中。fork.c中的全部和system_call.s中_sys_fork。sys_fork()系统调用分成2步完成,第一步调用函数f 阅读全文
posted @ 2011-03-26 10:32 yming0221 阅读(196) 评论(0) 推荐(0)

2011年3月23日

摘要: 进程结构Linux0.11中的每个进程都有如下的结构:在gdt中占有两项,一项是tss段描述符,一项是ldt段描述符。在task数组中占有一项,指向一页物理内存,该物理内存低端是进程控制块task_struct(里面包括tss段和ldt段),其余部分是进程的内核态堆栈。在页目录表和页表中设置有相关项。Linux0.11中,最多只有64个进程,task数组大小也定义成了64,每个进程与一个task数组中的项一一对应。虽然gdt中有256项,但是并不是都用到。第一个gdt项保留不用,内核用2个项,然后系统为每个进程保留2项。这样一个进程与2个gdt项一一对应。也就是linux0.11中task数组 阅读全文
posted @ 2011-03-23 13:04 yming0221 阅读(142) 评论(0) 推荐(0)

2011年3月22日

摘要: 内核空间、用户空间之间的数据传输内核空间数据段的选择符为0x10,用户空间数据段选择符为0x17。内核空间、用户空间之间的数据传输,是段间数据传输。C语言中的赋值语句编译成汇编后,“=”两边的变量默认段选择符都是DS,因此只能用于同一段内数据传输。在segment.h中定义了一系列用于内核空间和用户空间传输数据的函数。从用户空间取得数据的函数中,mov指令的源操作数段寄存器都明确指出是fs,向用户空间写数据的函数中,mov指令的目的操作数段寄存器都是fs。当系统调用发生时,int0x80处理函数会把fs设成用户数据段选择符(0x17),参见中断异常处理和系统调用一章。下面分析一组对byte操作 阅读全文
posted @ 2011-03-22 22:20 yming0221 阅读(350) 评论(0) 推荐(0)
摘要: 与80386段相关的宏定义set_seg_desc/*****************************************************************************//* 功能: 设置存储段描述符,把指定属性的段描述符放入gate_addr处 *//* 参数: gate_addr 段描述符的目的地址 *//* type 描述符中类型域,具体见80386基础一节中的表格 *//* dpl 描述符中特权级 *//* base 段基地址,这是线性地址 *//* ... 阅读全文
posted @ 2011-03-22 22:09 yming0221 阅读(286) 评论(0) 推荐(0)

2011年3月20日

摘要: 主要有4个数据结构task_union(sched.c第53行)//这实际上是一页内存,页面低端头部放的是task_struct(进程控制块)结构,页面//其他部分当作进程的内核态堆栈使用union task_union { struct task_struct task; char stack[PAGE_SIZE];}; task[NR_TASKS] (sched.c第65行) <!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } A:link { so-language: zxx } --> //task_... 阅读全文
posted @ 2011-03-20 17:26 yming0221 阅读(288) 评论(0) 推荐(0)
摘要: 程序(进程)的虚拟地址和逻辑地址虚拟地址(virtualaddress)指程序产生的有段选择符和段内偏移两部分组成的地址。一个程序的虚拟地址空间有GDT映射的全地址空间和LDT映射的局部地址空间组成。逻辑地址(logicaladdress)指程序产生的段内偏移地址。应用程序只与逻辑地址打交道,分段分页对应用程序来说是透明的。也就是说C语言中的&,汇编语言中的符号地址,C中嵌入式汇编的”m”对应的都是逻辑地址。CPU的线性地址线性地址(linearaddress)是逻辑地址到物理地址变换的中间层,是处理器可寻址空间的地址。程序代码产生的逻辑地址加上段基地址就产生了线性地址。实际物理内存地 阅读全文
posted @ 2011-03-20 17:08 yming0221 阅读(277) 评论(0) 推荐(0)
上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 45 下一页

导航