注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

FY

Johnson 's Blog

 
 
 

日志

 
 

MBR与所谓bootloader  

2016-10-17 09:01:14|  分类: LINUX |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://forum.ubuntu.org.cn/viewt ... 6&view=previous
http://mirror.href.com/thestarman/asm/mbr/PartTables2.htm


MBR (Master Boot Record) 是硬盘的概念,包含最多446字节的程序、64字节的分区信息和0x55,0xaa的标志。
而bootsect是引导扇区的意思,扇区中存有程序和0x55,0xaa的标志(bootsect.s编译出来就是这些内容)。可以存在于软盘上,比如软盘的第一个扇区。
MBR和引导扇区的共同点是都会(看从硬盘启动还是从软盘启动)被BIOS加载到0x7c00处,然后系统就开始从0x7c00处执行。

如果linux内核由软盘引导,则从bootsect开始执行。bootsect移动自己到0x90000,读setup(由boot/setup.s生成)到0x90200,读system(Image除bootsect和setup的部分)到0x10000,以及其它操作。bootsect完成之后,就跳转到0x90200 setup处执行。(参考资料第一条)
而如果从硬盘启动,则一般要安装某种引导程序如grub。grub的stage1安装在MBR中,stage1.5存在于0磁头2~63扇区中(第1扇区即MRB,而硬盘第一个分区一般从1磁头1扇区开始,即前面空出了63个扇区而不仅仅是MRB一个扇区)。MBR中的stage1再去加载stage1.5并转到stage1.5执行,而stage1.5则可以处理特定的文件系统,比如ext2等,从指定的位置读取stage2和内核文件(内核文件应该是由stage2来读,此处具体情况不清楚)。

小结一下就是:
MBR和bootsect都是BIOS执行完之后的第一个执行程序,即系统引导程序。
而区别就是MBR会根据硬盘的活动分区标识(如果没有安装grub等)或者grub等信息,把控制权转交给其它程序。而bootsect算是内核的一部分,如果由bootsect引导,则所有事情都是内核自己完成的,而不用转交控制权给别人。

参考LINK:
http://thestarman.pcministry.com/asm/mbr/GRUB.htm


  评论这张
 
阅读(9)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017