Chinaunix首页 | 论坛 | 博客
  • 博客访问: 204457
  • 博文数量: 34
  • 博客积分: 885
  • 博客等级: 准尉
  • 技术积分: 305
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-16 09:31
文章分类

全部博文(34)

文章存档

2013年(3)

2012年(3)

2011年(17)

2010年(4)

2009年(7)

我的朋友

分类: LINUX

2009-11-06 21:15:45

其实总体上我们可以把grub看成一个mini os,他有shell,支持script,有文件系统……
我们可以把stage1 stage1-5看成一个boot loader,而stage2则是一个os,只不过这个os是专门load其他os的os,为此,stage2支持像kernel,initrd,chainloader等等为此目的而设置的内部“命令

1.简略流程
(如果你不熟悉grub,建议您先看完这这一节再向后)
a,Bios执行int 0x19,加载MBR至0x7c00并跳转执行。
如果你安装grub到mbr,grub的安装程序会把stage1(512B)拷贝到mbr。
视stage2的大小,安装程序会在stage1中嵌入stage1-5或者stage2的磁盘位置信息。
b,stage1开始执行,它在进行直接加载stage1-5或者stage2并跳转执行(还有些额外的工作,这里忽略先)
stage1-5很无辜,除了加载stage2以外它没有其他任何作用。
所以,不论是哪种情况,这一步的结果都是stage2开始运行了。
c,stage2这个mini os终于开始正式运行了!它会把系统切入保护模式,设置好c运行环境(主要是bss)
他会找config文件先(就是我们的menulist),如果没有的话就执行一个shell,等待我们输入命令。
然后grub的工作就是输入命令-解析命令-执行命令的循环,当然stage2本身也很无辜,他是为加载其他os
而存在的,所以如果情况允许,在他执行boot命令以后就会把控制权转交出去!


转载自


阅读(404) | 评论(0) | 转发(0) |
0

上一篇:Emacs 初探

下一篇:踏实做事,好好学习

给主人留下些什么吧!~~