转载,自己修改整理了下: http://blog.jobbole.com/92115/

1.BIOS阶段

计算机第一件事情就是读取BIOS,接下来BIOS进行硬件自检即POST过程,如果没有问题屏幕会显示内存,硬盘,CPU等信息,于是BIOS会把控制权交给下一个阶段的启动程序,但是这个启动程序在哪里呢?不知道还记不记得进入bios有进行启动顺序选择,排在第一个的就是转交控制权的对象。

2.主引导记录阶段(MBR)

计算机开始读取这个设备的第一个扇区也就是刚开始的512B,如果这个扇区的最后两个字节是0x55和0xaa那这就表明这个设备可以启动否则BIOS会把控制权交给启动顺序中第二个设备,而这512个字节也叫作主引导记录(Master Boot Record)

3.硬盘启动阶段
若操作系统在主分区当中,这个时候计算机控制权交给了硬盘的某个分区,在四个主分区中只有一个分区是活动的,计算机会读取激活这个分区的第一个扇区此扇区叫做卷引导记录(Volumn Boot Record)即VBR,其作用主要是为了告诉计算机操作系统所在分区的位置好让计算机加载该分区若操作系统在扩展分区当中则计算机读取扩展分区的第一个扇区即EBR,然后找到并加载操作系统,但是一般不会用这种方式,如果操作系统位置在扩展分区,那么计算机会读取MBR的前446个字节机器码后直接运行某个安装好的启动管理器即Boot Loader,然后用户选择一个操作系统,在Linux中启动管理器是Grub或者Lilo

4.操作系统阶段
之后控制权便给与了操作系统,操作系统的内核被载入内存,比如Linux是先载入/boot下的kernel,第一个进程是systemd也就是pid为1的服务然后就是其他的各个模块

PS:补充知识:
A.MBR由三个部分组成
1. 第1-446字节:调用操作系统的机器码

2. 第447-510字节:分区表(Partition table) (64B)

3. 第510-512字节:0x55和0xaa,代表这是主引导记录

B.分区表
分区表一共只有64个字节,里面分成四项每项16字节,所以硬盘只能有四个一级分区也叫主分区,而四个分区中只能有一个是激活的

C.分区表每项组成(即定义了该主分区)
1.第1个字节: 如果为0x80则代表该分区的是激活的分区,如果是非激活则为0x00
2.第2-4个字节: 主分区第一个扇区的物理位置(柱面,磁头,扇区号等)即分区起始位置
3.第5个字节: 主分区类型即文件系统标志位
4.第6-8个字节: 主分区结束时的磁头号,扇区号和磁柱号
5.第9-12个字节: 该主分区的第一个扇区的逻辑地址
6.第13-16个字节: 即主分区的扇区总数,主分区的扇区总数是4个字节代表了一个分区最
多只能有2^32个扇区,而每个扇区有512B就代表单个分区最大不能超过512 * 2^32B也就是2TB

D.扩展分区和逻辑分区:
可能接触过Linux的朋友知道这些玩意儿, 由于硬盘越来越大四个分区已经不够了,但是分区表只有四项,因此把四个主分区中其
中一个分区规定为扩展分区,而这个扩展分区里面也分为很多被称之为逻辑分区的区域,计算机首先读取扩展分区的第一个扇区,也被称之为EBR(Extended Boot Record)扩展引导记录,里面也包含了一张64字节的分区表,但最多只有两项,也就是两个逻辑分区分别描述两个逻辑驱动器,如果不存在下一个逻辑驱动器那么第二条分区表就不需要使用,EBR的结束标志同样是0x55,0xaa,逻辑分区可以有无数个。

主引导记录会存入内存地址0x7C00。这个奇怪的地址,是怎么来的,课本就不解释了。我一直有疑问,为什么不存入内存的头部、尾部、或者其他位置,而偏偏存入这个比 32KB 小1024字节的地方?

首先,如果你不知道,主引导记录(Master boot record,缩写为MBR)是什么,可以先读《计算机是如何启动的?》。

简单说,计算机启动是这样一个过程。

  1. 通电
  2. 读取ROM里面的BIOS,用来检查硬件
  3. 硬件检查通过
  4. BIOS根据指定的顺序,检查引导设备的第一个扇区(即主引导记录),加载在内存地址 0x7C00
  5. 主引导记录把操作权交给操作系统

所以,主引导记录就是引导”操作系统”进入内存的一段小程序,大小不超过1个扇区(512字节)。

0x7C00这个地址来自Intel的第一代个人电脑芯片8088,以后的CPU为了保持兼容,一直使用这个地址。

1981年8月,IBM公司最早的个人电脑IBM PC 5150上市,就用了这个芯片。

当时,搭配的操作系统是86-DOS。这个操作系统需要的内存最少是32KB。我们知道,内存地址从0x0000开始编号,32KB的内存就是0x0000~0x7FFF。

8088芯片本身需要占用0x0000~0x03FF,用来保存各种中断处理程序的储存位置。(主引导记录本身就是中断信号INT 19h的处理程序。)所以,内存只剩下0x0400~0x7FFF可以使用。

为了把尽量多的连续内存留给操作系统,主引导记录就被放到了内存地址的尾部。由于一个扇区是512字节,主引导记录本身也会产生数据,需要另外留出512字节保存。所以,它的预留位置就变成了:

0x7FFF – 512 – 512 = 0x7C00

0x7C00就是这样来的。

计算机启动后,32KB内存的使用情况如下。

+——————— 0x0
| Interrupts vectors
+——————— 0x400
| BIOS data area
+——————— 0x5??
| OS load area
+——————— 0x7C00
| Boot sector
+——————— 0x7E00
| Boot data/stack
+——————— 0x7FFF
| (not used)
+——————— (…)

计算机如何启动及为何MBR的地址为0x7c00相关推荐

  1. 计算机开机启动流程详解

    一.BIOS 1.BIOS是什么 BIOS:基本输入输出系统(Basic Input Output System),它是一组固化到计算机内主板上一个ROM(Read-Only Memory)只读存储器 ...

  2. 计算机开机启动过程详解

    计算机的开机启动过程 (1) 启动过程总览 (二)详细说明 1.CPU 供电 按下主机的电源键后,计算机开始启动,为主板部分芯片和CPU进行供电.主板上电后开始初始化其固件.固件是一些固化在芯片组上的 ...

  3. 通过计算机的启动过程了解BIOS和UEFI

    本文属于学习笔记,如有侵权,请联系博主删除,如有错误之处也请多多指正,谢谢! 一.基本概念解释 说到计算机启动,绕不开的两个东西叫做BIOS和UEFI,BIOS 和 UEFI 都是计算机的固件类型.B ...

  4. 插上硬盘计算机无法启动,<急>插拔硬盘后无法启动<求助>

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.系统不承认硬盘 此类故障比较常见,即从硬盘无法启动,从A盘启动也无法进入C盘,使用CMOS中的自动监测功能也无法发现硬盘的存在.这种故障大都出现在连接 ...

  5. 计算机的启动过程———《x86汇编语言:从实模式到保护模式》读书笔记补遗01

    有的朋友问我,为什么读书笔记不从第一章开始写?这个问题啊-当初觉得前面的内容不是很重要,就没有写. 我真是高估自己的记忆力了,随着时间的推移,发现前面好多内容都生疏了,有的朋友问我问题我都答不上来.所 ...

  6. 台式电脑计算机无法启动 启动修复,遇到计算机无法启动时,该怎么修复?

    原标题:遇到计算机无法启动时,该怎么修复? 大多数计算机用户可能都经历过这种情况:一大早到达办公室,坐下来开始紧急工作,然而却发现电脑无法启动,多次重新启动之后还是失败.到底是什么原因造成的呢? 对于 ...

  7. 联想计算机CDROM启动,联想电脑光驱启动问题?

    1.开机按del键或f2进入bios设置(不同主板按键不一样,一般是DEL,也可能是F2,可以参考下主板说明),将计算机的启动模式调成从光盘启动.也就是从cdrom启动, 根据主板的不同,bios设置 ...

  8. 【OS学习笔记】三 计算机的启动过程

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 上一篇文章迈进了汇编的大门,点击链接查看上一篇文章:汇编语言和汇编软 ...

  9. 设置计算机的启动顺序CDROM.C.A,怎么设置开机从光驱启动

    篇一:怎样设置光盘为第一启动项 怎样设置光盘为第一启动项 1. 重启,按Del进BIOS,找到Advanced Bios Features(高级BIOS参数 设置)按回车进Advanced Bios ...

最新文章

  1. 为什么 JSP 还没有被淘汰?
  2. Docker 命令自动补全必须有
  3. 服务器上文件一直被打开吗,Python: 如何判断远程服务器上Excel文件是否被人打开...
  4. linux权限最小化分级,vim可视化Linux系统安全最小化原则 su sudo
  5. 贴片电容的0.65T,0.8T,1.25T,2.5T是什么意思
  6. c#截取两个指定字符串中间的字符串
  7. 斯坦福大学深度学习公开课cs231n学习笔记(4)正向传播及反向传播
  8. 易筋SpringBoot 2.1 | 第十篇:SpringBoot使用thymeleaf入门
  9. [原]VC被控制时关闭极域电子教室、破解联想硬盘保护系统密码(下)
  10. 女生学计算机专业用考研吗,计算机专业女生考研,该选什么方向比较好?谢谢!...
  11. 论“搜狗”输入法对用户的影响
  12. SVG 绘制可交互的中国地图
  13. GA算法(遗传算法) ——以求解achley,rastrigin函数为例
  14. java基础周报_java第四周周报
  15. 《盟威软件快速开发平台》开发
  16. 数据库系统概论复习提纲
  17. 【UV打印机】电气之负压系统(二)
  18. 电力圈大佬再次“华山论剑”:如何构建以新能源为主体的新型电力系统?
  19. C语言简单编程案例(一)
  20. 静静的活不埋怨也不嘲笑

热门文章

  1. 马云正式卸任!发表“退休”感言!
  2. JavaSE学习笔记-Day1
  3. RationalDMIS 2020 自动测量圆柱
  4. Intel搞了个“实感”3D摄像头:这是啥?
  5. 中小学生计算机竞赛试题,中小学生计算机奥林匹克竞赛试题
  6. 安装VMware时报错:virtualXT,以及虚拟网卡安装失败
  7. java圆周率祖冲之减法次数_祖冲之是如何计算圆周率的(一)
  8. Mac 常用软件汇总 homebrew
  9. Java编码规范_ali规范
  10. 基于android平台的模拟血压计实现(surfaceView的熟练使用)