了解Linux的启动过程对于我们学习Linux,深刻理解Linux的工作原理有很大帮助
Linux系统的启动主要分为1,加载bios 2,读取mbr 3,boot loader 4,加载内核
5,读取inittab文件设置运行等级 ,6,读取rc.sysinit设置用户信息 7,启动内核模块
8,运行不同级别的脚本程序, 9启动登录脚本
1, 加载BIOS
在计算机启动的开始系统会首先加载bios,bios里面有计算机硬件的相关信息,
2, 读取mbr
Mbr是计算机第一个扇区,其中包含了系统的预启动信息,和分区表信息
3, 加载boot loader
Bootloader是启动系统的引导,有很多种其中常见的有grub,lilo spfdisk等
其中Linux中大部分使用的是grub ,grub中有系统启动的相关信息存储在grub。Conf中,grub按照grub.conf中的设置确定系统的启动循序,默认启动的系统,内核的版本等信息
下面就是grub.Conf
4, 加载内核
系统根据grub.conf的设置读取内核所在的位置,系统将内核解压缩并读取到内存中,完成内核的各种设备的初始化,建立一个基本的系统
5, 读取inittab文件完成运行等级等各项设置,下面就是initab的设置
其中inittab的作用是
(1), 设定默认运行级别
(2),启动系统初始化脚本
(3),执行指定运行级别下的每一个启动脚本
(4),由于捕获特定的快捷键序列 设定Ctrl+alt +del组合键功能
(5),设定电源故障时,要执行的脚本
( 6)设定要启动的虚拟控制台 /dev/tty
(7),指定运行级别为5时做图形界面初始化的脚本
Linux 运行级别 0-6
1,0 halt 关机
2,1 单用户模式 不启用 /etc/passwd , /etc/shadow
3,2 多用户模式 不启用网络文件系统
4,3完全多用户模式 纯文本界面
5,4 预留的未使用
6,5完全多用户模式 窗口界面
7,6 重启
6, 读取rc.sysinit文件
Rc.sysinit文件的作用
(1),激活udev和selinex
(2), 设置内核参数/etc/sysctl.conf
(3),设置系统时钟
(4),装载键盘映射
(5),启用交换分区
(6),设置主机名称 /etc/sysconfig/network
(7),根文件系统检查并重新以读写方式挂载系统
文件系统的一致状态
(8),激活raid 和lvm设备
(9),启用磁盘配额
(10),检测并挂载其他的文件系统 ,/etc/fstab下定义的文件系统
(11),清除不再使用的锁和PID文件
7,启动内核模块
在Linux内核的制作时为了在内核启动时减少内存的使用率,Linux把许多驱动程序做成模块放在内核中,在内核启动后才加载各个驱动模块
8, 执行不同运行级别的脚本程序
根据运行级别的不同,系统会运行rc.d 到rc6.d 的相应的脚本晨讯,朗文臣相应的初始化工作和启动相应的复去
9, 系统执行/bin/login程序,进入登录状态