CentOS系统启动流程

  

CentOS系统启动流程
Linux系统的组成部分
Linux系统的组成部分:内核+根文件系统
内核:进程管理,内存管理,网络协议栈,文件系统,驱动程序,安全功能
内核设计流派:
单内核设计:把所有功能集成同一个程序
微内核设计:每种功能使用一个单独的子系统实现
Linux内核特点:支持模块化:.ko(内核对象)
支持模块运行时动态装卸或卸载
组成部分:
核心文件:/boot/vmlinuz-VERSION-release
ramdisk: CentOS 5:/boot/initrd-VERSION-release。img
CentOS 6、7:/boot/initramfs-VERSION-release.img
模块文件:/lib/模块/版本发布
运行中的系统环境可分为两层:内核空间,用户空间
用户空间:应用程序(进程或线程)
内核空间:内核代码(系统调用)

  

CentOS系统的启动流程
1。加载BIOS的硬件信息,获取第一个启动设备
2。读取第一个启动设备MBR的引导加载程序(grub)的启动信息
3。加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
4。核心执行init程序,并获取默认的运行信息
5. init程序执行/etc/d/rc.sysinit文件
6。启动核心的外挂模块
7. init执行运行的各个批处理文件(脚本)
8. init执行/etc/d/自动加载
9。执行/bin/登录程序,等待用户登录
10。登录之后开始以层控制主机
详细说明启动流程
1 . .加载BIOS的硬件信息,获取第一个启动设备:
后,加电自检是BIOS功能的一个主要部分,负责完成对CPU、主板,内存,硬盘子系统,显示子系统,串并行接口,键盘等硬件情况的检测
罗:BIOS,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置,开机加电自检程序和系统启动自举等
内存:CMOS互补金属氧化物半导体,保存各项参数的设定
按次序查找引导设备,第一个有引导程序的设备为本次启动设备
引导装载程序:引导加载器,程序;
窗口:ntloader Linux
:
LILO: LIinux装载机
GRUB:大统一的GRUB引导装载程序
0。X: Grub Legacy
Grub 1。X: Grub2
功能:提供一个菜单,允许用户选择要启动的系统或不同的内核版本;把用户选定的内核装载到RAM中的特定空间中,解压,展开,而后把系统控制权移交给内核
2。读取第一个启动设备MBR的引导加载程序(grub)的启动信息

  

MBR:第一个扇区
前446字节:引导装载程序
中间64字节:分区表
最后2字节:55 aa

  

GRUB:
引导装载程序:第一阶段
分区:文件系统驱动程序,1.5
分区阶段:/boot/GRUB,第二阶段
3。加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备

  内核:


自身初始化:
探测可识别到的所有硬件设备
加载硬件驱动程序
以只读方式挂载根文件系统
运行用户空间的第一个应用程序:/sbin/init
程序的类型:
Centos5 -: SysV int
配置文件:/etc/inittab
Centos6:暴发户
配置文件:/etc/inittab
/etc/init/*。参看
CentOS 7: Systemd
配置文件:/usr/lib/Systemd/系统//etc/systemd/system/
ramdisk:
Linux内核的特性之一:使用缓冲和缓存来加速对磁盘上的文件访问。
ramdisk——比;ramfs
CentOS 5: initrd
工具程序:mkinitrd
CentOS 6、7: initramfs
工具程序:dracut mkinitrd
4。核心执行init程序,并获取默认的运行信息
init程序的类型:

  

1。SysV: init、在CentOS 5中的开机速度是最慢的原因是采用SysV init方式,其特点是启动用户空间的服务程序,通常通过脚本进行,有依赖关系的服务将被串行启动。

  

(1)运行级别:为了系统的运行或维护等目的而设定的机制;
0-6:7个级别;
0:关机,关闭
1:单用户模式(单用户),根用户,无须认证;维护模式,
2:多用户模式(多用户),会启动网络功能,但不会启动NFS;维护模式,
3:多用户模式(中的用户),完全功能模式,文本界面;
4:预留级别:目前无特别使用目的,但习惯以同3级别功能使用。
5:多用户模式(多用户),完全功能模式,图形界面;
6:重启,重启
默认级别:3、5
级别切换:init #
级别查看:
谁- r
运行级别
(2)配置文件:/etc/inittab
每行定义一种行动以及与之对应的过程
id:运行级:行动:过程
id:一个任务的标识符;
运行级:在哪些级别启动此任务,#,# # #,也可以为空,表示所有级别;
行动:在什么条件下启动此任务,
过程:任务,
:
等:等待切换至此任务所在的级别时执行一次。
重生:一旦此任务终止,就自动重新启动之;

CentOS系统启动流程