建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
温馨提示

抱歉,您需设置社区昵称后才能参与社区互动!

前往修改
我再想想

浙江经贸学院

话题 : 21 成员 : 65

加入HCSD

Linux系统启动流程

牛宝宝 2020/11/14 1086

启动流程:

1、BIOS(硬件检测,查找加载磁盘上的MBR)

2、MBR(储存BootLoader信息,加载GRUB)

3、GRUB(查找并加载kernel)

4、Kernel(装载驱动,挂在rootfs,执行/sbin/init)

5、Init(OS初始化,执行runlevel相关程序)

6、Runlevel(启动指定级别的服务)


、BIOS

    BIOS叫做基本输入输出系统,该系统储存于主板的ROM芯片上,计算机开机时,会最先读取该系统,然后会有一个加电自检过程,检查CPU、内存等硬件系统,若没有异常就开始健在BIOS程序到内存当中。 
image.png

BIOS会按照启动顺序去查找第一个磁盘头的MBR信息并加载和执行MBR中的BootLoader程序,如果第一个磁盘不存在MBR,则会继续查找第二个磁盘

、GRUB

    GRUB叫做多系统启动程序,其执行过程可分为三个步骤:

image.png

    1、第一个其实就是MBR,它的主要工作就是查找并加载第二段的BootLoader程序;

    2、识别文件系统;

    3、GRUB程序会根据/boot/grub/grub.conf文件查找Kernel的信息,然后开始加载Kernel程序,当Kernel程序被检测并加载到内存中,GRUB就将控制权交给了Kernel程序。

三、 Kernel

    Kernel即Linux的内核,Kernel是Linux系统最主要的程序,kernel的文件很小,只保留了最基本的模块,并以压缩文件的形式储存在硬盘中,当GRUB将Kernel读进内存,内存开始解压内核文件。kernel以只读方式挂载根文件系统,当根文件系统被挂载后,开始装载第一个进程,执行初始化程序之后,就将控制权交给了init程序。

、Init

    INIT初始化,操作系统在进行初始化操作时,实际上是根据/etc/inittab文件中设定的动作进行脚本的执行。

、Runlevel

    Runlevel是系统的运行级别,不同的级别启动的服务是不一样的,init会根据定义的级别去执行相应目录下的脚本。

image.png

 至此,系统启动完毕


MBR(存储启动引导程序。)

MBR 也就是主引导记录,位于硬盘的 0 磁道、0 柱面、1 扇区中,主要记录了启动引导程序和磁盘的分区表。 

image.png

MBR 共占用了一个扇区,也就是 512 Byte。其中 446 Byte 安装了启动引导程序,其后 64 Byte 描述分区表,最后的 2 Byte 是结束标记。我们已经知道,每块硬盘只能划分 4 个主分区,原因就是在 MBR 中描述分区表的空间只有 64 Byte。其中每个分区必须占用 16 Byte,那么 64 Byte 就只能划分 4 个主分区。 


回复 (2)

XueMian
0 0
2020/11/20 19:02

感谢分享

Jack20
0 0
2020/11/25 13:21

感谢分享

上划加载中
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

牛宝宝

角色:明星成员

话题:3

发消息
更新于2020年11月14日 10:55:07 10862
直达本楼层的链接
楼主
倒序浏览 只看该作者
Linux系统启动流程

启动流程:

1、BIOS(硬件检测,查找加载磁盘上的MBR)

2、MBR(储存BootLoader信息,加载GRUB)

3、GRUB(查找并加载kernel)

4、Kernel(装载驱动,挂在rootfs,执行/sbin/init)

5、Init(OS初始化,执行runlevel相关程序)

6、Runlevel(启动指定级别的服务)


、BIOS

    BIOS叫做基本输入输出系统,该系统储存于主板的ROM芯片上,计算机开机时,会最先读取该系统,然后会有一个加电自检过程,检查CPU、内存等硬件系统,若没有异常就开始健在BIOS程序到内存当中。 
image.png

BIOS会按照启动顺序去查找第一个磁盘头的MBR信息并加载和执行MBR中的BootLoader程序,如果第一个磁盘不存在MBR,则会继续查找第二个磁盘

、GRUB

    GRUB叫做多系统启动程序,其执行过程可分为三个步骤:

image.png

    1、第一个其实就是MBR,它的主要工作就是查找并加载第二段的BootLoader程序;

    2、识别文件系统;

    3、GRUB程序会根据/boot/grub/grub.conf文件查找Kernel的信息,然后开始加载Kernel程序,当Kernel程序被检测并加载到内存中,GRUB就将控制权交给了Kernel程序。

三、 Kernel

    Kernel即Linux的内核,Kernel是Linux系统最主要的程序,kernel的文件很小,只保留了最基本的模块,并以压缩文件的形式储存在硬盘中,当GRUB将Kernel读进内存,内存开始解压内核文件。kernel以只读方式挂载根文件系统,当根文件系统被挂载后,开始装载第一个进程,执行初始化程序之后,就将控制权交给了init程序。

、Init

    INIT初始化,操作系统在进行初始化操作时,实际上是根据/etc/inittab文件中设定的动作进行脚本的执行。

、Runlevel

    Runlevel是系统的运行级别,不同的级别启动的服务是不一样的,init会根据定义的级别去执行相应目录下的脚本。

image.png

 至此,系统启动完毕


MBR(存储启动引导程序。)

MBR 也就是主引导记录,位于硬盘的 0 磁道、0 柱面、1 扇区中,主要记录了启动引导程序和磁盘的分区表。 

image.png

MBR 共占用了一个扇区,也就是 512 Byte。其中 446 Byte 安装了启动引导程序,其后 64 Byte 描述分区表,最后的 2 Byte 是结束标记。我们已经知道,每块硬盘只能划分 4 个主分区,原因就是在 MBR 中描述分区表的空间只有 64 Byte。其中每个分区必须占用 16 Byte,那么 64 Byte 就只能划分 4 个主分区。 


点赞 举报
分享

分享文章到朋友圈

分享文章到微博

XueMian

角色:校园大使

话题:13

发消息
发表于2020年11月20日 19:02:42
直达本楼层的链接
沙发
只看该作者

感谢分享

点赞 评论 引用 举报

Jack20

角色:导师

话题:88

发消息
发表于2020年11月25日 13:21:15
直达本楼层的链接
板凳
只看该作者

感谢分享

点赞 评论 引用 举报

游客

您需要登录后才可以回帖 登录 | 立即注册