linux开机启动顺序

linux的开机启动顺序概述

1 加载BIOS硬件信息, 并获取第一个启动设备的代号;
2 读取第一个启动设备的MBR的引导加载程序的启动信息;
3 加载核心操作系统的核心信息, 核心开始解压缩, 并且尝试驱动所有的硬件设备;
4 核心执行init程序并获取运行信息;
5 init执行/etc/init.d的脚本;
6 启动核心的外挂模块/etc/modeprobe.d/中的脚本;
7 init执行运行各个批处理脚本;
8 init执行/etc/init.d/rc.local文件;
9 执行/bin/login程序, 等待用户登录;
10 登录之后开始以shell控制主机.

BIOS: basic input output system 基本输入输出系统

BIOS非常重要, 记录了主板芯片的相关设置,例如CPU和接口设备的通信频率, 启动设备的搜索顺序,硬盘大小和类型, 系统时间, 外部总线是否启动即插即用(Plug and Play, PnP), 各接口设备的I/O地址, 以及与CPU通信的IRQ中断等信息.

获得BIOS设置之后, 就启动加电自检(Power on self test, POST), 初始化硬件检测, 设置PnP设备, 确定可启动的设备.
BIOS 找到硬盘的第一个扇区之后就查找 MBR 的位置,这是最基本的引导程序(Boot loader),这个程序一旦启动,BIOS 的任务才算圆满。
在这里插入图片描述

MBR: master boot record 主引导记录.

主引导程序

MBR主引导记录中主要是安装加载程序, 这个引导加载程序猪丫就是用于识别磁盘的格式, 这样才好加载操作系统的核心(kernel).这个时候用户可以对开机选项进行操作, 例如现在主流的grub引导加载程序不仅可以可以支持linux,还可以支持windows.
一般linux的引导加载程序都可以识别window的核心文件,但是windows的引导加载程序却不能识别linux, 这也就是为什么在安装双系统的时候需要格外设置grub引导的原因.

通过引导加载程序读取linux操作系统核心文件后, 就会将核心解压缩到主存储器中, 开始测试和驱动各个外部设备,包括存储, CPU, 网卡, 声卡等等. 这些核心文件通常在/boot里, 名为vmlinuz.

加载核心过程的精彩远不止于此. 通常这时系统只会以只读的方式载入根目录, 有的时候为了某些功能可以用文件方式来读取, 在有的系统时还会建立虚拟盘, 就是说,系统会用initrd命令建立虚拟盘, 用linuxrc程序加载模块映像文件(/boot/initrd-xxx.img).

当核心驱动外部硬件的工作完成后, 就会删除该虚拟盘, 值得注意的是, initrd并非必要, 这样做的目的主要是为了保证启动的顺利进行.

总结

总结一下,就是引导加载程序找到Linux的核

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值