[ZLG-ARM] 系统启动

[复制链接]
 楼主| reeper 发表于 2009-4-2 15:33 | 显示全部楼层 |阅读模式
系统的启动顺序及相关文件仍在核心源码目录下,看以下几个文件:<br />  ./arch/$ARCH/boot/<br />  bootsect.s<br />  ./arch/$ARCH/boot/setup.s<br />  ./init/main.c<br />  bootsect.S&nbsp;及&nbsp;setup.S<br />  这个程序是Linux&nbsp;kernel的第一个程序,包括了Linux自己的bootstrap程序,但是在说明这个程序前,必须先说明一般IBM&nbsp;PC开机时的动作(此处的开机是指“打开PC的电源”)。<br />  一般PC在电源一开时,是由内存中地址FFFF:0000开始执行(这个地址一定在ROM&nbsp;BIOS中,ROM&nbsp;BIOS一般是在FEOOOh到FFFFFh中),而此处的内容则是一个jump指令,jump到另一个位于ROM&nbsp;BIOS中的位置,开始执行一系列的动作。<br />  紧接着系统测试码之后,控制权会转移给ROM中的启动程序(ROM&nbsp;bootstrap&nbsp;routine)。这个程序会将磁盘上的第零轨第零扇区读入内存中,至于读到内存的哪里呢?&nbsp;--绝对位置07C0:0000(即07C00h处),这是IBM系列PC的特性。而位于Linux开机磁盘的boot&nbsp;sector上的,正是Linux的bootsect程序。<br />  把大家所熟知的MS&nbsp;DOS&nbsp;与Linux的开机部分做个粗浅的比较。MS&nbsp;DOS&nbsp;由位于磁盘上boot&nbsp;sector的boot程序负责把IO.SYS载入内存中,而IO.SYS则负有把DOS的kernel&nbsp;--MSDOS.SYS载入内存的重任。而Linux则是由位于boot&nbsp;sector&nbsp;的bootsect程序负责把setup及Linux的kernel载入内存中,再将控制权交给setup。<br />
msleep 发表于 2009-4-2 17:30 | 显示全部楼层

启动代码可以自己编写的吗?

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

139

主题

185

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部