鱼C论坛

 找回密码
 立即注册
查看: 3112|回复: 4

cup上电后的工作顺序?

[复制链接]
发表于 2011-4-5 16:06:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小甲鱼老师:很爱看你的汇编语言视频讲座。有个问题想提问一下:我一直都搞不懂CPU从上电后开始工作的顺序,麻烦你讲一下好吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-5 16:42:28 | 显示全部楼层
建议你去看看linux的内核文档,很多linux内核的书都是从开机引导开始的。
大致过程是这样的:
cpu在断点的时候会初始化ss:ip为一个固定的位置,具体是多少忘了,这个地址指向一个固定地址,地址的内容则指向bios的程序。值得注意的是,cpu并不关心这段程序是不是真的指向bios引导程序,他只是机械的去执行那些命令而已。
然后,bios会去读取硬盘的master boot record(MBR表),这个东西写在你的硬盘的0柱面、0磁头、1扇区,它有一个512b的引导程序boot loader以及硬盘分区表DPT。然后这个boot loader会把自己复制到内存上,具体位置自己查,我已经忘了。。。
然后boot loader回去查看自己这段代码最后的地方是不是aa 55假如是,就证明这个是一个引导程序,不是,就报错,然后尝试修正,没办法修正,它就输出无操作系统,然后你的计算机挂掉。。。。
这个aa 55确定之后,它会跳回开头,开始执行这段代码。
然后,这个引导程序加载下一个引导程序,并将自己复制到刚才自己所在的代码段的后面,将原本的空间让给新的引导程序。
然后可是递归,一个引导程序接着一个引导程序,直到你的计算机被引导进了操作系统,操作系统接管内存。

具体可以上网查一下linux的源代码,源代码目录下的/arch/x86/boot/ 下面的文件(x86是在你的计算机是32位的前提下的,如果是其他机型,你看看把,arch里面各种机型的代码)
另外也可以看看grub的手册,只有英文的就是了。。。
抱歉我今天感冒也许有的地方写的不对阿。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-4-5 18:04:16 | 显示全部楼层
回复 2# john_zen


    谢谢了!小甲鱼老师。多注意身体!祝你早日康复!:handshake
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-5 21:13:58 | 显示全部楼层
回复 3# jzq

那个。。。我必须说的是我不是小甲鱼。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-7 09:31:51 | 显示全部楼层
楼上的好杯具!!伤不起啊!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-17 03:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表