Linux系统启动流程详解(BIOS—MBR—GRUB--Kernel—init—run

发布时间:2020-06-30 10:14:37 作者:terence88
来源:网络 阅读:819

BIOS:Basic Input Output System;

BIOS加载CMOS,并藉助CMOS 内的配置值取得主机的各项硬件配置

BIOS 再进行启动自我测试 (Power-on Self Test, POST),然后开始运行硬件侦测的初始化,

并配置 PnP 设备,

之后再定义出可启动的设备顺序,

接下来就会开始进行启动设备的数据读取了 (MBR 相关的任务开始)。

一、GRUB:Boot Loader(启动 载入或管理程序) 分类

1.LILO(早期使用的)

2.grub(目前使用的)

3.spfdisk(目前有一部分人使用的)

 

二、Kernel文件

/boot/vmlinuz    内核文件

/boot/initramfs   内核模块(驱动程序模块)(/lib/modules/ 目录内)

 

显示内核启动信息命令:dmesg

 

三、init&runlevel

是系统运行的第一个进程

/etc/inittab    #init&runlevel文件及位置

runlevel:

0   halt(关机)

1   Single User Mode(单用户模式,此模式下可以恢复root密码)

2   Multi User Without NFS(不带网络的多用户模式)

3   命令行多用户模式

4   Unused(未使用,系统保留)

5   X11图形界面模式(与runlevel 3类似,只是多加载了一项X Window)

6   Reboot(重启)

 

显示当前及上一个运行级别的命令:runlevel

修改当前运行级别:init 3

单用户模式下可以恢复root密码

五、总结(转之于鸟哥)

当你按下电源按键后计算机硬件会主动的读取 主板中的BIOS 来加载硬件资讯及进行硬件系统的自我测试, 之后系统会主动的去读取第一个可启动的装置 (由 BIOS 配置的,如硬盘、光驱、usb flash disk、) ,此时就可以读入启动管理程序了(grub)。

启动管理程序可以指定使用哪个核心文件来启动,并实际加载核心到内存当中解压缩与运行, 此时核心就能够开始在内存内活动,并侦测所有硬件资讯与加载适当的驱动程序来使整部主机开始运行, 等到核心侦测硬件与加载驱动程序完毕后,一个最阳春的操作系统就开始在你的 PC 上面跑了。

主机系统开始运行后,此时 Linux 才会呼叫外部程序开始准备软件运行的环境, 并且实际的加载所有系统运行所需要的软件程序哩!最后系统就会开始等待你的登陆与操作啦! 简单来说,系统启动的经过可以汇整成底下的流程的:

  1. 加载 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 方式);
  7. init 运行 /etc/rc.d/rc.local 文件;
  8. init 运行终端机模拟程序 mingetty 来启动 login 程序,最后就等待使用者登陆啦;

大概的流程就是上面写的那个样子啦,你会发现 init 这个家伙占的比重非常重! 所以我们才会在第十七章的 pstree 命令中谈到这家伙。 那每一个程序的内容主要是在干嘛呢?底下就分别来谈一谈吧!

六、CMOS 内的主机配置:

CPU 与周边设备的沟通时脉

启动设备的搜寻顺序

硬盘的大小与类型

系统时间

各周边汇流排的是否启动 Plug and Play (PnP, 即插即用设备)

各周边设备的 I/O 位址

CPU 沟通的 IRQ 岔断

等等

推荐阅读:
  1. Linux系统启动流程及服务控制
  2. Linux系统启动流程

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

gr --

上一篇:关于免费数字证书的简介

下一篇:MessagePack Java 0.6.X 使用一个消息打包(message-packable)类

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》