3.你知道计算机是如何启动的吗?

上一期介绍的是计算机硬件,这期看一下将这些硬件组装在一块儿后它是如何启动的。操作系统

先来个引子:当咱们按下电源键到屏幕显示出操做界面的过程当中究竟发生了什么呢? 不少人可能会说这不就是启动了操做系统嘛。呵,这不是完整的过程。 若是不能大概描述它的启动过程,我以为这篇文章是为你准备的。blog

在咱们按下机箱上的电源键后,电源向主板进行供电,主板上的部件都处于 power on 的状态。接着初始化 BIOS 系统。BIOS 系统是一个位于主板的程序,它能够控制硬件以及硬件设置(例如是否开启虚拟化、磁盘设备启动顺序等)。继承

BIOS 系统通常会烧录在一个不会由于掉电而丢失数据的 ROM 里面,通常来讲主板出厂自带 BIOS内存

上图就是比较常见的 BIOS 界面,如今比较好的主板已经不是这种风格。我如今用的这台机子的 BIOS 系统相似于以下这种:开发

这种 BIOS 也被称为 UEFI BIOS,它与以前的 BIOS 最大区别是支持鼠标操做,画面比较友好。UEFI BIOS 是古老 BIOS 的继承与延伸,它们的关系相似于 Windows XP 与 Windows 7。古老的 BIOS 常见于笔记本以及年代比较久远的 PC。class

BIOS 初始化后,CPU 即读取 BIOS 中的内容。在 X86 类型的 CPU 加电后,CPU 即会读取物理地址 0xFFFF0,而这个地址即对应着 BIOS 的区域硬件

BIOS 的工做至关简单,主要的工做就是执行主机自检(POST),而后查找操做系统存在在哪一个磁盘上,将操做系统载入。BIOS 在查找各磁盘 的操做系统时,主要是查找磁盘上的第一个扇区(0面0磁道1扇区),每一个扇区是 512 字节,若是这是一个引导扇区,那么就将它载入0x7C00 的内存地址上,而后跳转到此地址上执行。若是此不是一个引导扇区,就继续查找下一个磁盘,看其上面是否存在引导扇区。若是全部的磁盘上都不存在引导扇区,则在屏幕上 打印出一条出错信息。程序

引导扇区只有一扇区即 512 字节大,所以它的主要目的是把操做系统的内核读进内存,而后跳转到操做系统内核处开始执行。从编写操做系统角度来讲,前面的 CPU 上电及 BIOS 的工做都不是操做系统能控制的,而从引导扇区开始,就完彻底全可由操做系统来控制了,所以,编写引导扇区也是编写操做系统 必要的工做之一。从 BIOS 跳入引导扇区后,计算机系统引导工做就算完成,而怎样把操做系统内核读进内存而后再安排一条跳转指令跳到内核处执行就是操做系统开发人员的工做了。im

因此,计算机的启动过程是:d3

  1. 按下电源键
  2. 主板加电,启动 BIOS
  3. BIOS 启动自检,并查找各个磁盘上的引导信息
  4. 执行引导扇区程序,启动操做系统
  5. 操做系统从 BIOS 接管计算机并启动
  6. 操做系统启动完成,计算机启动完成

ps.欢迎关注官方公众号"哈扣"。