红联Linux门户
Linux帮助

《linux内核完全剖析》之boot.s的一点阅读见解

发布时间:2008-03-26 09:56:17来源:红联作者:Alsdwdz
  今天终于把难住了几天的《linux内核完全剖析》第4章中的boot.s读懂了。真是有点兴奋,因此写下作为纪念。

  1、首先由BIOS在计算机启动的时候将引导区中的程序(也即boot)自动加载到内存的0x7C00处;

  2、系统跳转到内存的0x7C00处开始执行boot程序;

  3、在boot中首先通过0x13硬盘IO中断将紧接在引导区(boot之后)的内核代码程序(head程序)加载到内存的0x1000处;

  4、接着boot再通过使用循环拷贝指令rep movw将head从内存的0x1000处拷贝到内存的0x0000处;(这里采用rep movw循环拷贝指令的目的是这个指令根据CX寄存器设置的次数来重复从DS:SI处开始拷贝到ES:DI处,而且整个指令就如同单一的指令一样,从而使得NMI中断不能发生在这个拷贝过程中)

  5、通过设置GDTR设置代码段和数据段的描述符都指向内存0x0000处;

  6、最后boot通过段间跳转指令jmpi跳转到内存0x0000处的代码段处开始执行head内核代码。

  原创作者:赖秋林
文章评论

共有 8 条评论

  1. 花开花败2011 于 2011-02-12 19:06:50发表:

    我顶

  2. weidele 于 2009-10-18 02:11:44发表:

    Read The Fucking Source Code!

  3. lacrimosa 于 2009-10-16 21:25:21发表:

    我没钱了?

  4. lacrimosa 于 2009-10-16 21:24:50发表:

    这里资源还不少,我喜欢,呵呵。

  5. jawanli 于 2009-08-17 20:35:31发表:

    这书看起来要看个大半年哟!

  6. js001sdx 于 2009-08-07 15:34:26发表:

    强烈顶起

  7. 刘冲 于 2009-06-07 23:48:58发表:

    学习万岁!

  8. zhenyongyuan 于 2009-06-07 10:44:12发表:

    1# Alsdwdz

    不错,有过这样的理解心里就清楚多了。嘿嘿