一、linux的启动过程
1、BIOS
基本输入输出系统(BasicInputOutputSystem,BIOS)是一组固化到计算机显卡上的只读显存镜像(ReadOnlyMemoryimage,ROM)芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
2、MBR
全新硬碟在使用之前必须进行分区低格,硬碟分区初始化的格式主要由两种,分别是:MBR格式和GPT格式。
假如使用MBR格式,操作系统将创建主引导记录磁道(MainBootRecord,MBR),主要功能是操作系统对c盘进行读写时,判定分区的合法性以及分区引导信息的定位。主引导磁道总共为512字节linux 运行等级,MBR只占用了其中的446个字节,另外的64个字节为硬碟分区表(DiskPartitionTable,DPT),最后两个字节“55,AA”是分区的结束标志。
MBR是计算机启动最先执行的硬碟上的程序,只有512字节大小linux 运行等级,所以不能载入操作系统的核心,只能先载入一个可以载入计算机核心的程序,我们称之为引导程序。
3、GRUB引导
GNU项目的多操作系统启动程序(GRandUnifiedBootloader,GRUB),可以支持多操作系统的引导,它容许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB是一个多重操作系统启动管理器,拿来引导不同的系统。诸如linux,常见的引导程序包括:LILO、GRUB、GRUB2,CentOS7Linux默认使用GRUB2引导程序,引
导系统启动;GRUB2是基于GRUB开发成愈发安全强悍的多系统引导程序,同时GRUB2采用了模块化设计,致使GRUB2核心愈发精炼,使用愈发灵活。
4、加载kernel
计算机读取显存映像,并进行解压缩操作,屏幕通常会输出“UncompressingLinux”的提示,当解压缩内核完成后,屏幕输出“OK,bootingthekernel”。系统将解压后的内核放置在显存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各类设备,完成linux核心环境的构建。
5、设定Inittab运行等级
内核加载完毕linux操作系统简介,会启动Linux操作系统第一个守护进程init,之后通过该进程读取/etc/inittab文件,/etc/inittab文件的作用是设定Linux的运行等级。
6、加载rc.sysinit
读取完运行级别,Linux系统执行的第一个用户层文件/etc/rc.d/rc.sysinit,该文件功能包括:设定PATH运行变量、设定网路配置、启动swap分区、设定/proc、系统函数、配置Selinux等。
7、加载内核蓝筹股
读取/etc/modules.conf文件及/etc/modules.d目录下的文件来加载系统内核模块。该模块文件,可以后期添加或则更改以及删掉。
8、启动运行级别程序
按照读取的运行级别,操作系统会运行rc0.d到rc6.d中的相应的脚本程序红旗linux6.0教程,来完成相应的初始化工作和启动相应的服务。以S开头表示系统正式启动的程序,假如以K开头,则代表停止该服务。S和K后紧随的数字为启动次序编号。
9、读取rc.local文件
操作系统启动完相应服务以后,会读取执行/etc/rc.d/rc.local文件,可以将须要开机启动的任务加入到该文件末尾,系统会逐行去执行并启动相应命令。
10、执行/bin/login程序
执行/bin/login程序,启动到系统登入界面,操作系统等待用户输入用户名和密码,即可登入到Shell终端。输入用户名、密码即可登入Linux操作系统,至此Linux操作系统完整流程启动完毕。
二、linux的常见运行级别
0:死机模式
1:单用户模式
2:无网路支持的多用户模式
3:字符界面多用户模式
4:保留,未使用模式
5:图象界面多用户模式
6:重启模式,重新引导系统