linux系统启动流程详解

本文详细介绍了Linux系统从MBR到内核加载再到init程序的启动流程。首先,MBR中的引导加载程序(如GRUB)被BIOS读取,然后控制权交给GRUB的stage2,接着加载内核到内存并进行硬件检测与驱动加载。Linux内核通过initrd或initramfs挂载根文件系统,最后由init进程启动系统服务并准备用户登陆。
摘要由CSDN通过智能技术生成

一、MBR的概念

主引导扇区位于硬盘的0磁道0柱面1扇区,共512bytes,可存放一小段程序及主分区表,由三大部分组成:

    硬盘主引导记录MBR(Master Boot Record)占446bytes

    分区表DPT(Disk Partition Table)占64bytes

    硬盘有效标志(Magic Number)占2bytes。

硬盘有效标志为AA和55,它们被称为幻数(Magic Number),BOIS读取MBR的时候总是检查最后是不是有这两个幻数,如果没有就被认为是一个没有被分区的硬盘主引导扇区包含的MBR、DPT、MN,这3个区域是操作系统无关的,在每块硬盘上都存在;MBR是一段可执行程序,由各个操作系统写入不同的代码。 MBR的存储空间限制为446字节,MBR所做的唯一的事情就是装载第二引导装载程序。Windows产生的MBR装载运行PBR;GRUB产生的MBR 装载运行grldr

 

二、GRUB概念

         详情https://blog.csdn.net/woshaguayi/article/details/89602725

三、启动流程:

           计算机在接通电源之后首先由BIOS进行自检,即进行所谓的POST(Power On Self Test),然后依据BIOS内设置的引导顺序从硬盘、软盘或CDROM中读入“引导块”。 在 PC 中,引导 Linux 是从BIOS 中的地址 0xFFFF0 处开始的。BIOS 的第一个步骤是加电自检(POST)。POST 的工作是对硬件进行检测。BIOS 的第二个步骤是进行本地设备的枚举和初始化。给定 BIOS 功能的不同用法之后,BIOS 由两部分组成:POST代码和运行时服务。当 POST 完成之后,它被从内存中清理了出来,但是 BIOS 运行时服务依然保留在内存中,目标操作系统可以使用这些服务。

      要引导一个操作系统,BIOS 运行时会按照 CMOS 的设置定义的顺序来搜索处于活动状态并且可以引导的设备。
引导设备可以是软盘、CD-ROM、硬盘上的某个分区、网络上的某个设备,甚至是 USB 闪存。通常,Linux 都是从硬
盘上引导的,其中主引导记录(MBR)中包含主引导加载程序。MBR 是一个 512 字节大小的扇区,位于磁盘上的第
一个扇区中(0 道 0 柱面 1 扇区)。当 MBR 被加载到 RAM 中之后,BIOS 就会将控制权交给 MBR

      BIOS找到第一启动项后,会读取第一启动项的MBR内的Bootloader(即grub的stage1),stage1被载入内存,此时BIOS将控制权交给grub。紧接着Stage1会直接载入stage2,或通过stage1.5间接载入stage2。Stage2是grub的核心,其功能就是加载kernel和initrd。

1.

主板加载 BIOS 的硬件信息并进行自我测试,并依据BIOS配置取得第一个可启动的装置;

2.

读取并运行第一个启动装置内 MBR 的 boot Loader (即是 grub, spfdisk 等程序);

3.

依据 boot loader 的配置加载 Kernel ,Kernel 会开始侦测硬件与加载驱动程序;

4.

在硬件驱动成功后,Kernel 会主动呼叫 init 程序,而 init 会取得 run-level 资讯;

5. init 运行 /etc/rc.d/rc.sysinit 文件来准备软件运行的作业环境 (如网络、时区等);

6.

init 运行 run-level 的各个服务之启动 (script 方式);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凤舞飘伶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值