- 论坛徽章:
- 0
|
在pc启动时,BIOS会把MBR中的bootsect.S加载到以OX7c00物理内存地址上开始的512个字节大少的地址空间中,BIOS加载完成之后会跳到OX7c00处继续执行(也就是说运行bootsect.S),面bootsect.S首先会把自己从OX7c00处CPOY到OX90000处,之后再加载setup.S,这setup.S会放在OX90000+512b之后的内存地址上面,之后会加载system,也就是linux的内核,这个内核会放在OX10000上面,加载完这个内核就会跳到OX90000+512b后面的setup.S上去运行.linux0.1的bootsect.S与现在最新的2.6.X有点不同
setup.S的功能主要是访问内存,存贮器,显卡之类的.之后加载gdt,idt,这里有一大堆检测显卡和head.S之类的文章,当然执行完head.S之后会来到init/main.c上面,这里就完成了系统启动.接下去就是main.c开始的故事了.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11565/showart_160035.html |
|