Linux系统启动过程

        了解Linux系统的启动过程有助于我们深入理解Linux系统运行原理,下面我们将介绍一些系统启动过程中一些重要的细节。在这里,我们将Linux系统启动过程分成7个步骤介绍,这个过程如下图所示。

1.启动BIOS,开机自检

打开电源,主板会启动保存在ROM(Read Only Memory)中的BIOS(Basic Input Output System),BIOS会对计算机硬件进行加电自检,检测各个部件的是否能健康运行。只有在硬件健康运行的条件下,才能继续运行操作系统。加电自检英文称为"Power On Self Test",简称"POST"。

2.读取MBR,引导系统

BIOS确定硬件能正常运行之后,要按一定顺序加载设备。一般情况下,第一个加载的就是计算机的主硬盘(如果是光盘/U盘启动安装系统,需要在BIOS中设置设备Boot的顺序,将DVD/U盘设置为第一个加载的设备)。BIOS默认从主硬盘的第0柱面,第0磁道,第一扇区读取主引导记录,即MBR(Main Boot Record)。现在的固态硬盘和操作系统会使用比较新的GPT(GUID Partition Table)技术来代替MBR,但仍兼容MBR。固态硬盘的LBA(Logical Block Address)0用来存储MBR,LBA1用来存储GPT头,LBA2-LBA33用来存储分区表项。MBR占用512字节(Byte),其中引导程序占用446字节,磁盘分区表DPT占用64字节,最后两个字节是MBR的结束位。一般情况下,MBR中的446字节存放的是引导程序存储地址,因为Linux的引导程序Grub很大(如果是GPT硬盘,要使用UEFI来引导操作系统,主硬盘中会有一个单独的EFI分区保存引导程序或其执行脚本)。

3.Grub加载内核和系统初始化配置

在MBR或者EFI分区中找到Grub的地址或文件后,启动Grub,Grub就会根据配置文件kernel镜像,并运行内核加载后的第一个程序/sbin/init,这个程序会根据/etc/inittab来进行初始化工作,在这个文件中配置了系统的runLevel,例如该文件中"id:3:initdefault"的意思是系统运行级别为3。

Linux默认有7个运行级别,从运行级0到运行级6,其含义分别如下:

运行级0:关机。

运行级1:单用户模式,系统出现问题时可使用这种模式进入系统维护,典型的使用场景是在忘记root密码时可进入此模式修改root密码。

运行级2:多用户模式,但没有网络连接。

运行级3:完全多用户模式,Linux服务器最常见的运行级。

运行级4:保留未使用。

运行级5:窗口模式,支持多用户,支持网路。

运行级6:重启。

4.系统环境初始化

Linux将根据/etc/inittab中定义的系统初始化配置"si:sysinit:/etc/rc.d/rc.sysinit"执行/etc/rc.d/sysinit脚本,该脚本将会设置系统变量、网络配置、并启动swap,设定/proc、加载用户自定义模块,加载内核设置等。

5.根据运行级别来加载系统服务

根据第三步读到的runlevel值来启动对应的服务,如果值为3,就会运行/etc/rc3.d/下所有的脚本,如果值为5,就会运行/etc/rc5.d/下所有的脚本,以此类推。

6.运行/etc/rc.local

运行/etc/rc.local脚本文件。(设置一些软件开机启动可以将启动脚本写在此文件中)

7.生成终端

生成终端,登录系统。

转载于:https://my.oschina.net/chenxuanli/blog/1841068

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值