计算机是如何启动的? - 阮一峰的网络日志.pdf

阮一峰的网络日志 » 首页 » 档案

分类: IT 技 上一篇:纪录片 《TPB AFK

分类: IT 技 上一篇:纪录片 《TPB AFK

术 下一篇:玉门人家照相馆

术 下一篇:玉门人家照相馆

计算机是如何启动的?

作者: 阮一峰

日期: 2013年2月16 日

从打开电源到开始操作,计算机的启动是一个非常复杂的过程。

我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示 这几

天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。

零、boot 的含义

先问一个问题,"启动"用英语怎么说?

回答是boot 。可是,boot 原来的意思是靴子,"启动"与靴子有什么关系呢? 原来,这

里的boot是bootstrap (鞋带)的缩写,它来自一句谚语:

"pull oneself up by one's bootstraps"

字面意思是"拽着鞋带把自己拉起来",这当然是不可能的事情。最早的时候,工程师

们用它来比喻,计算机启动是一个很矛盾的过程:必须先运行程序,然后计算机才能

启动,但是计算机不启动就无法运行程序!

早期真的是这样,必须想尽各种办法,把一小段程序装进内存,然后计算机才能正常

运行。所以,工程师们把这个过程叫做"拉鞋带",久而久之就简称为boot 了。

计算机的整个启动过程分成四个阶段。

一、第一阶段:BIOS

上个世纪70年代初,"只读内存" (read-only memory ,缩写为ROM )发明,开机程

序被刷入ROM芯片,计算机通电后,第一件事就是读取它。

这块芯片里的程序叫做"基本輸出輸入系統" (Basic Input/Output Sy stem ),简称

为BIOS 。

1 .1 硬件自检

BIOS程序首先检查,计算机硬件能否满足运行的基本条件,这叫做"硬件自

检" (Power-On Self-T est ),缩写为POST 。

如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。如果没有问题,屏幕就

会显示出CPU、内存、硬盘等信息。

1 .2 启动顺序

硬件自检完成后,BIOS把控制权转交给下一阶段的启动程序。

这时,BIOS需要知道,"下一阶段的启动程序"具体存放在哪一个设备。也就是说,

BIOS需要有一个外部储存设备的排序,排在前面的设备就是优先转交控制权的设备。

这种排序叫做"启动顺序" (Boot Sequence )。

打开BIOS的操作界面,里面有一项就是"设定启动顺序" 。

二、第二阶段:主引导记录

BIOS按照"启动顺序",把控制权转交给排在第一位的储存设备。

这时,计算机读取该设备的第一个扇区,也就是读取最前面的512个字节。如果这512

个字节的最后两个字节是0x 55和0xAA ,表明这个设备可以用于启动;如果不是,表

明设备不能用于启动,控制权于是被转交给"启动顺序" 中的下一个设备。

这最前面的512个字节,就叫做"主引导记录" (Master boot record,缩写为MBR )。

2.1 主引导记录的结构

"主引导记录"只有512个字节,放不了太多东西。它的主要作用是,告诉计算机到硬盘

的哪一个位置去找操作系统。

主引导记录由三个部分组成:

(1) 第 1-446字节 :调用操作系统 的机器码 。

(2) 第 447-510字节 :分 区表 (Partition table)。

(3) 第 511-512字节 :主 引导记录签名 (0x55和 0xAA)。

其中,第二部分"分区表" 的作用,是将硬盘分成若干个区。

2.2 分区表

硬盘分区有很多好处。考虑到每个区可以安装不同的操作系统,"主引导记录" 因此必

须知道将控制权转交给哪个区。

分区表的长度只有64个字节,里面又分成四项,每项16个字节。所以,一个硬盘最多

只能分四个一级分区,又叫做"主分

计算机是如何启动的 阮一峰,计算机是如何启动的? - 阮一峰的网络日志.pdf相关推荐

  1. linux 网络配置 阮一峰,计算机是怎样启动的? - 阮一峰的网络日志.pdf

    阮一峰的网络日志 » 首页 » 档案 分类: IT 技 上一篇:纪录片 <TPB AFK 分类: IT 技 上一篇:纪录片 <TPB AFK 术 下一篇:玉门人家照相馆 术 下一篇:玉门人 ...

  2. TF-IDF与余弦相似性的应用(一):自动提取关键词 - 阮一峰的网络日志

    TF-IDF与余弦相似性的应用(一):自动提取关键词 - 阮一峰的网络日志 TF-IDF与余弦相似性的应用(一):自动提取关键词 作者: 阮一峰 日期: 2013年3月15日 这个标题看上去好像很复杂 ...

  3. 无法启动此程序,因为计算机中丢失 MSVCP120.dll。尝试安装该程序以解决此问题

    无法启动此程序,因为计算机中丢失 MSVCP120.dll.尝试安装该程序以解决此问题 参考文章: (1)无法启动此程序,因为计算机中丢失 MSVCP120.dll.尝试安装该程序以解决此问题 (2) ...

  4. PB程序“无法启动此程序,因为计算机中丢失PBvm90.dll。尝试重新安装该程序以解决此问题”的解决方法

    PB程序"无法启动此程序,因为计算机中丢失PBvm90.dll.尝试重新安装该程序以解决此问题"的解决方法 参考文章: (1)PB程序"无法启动此程序,因为计算机中丢失P ...

  5. 电脑安装python为什么显示的是程序丢失-python报错:无法启动此程序,因为计算机中丢失...

    原标题:python报错:无法启动此程序,因为计算机中丢失 python报错:无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-|1-1-0.dll api-ms-win- ...

  6. python无法启动该程序因为计算机中丢失_python报错:无法启动此程序,因为计算机中丢失...

    原标题:python报错:无法启动此程序,因为计算机中丢失 python报错:无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-|1-1-0.dll api-ms-win- ...

  7. python无法启动此程序因为计算机中丢失_python报错:无法启动此程序,因为计算机中丢失...

    原标题:python报错:无法启动此程序,因为计算机中丢失 python报错:无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-|1-1-0.dll api-ms-win- ...

  8. 安装apache服务出错,无法启动此程序,因为计算机中丢失VCRUNTIME140.dll 尝试重新安装此程序以解决此问题...

    错误信息:无法启动此程序,因为计算机中丢失VCRUNTIME140.dll 尝试重新安装此程序以解决此问题 错误场景:在使用["D:\Program Files\httpd-2.4.20-x ...

  9. 无法启动程序 计算机丢失QT,Win7系统打开程序提示计算机中丢失qt5core.dll如何解决...

    最近有win7旗舰版系统用户在打开某个程序的时候,突然弹出系统错误窗口,显示无法启动此程序,因为计算机中丢失qt5core.dll.尝试重新安装该程序以解决此问题,该怎么办呢,接下来随win7之家小编 ...

最新文章

  1. Elasticsearch 设置默认值的三种方式
  2. Centos 7 防火墙
  3. NILMTK——深扒组合优化(CO)和FHMM细节
  4. python常用函数import_python 常用函数集合
  5. 【New】简•导航 正式上线
  6. 计算油费 (15 分)
  7. UVa 208-Firetruck
  8. Cisco职业认证再认证体系及程序问答
  9. will would 七大用法总结
  10. 科技文献检索与计算机应用试卷,科技文献检索期末上机考试试题
  11. 屏幕录像专家v2016破解版
  12. web前端知识——常见布局方案、文章排版、图片排版、某宝列表
  13. Redux Reducer 的拆分
  14. 弄明白了清华校训“自强不息 厚德载物”的来龙去脉
  15. syn flood攻击原理及防范
  16. STM32中的PWM的频率和占空比的设置
  17. UI设计师是做什么的?
  18. 线性表-顺序表的基本操作
  19. python文件输出exe文件反汇编_python 反编译exe文件为py文件的实例代码
  20. RC有源滤波器之带通滤波器(四)

热门文章

  1. 纪伯伦的《我曾七次鄙视自己的灵魂》
  2. 企业级负载均衡集群(4层)——lvs的DR模式和TUN模式(一)
  3. 信息化基础知识 典型试题分析
  4. 计算机毕业设计-springboot课堂签到小程序-学生考勤打卡小程序
  5. ld return 1 exit result的可能出错位置与解决方法
  6. 关于Java+Vue3快速开发框架esdk-nzb-cas的介绍
  7. 一张图让你了解隧道人员定位系统的工作方式
  8. “苹果税”是意气用事还是商业逻辑?
  9. 字符集与字符编码(ASCII、GBK、UNICODE)
  10. easyAR中webAR部分使用问题与解决方案汇总