前面提到了boot和loader。boot存在是因为存储介质的第一个扇区只有512个字节。要在这么少的空间内完成加载内核前的准备工作,有点困难。所以要写个boot,去引导loader。再由load去完成加载内核前的准备工作。

boot的主要工作是从存储介质中寻找loader,并加载loader到指定的内存。然后把控制权交给loader。loader得到控制权后,完成加载内核的准备工作。这个包括,从式模式到保护模式的跳转。准备gdt,ldt,tss。并开启分页机制。这个准备工作听起来和做起来都很麻烦。工作量远远大于512个字节。准备完后,把控制权限交给内核。

boot和loader的具体代码,前面有所涉及。但只是技术层面上的分析。因为代码量比较大,读者们还是自己取看于渊的书吧。呵呵。

 posted on 2011-03-18 19:13  文鬼  阅读(181)  评论(0编辑  收藏  举报