- 论坛徽章:
- 0
|
对于boot sector的认识
什么是BIOS?
BIOS:basic inout/output system.它是固化在ROM上的一段程序,但电脑电源打开的时候,BIOS是第一个被执行的程序。其他的程序都必须先加载到RAM才能运行。
BIOS能做什么?
* POST
POST(Power On Self Test)系统加电自检,内存地址为0fff:0000。
* Setup Menu
可以选择不同设备上引导程序的顺序。
* Boot sector loader
This load the first 512-byte sector from the boot disk into RAM and jumps to it
* The BIOS interrupt
提供一些显示,键盘,磁盘等的基本操作
关于boot sector
* boot sector(引导扇区)的大小为512-byte,而且并不是512-byte都是可以用的,最后的两个字节必须是两个常量,0x55和0xAA,这是为了让BIOS识别这是一个boot sector。
* 引导扇区在每个分区里都存在,我们常说的“主引导扇区”是硬盘的第一物理扇区(物理地址0面0道1扇区)。它是有两个部分组成:主引导记录MBR(Master Boot Record)和硬盘分区表DPT(Disk Partition Table),在512-byte的空间里面,其中MBR占446个字节(偏移0--偏移1bdh),DPT占64
个字节(偏移1beh--偏移1fdh),最后两个字节“55,AA”(偏移1feh,1ffh)是分区的结束标志。
——————————boot sector结构——————————
MBR
MBR中包含了硬盘的一系列参数和一段引导程序,引导程序主要是用来在系统硬件自检完后引导具有激活标志的分区上的操作系统,它执行到最后的是一条JMP指令跳到操作系统的引导程序中去。
DPT
MBR结束后,往下来是硬盘的分区表,它是由4个16字节的分区信息表组成,每个信息表的结构如下
偏移 长度 表达的意义
0 字节 分区状态: 如0-->非活动分区 80--> 活动分区
1 字节 该分区起始头(HEAD)
2 字 该分区起始扇区和起始柱面
4 字节 该分区类型:如82--> Linux Native分区,83--> Linux Swap 分区
5 字节 该分区终止头(HEAD)
6 字 该分区终止扇区和终止柱面
8 双字 该分区起始绝对分区
C 双字 该分区扇区数
接下来就是两个分区表的结束标志0x55,0xAA
参考文章:
http://www.cngnu.org/technology/6d7f/172.html
http://www.xs4all.nl/~lennartb/bootloaders/node3.html
http://www.linuxsir.org/main/?q=node/82
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/39425/showart_320208.html |
|