【学习笔记】 开机流程

启动流程图:

          

     

       

 

 

当我们打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序。这一程序通常

知道一些直接连接在主板上的硬件(硬盘,网络接口,键盘,串口,并口)。

现在大部分的BIOS允许你从软盘、光盘或者硬盘中选择一个来启动计算机。

 

下一步,计算机将从你所选择的存储设备中读取起始的512 bytes(比如光盘一开是的512 bytes,如果从光盘启动的话)。

512 bytes 叫做主引导记录MBR(master boot record)MBR会告诉电脑从该设备的某一个分区(partition)来装载引导

加载程序(boot loader)。

Boot loader储存有操作系统(OS)的相关信息,比如操作系统名称,操作系统内核所在位置等。常用的boot loader

GRUBLILO

主引导记录(MBR)的结构

主引导记录只有 512 个字节,放不了太多东西。它的主要作用是,告诉计算机到硬盘的哪一个位置去找操作系统。

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

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

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

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

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


随后,boot loader会帮助我们加载内核(kernel)。kernel 实际上是一个用来操作计算机的程序,它是计算机操作系统的内核,主要的任

务是管理计算机的硬件资源,充当软件和硬件的接口。操作系统上的任何操作都要通过kernel传达给硬件。WindowsLinux各自有自己

kernel。狭义的操作系统就是kernel,广义的操作系统包括kernel以及kernel之上的各种应用。


实际上,我们可以在多个分区安装boot loader,每个boot loader对应不同的操作系统,在读取MBR的时候选择想要启动

boot loader。这就是多操作系统的原理。

 

加载Linux kernelLinux kernel开始工作。kernel会首先预留自己运行所需的内存空间,然后通过驱动程序(driver)检测计算机

硬件。这样,操作系统就可以知道自己有哪些硬件可用。


随后,kernel会启动一个 init 进程。它是Linux系统中的1号进程。到此,kernel就完成了在计算机动阶段的工作,交接

给 init 来管理。

 

根据boot loader的选项,Linux此时可以进入单用户模式(single user mode)。

在此模式下(单用户模式),初始脚本还没有开始执行,我们可以检测并修复计算机可能存在的错误

随后,init会运行一系列的初始脚本(startup scripts),这些脚本是Linux中常见的shell scripts。这些脚本执行如下功能:

设置计算机名称,时区,检测文件系统,挂载硬盘,清空临时文件,设置网络……

当这些初始脚本,操作系统已经完全准备好了,只是,还没有人可以登录!

init会给出登录(login)对话框,或者是图形化的登录界面。 


总结:BIOS -> MBR -> boot loader -> kernel -> init process -> login

 


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值