美文网首页计算机基础
计算机是如何启动的

计算机是如何启动的

作者: gsonliu | 来源:发表于2017-02-09 09:57 被阅读101次

一.启动入口

任何启动程序或者系统都有启动入口。那么计算机的启动入口是什么呢

1.1 CS:IP

CS寄存器: 代码段寄存器
IP寄存器:指令指针寄存器
在实模式下,内存地址为:CS * 16 + IP,例如CS:0xF000和IP:0xFFF0,计算得出内存地址为0xFFFF0。
而CPU将CS:IP地址指向的内容当做指令执行。

1.2 启动入口地址

由于还没有启动,肯定不是由软件操作,而是由硬件操作的。首先将CS寄存器置为0xF000,IP寄存器置为0xFFF0。所以CPU第一条执行的指令地址是0xFFFF0

1.3 0xFFFF0是什么地址

0xFFFF0指向BIOS的入口地址,此地址所指向的内容也是一条执行jmp f000:e05b

二.启动顺序

启动顺序

2.1 设置启动入口地址

设置启动入口地址CS:IP 为0xF000:0xFFF0

2.1 执行BIOS

BIOS是Bbase Input Output System的缩写,基本输入输出系统。

BIOS是一个ROM(只读存储器),容量较小,只能做少部分工作,不可能完成所有的启动任务。

所以BIOS只完成了下面几项工作:

  • POST(Power-On Self-Test):硬件自检

检查计算机硬件是否满足运行基本条件,如果出现问题,主板会发出不同含义的报警。如果没有问题,则继续启动。并建立中断向量表等等

  • 检验和加载启动盘位于0盘0道1扇区的内容到内存0x7c00处

    加载的内容就是MBR引导程序,至于为什么在0盘0道1扇区,就是约定的。

  • 最后跳转到0x7c00处,jmp 0:0x7c00

2.1 MBR主引导记录

BIOS按照启动顺序,把控制权转交给MBR.MBR是Main/Master Boot Record的缩写,主引导记录。共512字节。

主引导记录结构:

  • 1-446字节: 调用操作系统的机器码
  • 447-510字节: 分区表
  • 511-512: 主引导记录标记(0x55和0xAA),如果此扇区末尾两个字节是0x55和0xAA,则表示是MBR主引导记录

分区:

比如我们普通的电脑都分为C D E F等几个盘,到底哪个是启动盘,主引导记录将控制权转交给哪个盘,也就是哪个分区

  • 第1个字节:如果为0x80,就表示该主分区是激活分区,控制权要转交给这个分区
  • 第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等)
  • 第5个字节:主分区类型
  • 第6-8个字节:主分区最后一个扇区的物理位置
  • 第9-12字节:该主分区第一个扇区的逻辑地址
  • 第13-16字节:主分区的扇区总数

MBR应该将控制权转交给系统加载器,MBR所做的工作

  • 读取每个分区的开始位置,判断是否是0x80,如果是0x80,则是激活分区
  • 将控制权交给OBR

2.3 OBR 系统引导记录

OBR是OS Boot Record的缩写,系统引导记录,也就是所谓的次引导记录,就是操作系统的起始位置。然后后面就把控制权交给操作系统了。

OBR所做工作

  • 加载操作系统到内存的某个位置
  • 然后跳转到操作系统内存位置开始执行,启动系统

三.几个概念

  • MBR:Main /Master Boot Record的缩写,是主引导记录
  • BIOS: Base Input Output System,基本输入输出系统
  • EBT: Extend Boot Record,扩展引导记录
  • OBR: OS Boot Record,操作系统引导程序

参考:
【1】阮老师博客

相关文章

  • 一篇文章看明白 Android 系统启动时都干了什么

    Android - 系统启动过程 计算机是如何启动的? 首先熟悉一些概念,计算机的硬件包括:CPU,内存,硬盘,显...

  • 计算机是如何启动的

    本文参考了这里. 计算机是如何启动的? 作者: 阮一峰 从打开电源到开始操作,计算机的启动是一个非常复杂的过程。 ...

  • 计算机是如何启动的?

    从打开电源到开始操作,计算机的启动是一个非常复杂的过程。 零、boot的含义 先问一个问题,"启动"用英语怎么说?...

  • 计算机是如何启动的

    一.启动入口 任何启动程序或者系统都有启动入口。那么计算机的启动入口是什么呢 1.1 CS:IP CS寄存器: 代...

  • 计算机是如何启动的?

    从打开电源到开始操作,计算机的启动是一个非常复杂的过程。 零、boot的含义 "启动"的英文是boot。而boot...

  • 烽火通信有线网络配置教程

    一、在计算机服务(如何打开计算机服务见下方)中启动 Wired AutoConfig 服务,并设置为开机自动启动。...

  • iOS之系统启动流程

    在了解iOS设备系统启动流程之前,我们先来了解一下传统的计算机系统是如何启动的。计算机系统的启动分为前后两个过程,...

  • 电脑卡顿休眠问题

    尝试进行干净启动,看看是否有所缓解: 如何将计算机重置为正常启动

  • 计算机系统是如何启动的?

    本文是操作系统系列的第一篇文章,以BIOS-MBR启动过程为例,介绍计算机系统是如何启动的。原文链接,更多内容见公...

  • Linux内核学习总结

    目录列表 1计算机是如何工作的?2操作系统是如何工作的?3跟踪分析Linux内核的启动过程4系统调用的工作机制5系...

网友评论

    本文标题:计算机是如何启动的

    本文链接:https://www.haomeiwen.com/subject/hdkiittx.html