Linux是怎么启动的(整理)

系统 Linux
昨天笔试考了一道关于linux系统启动的过程,当时没答上来,现在整理出来(其实并不复杂)。按下电源按钮的直到欢迎页出来之后,linux总共做的事可以分为五步来完成。

[[119983]] 

昨天笔试考了一道关于linux系统启动的过程,当时没答上来,现在整理出来(其实并不复杂)。

按下电源按钮的直到欢迎页出来之后,linux总共做的事可以分为五步来完成。

1、 BIOS加电自检:

加电自检,检测硬件设备。然后按照cmos上面的顺序来搜索处在活动状态下的可以引导的设备。可以是光驱、软盘、USB等。

2、 加载主引导加载程序(MBR):

主引导程序是一个512字节的映像。包含一点机器码还有一个小的分区。

主引导程序的任务就是查找并且加载处在硬盘分区上的次引导程序。通过分区表查找活动分区,并将处在活动分区的次引导加载程序读取到内存里面运行

3、 加载次引导记载程序(GRUB)

次引导加载程序只要就是加载linux内核。

上一阶段结束之后次引导加载程序就会在内存里面跑起来。就会出现GRUB图形界面,让用户选择加载什么样的内核。

4、 linux内核映像:

用户选择要加载的内核之后,次引导加载程序(GRUB)就会根据/boot/grub.conf配置文件中所设置的信息,从/boot/所在的分区上读取Linux内核映像,然后把内核映像加载到内存中并把控制权交给Linux内核。

linux内核获得控制权之后开始干自己的事

  •  检测硬件
  •  解压缩自己并安装必要驱动
  •  初始化与文件系统相关的虚拟设备,LVM或RAID
  •  装载根文件系统,挂在根目录下面
  •  完成之后,linux在进程空间里面加载init程序,下面轮到init干活
  •  init进程

init是所有进程的发起者和控制者,所有的进程都由此衍生。

init进程获得控制权之后,它会执行/etc/rc.d/rc.sysinit脚本,根据里面的代码设置环境变量、网络、启动swap、检查并挂载文件系统、执行其他初始化工作。

 

至此,linux启动完成。

我们稍微总结一下:

首先是BIOS加电自检,之后加载主引导加载程序、次引导加载程序,最后就是linux内核映像,完了把控制权交给init进程,完成初始化工作。

swap分区是什么?

类似windows系统中的虚拟内存,当物理内存不够用的时候,使用swap中的内存。

原文链接:http://www.cnblogs.com/lamian/p/3971195.html

责任编辑:牛小雨 来源: 周县长的博客
相关推荐

2023-12-19 09:24:22

LinuxBIOSUEFI

2022-09-19 13:21:15

Linux进程

2012-10-09 10:26:52

Linux目录权限

2020-07-13 23:42:27

Linux目录命令

2010-05-13 09:45:26

Linux地址空间

2013-10-11 14:51:16

Linux进程管理

2021-06-10 07:59:40

Linux 系统硬件操作系统

2017-03-01 15:08:44

Linuxboot目录启动

2010-07-19 14:38:56

2020-11-11 11:11:23

Linux内核源码

2021-06-01 08:37:45

Linuxdrm内存

2018-05-08 08:46:47

Linux内存释放

2018-09-30 15:05:01

Linux用户组命令

2014-09-18 09:53:19

2023-09-02 21:35:39

Linux虚拟机

2022-01-12 19:59:19

Netty 核心启动

2009-11-30 13:22:23

Suse Linux快

2019-08-15 16:30:49

TomcatSpringBootJava

2023-09-02 21:50:21

2017-03-15 20:25:34

LinuxGRUB启动背景
点赞
收藏

51CTO技术栈公众号