Linux系统的启动过程简述

Linux的启动过程

1、内核引导
打开计算机后,首先是BIOS开机自检,因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘、内存、始终信息、PnP特性等。
操作系统接管硬件后,首先读入/boot目录下的内核文件。

磁盘上的第一个扇区被称为MBR,也就是 Master Boot Record (主引导记录),虽然只有512字节,但是存放了预启动信息,分区表信息。
系统找到BIOS指定硬盘MBR后,会将其复制到物理内存中,也就是Boot Loader。

Boot Loader 就是操作系统内核运行之前的一段小程序,可以将初始化硬件设备、建立内存空间的映射视图,为操作系统内核的运行做好准备。
Boot Loader有很多种,Grub、Lilo和spfdisk。较为常见为Grub,系统读取出内存中的grub配置信息,并按照此配置信息来启动不同的操作系统。

根据grub设定的内核映像所在的路径,系统读取内存映像,并进行解压缩操作,当解压缩内核完成后,屏幕输出“OK ,booting the kernel”。
系统将解压后的内核放置在内存之中,并调用start_kennel()函数来启动一系列的函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核就已经建立。

2、运行init
内核被加载后,第一个运行程序就是/sbin/init,该文件会读取/etc/inittab文件,并根据此文件进行初始化操作。
运行等级:

    0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
    1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
    2:多用户状态(没有NFS),(无网络支持的多用户模式)
    3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式,(有网络支持的多用户模式)
    
    4:系统未使用,保留
    5:X11控制台,登陆后进入图形GUI模式(图形化界面)
    6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

3、系统初始化
等级设定之后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它设定了path、网络配置/etc/sysconfig/network、启动swap分区、设定/proc等。

根据/etc/modules.conf 文件或/etc/modules.d目录下的文件来装载内核模块。

根据运行级别的不同,系统会从rc0.d到cr6.d中执行响应的初始化工作和启动响应的服务。

4、登录
执行/bin/login 程序,进入登录状态
对于运行级别为5的图形方式用户来说,他们的登录是通过一个图形化的登录界面。登录成功后可以直接进入 KDE、Gnome 等窗口管理器。
而本文主要讲的还是文本方式登录的情况:当我们看到mingetty的登录界面时,我们就可以输入用户名和密码来登录系统了。

Linux系统的启动过程简述_第1张图片

你可能感兴趣的:(Redhat,Linux)