论坛: UNIX系统 标题: 问题依然,旧帖重发,还请见谅! 复制本贴地址    
作者: cimsxiyang [cimsxiyang]    版主   登录
linux启动顺序执行文件:
bootsect.s---setup.s-----main.c
当pc  POST后,启动设备的第一个扇区的数据(bootsect.s)并将其装载到0x7C00处,执行。再将其移载到绝对物理地址0x90000处,重置磁盘控制器,从启动设备读入2K数据(setup.s),装载到0x90200处。内核剩下的部分装载到0x10000处。
  完成以上工作,便显示load...,整个系统从0x10000处移动到0x0100处,并进入保护模式,转入0x1000执行剩下的代码。
载入内核(start_kernel)/* ./init/main.c */
一系列的初始化和登记。


[疑问]
1。bootsect.s是怎样把权利交给setup.s的?
2。对这个一系列的内存地址跳转不是很清楚,譬如说“第一个扇区的数据为什么会从0x7C00被移到0x90000”?
[备注]
此帖在“黑客技术”和“操作系统”都发过,可惜没有能得到答案。
可能是问题太简单,不过呢,还请大家能指点一二。
谢谢


地主 发表时间: 04/06 11:37

回复: NetDemon [netdemon]   ADMIN   登录
把原码找出来看一看,也许就明白了,我现在手头上没有,也说不出个所以然

B1层 发表时间: 04/06 19:21

论坛: UNIX系统

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号