计算机启动过程

计算机的启动过程是一个复杂的过程,我们根据计算机的控制权在哪一部分手上,可以把这一过程划分为以下四个阶段:

BIOS→主引导记录→Boot Loader→操作系统运行

一、BIOS

当电源开关启动后,主板会通电并初始化固件(即芯片集等),而BIOS(Basic Input Output System 基本输入输出系统)的运行代码则早已被刷入集成在主板的ROM芯片中。

通电后会尝试运行CPU,如果CPU运行不正常,则计算机会处于完全死机状态,同时主板会发出蜂鸣声。

初始化CPU寄存器,比如初始化指令指针IP和代码寄存器CS;他们的初始化的值将CPU执行的第一条指令定位到BIOS的启动代码部分

倘若计算机为多处理器或者是多核处理器时,将会动态的选择自引导处理器(BSP)。除了BSP外,剩下的处理器叫做应用处理器(AP)。AP将会停止运行直到他们被内核唤醒激活。

CPU从地址FFFF:0000H处(即复位向量)开始执行指令(CS的初始值为0FFFFH,IP的初始值为0000H),这是一条跳转指令,跳到BIOS的启动代码处并启动BIOS

BIOS初始化硬件设备

在BIOS中包含有自诊断程序等程序,而启动了BIOS后,BIOS首先检查计算机的硬件能否满足运行的基本要求,即启动硬件自检(Power-On Self-Test POST)。此时计算机会先检测显卡是否有问题,若出现问题则停止BIOS同时发出蜂鸣声警报并死机。检测完显卡后到其他的设备,此时会根据检测结果在显示器上显示硬件设备的信息或错误信息。

二、主引导记录

计算机中可能存在有许多个存储设备,诸如硬盘、可移动硬盘、U盘等等,这些设备按用户预先设置好的优先级安排一个“启动顺序”。BIOS则根据这个顺序将计算机的控制权交给排在第一位的存储设备

该设备的第一个扇区(即该设备最前面的512个字节),也叫做主引导记录MBR(Master boot record )或引导扇区。引导加载程序(Boot Loader)的代码便存在这个扇区里面。

主引导记录的主要作用是告诉计算机到该存储设备的哪一个位置去找操作系统。

我们知道硬盘可以进行分区,而不同的分区可以安装不同的操作系统,这样我们就必须要让主引导记录知道要将控制权交个哪一个分区。主引导记录中的第447-510字节存储的就是该存储设备的分区表,总长度为64字节。一个硬盘只能分成四个一级分区(主分区),每个主分区的信息需要占用16个字节。这16个字节中的第一个字节表示该分区是否为激活分区,若该字节为0x80则代表该分区为激活分区,要将控制权交给这个分区,因此四个主分区里面只能有一个是激活的。

排在第一位的存储设备得到控制权后,计算机会读取该设备的第一个扇区(即主引导记录),倘若该扇区最后两个字节为0x55和0xAA则表明这个设备可以用于启动;否则将控制权交个“启动顺序”中的下一个设备。

将主引导记录的内容加载到内存位置0 x7c00并跳转到该位置以开始执行MBR中的代码,即运行主引导加载程序

将控制权交给主引导加载程序

三、Boot Loader

主引导加载程序在执行时需要把计算机的控制权交给存储设备的某个分区,好让计算机从该分区启动操作系统,那具体计算机是怎么知道要交个哪个分区呢?这里分为3种启动情况

  1. 卷引导记录(Volume boot record VBR)

    因为四个主分区里面,只有一个是激活分区,所以该情况下计算机会读取激活分区的第一扇区,判断该分区是激活的之后就相当于告诉计算机,操作系统在这个分区里面了。

  2. 扩展分区和逻辑分区

    “扩展分区”指这个分区里面又分成多个区,这种分区里面的分区就叫做“逻辑分区”。计算机通过读取“扩展分区”的第一个扇区(即“扩展引导记录”),该扇区中也有一张64字节的分区表,但最多只有两项(即两个逻辑分区)。接着读取逻辑分区的第一个扇区,再从里面找到下一个逻辑分区的位置。如此下去,扩展分区可以包含无数个逻辑分区。

  3. 启动管理器

    计算器读取“主引导记录”的前446字节的机器码之后,不把控制权交个某一个分区,而是运行“启动管理器”(boot loader),然后由用户选择启动哪一个操作系统

找到激活分区后,加载该分区的引导扇区,然后运行该代码

分区引导扇区完成的工作包括:引导加载程序将处理器从实模式切换到32位保护模式、从硬盘读取内核

四、操作系统运行

操作系统的内核载入内存

此后,不同的操作系统会有不同的动作,但主要还是包含以下几个方面:

加载底层设备驱动程序和所需要的服务

初始化内核

启用登录程序

五、顺序流程图

计算机如何启动.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,176评论 5 469
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,190评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,232评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,953评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,879评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,177评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,626评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,295评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,436评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,365评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,414评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,096评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,685评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,771评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,987评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,438评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,032评论 2 341

推荐阅读更多精彩内容

  • 前一篇文章描述了Intel x86计算机主板和内存映射图,现在我们来解说一下计算机启动的几个阶段。下面是一个简单图...
    Nuk阅读 1,651评论 1 7
  • CPU 中有一块双亲板(母版),双亲板中有个称为 BIOS(标准输入输出系统 Basic Input Output...
    StackFing阅读 343评论 0 0
  • BIOS 以intel8086为例,8086有20根地址线。一共可以访问到0x00000 - 0xFFFFF的地址...
    ffusheng阅读 394评论 0 0
  • 转载声明:本文虽然不是本人100%原创,但也是辛辛苦苦整理的,可以转载,但请注明出处 这篇文章是关于折腾Windo...
    SOMCENT阅读 7,982评论 3 37
  • 第一阶段:BIOS 上个世纪70年代初,“只读内存”(read-only memory,缩写为ROM)发明,开机程...
    cosWriter阅读 1,861评论 0 3