|
作者: 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 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号