centos7的启动过程
一、终端态启动顺序:
开机启过程
POST–>BOOT
SEQUENCE–>BOOTLOADER–>KERNEL+INITRAMFS(INITRD)–>ROOTFS–>/sbin/init
POST:加电自检
检查内存,CPU等
Boot sequence:选择引导顺序
光盘启动,硬盘启动,网络启动,还是U盘启动(同windows)
Bootloader:引导加载器
MBR引导记录大小为512字节,其中前446个字节就是Bootloader,主要用来引导用户选择要启动的系统或不同的内核版本,把用户选定的内核装载到RAM中的特定空间中,解压,展开,而后把系统控制权移交给内核。
grub2分两部分:
1.在MBR引导记录中,大小为446字节,主要功能是引导启动介质的grub主体文件
2.partition,/boot/grub[2],此为grub的主体。
KERNEL+INITRAMFS(INITRD)–>ROOTFS:加载内核
内核初始化,生成一个ramdisk文件,用来模拟系统环境。退出ramdisk,下一步加载到真正的根文件系统。
ramdisk:内存上临时虚拟的系统
ramdisk(虚拟磁盘,双缓冲,双缓存)—-> ramfs(虚拟文件系统)
centos5:initrd
工具程序:mkinitrd
centos6,7:initramfs
工具程序:dracut,mkinitrd
/sbin/init:运行用户空间的第一个应用程序
init:
Centos 5: SysV init 配置文件:/etc/inittab
Centos 6: Upstart 配置文件:/etc/inittab;/etc/init/*.conf(主要)
Centos 7: systemd 配置文件:/etc/systemd/system;/usr/lib/systemd/system
至此,内核空间就已经启动完毕,内核启动完成接着开始启动用户态启动过程。
systemd是个守护进程,pid号为1,
后面所有启动的服务或进程都是systemd的子进程及子进程的子进程。
二、用户态的启动顺序
设置默认允许级别—>初始化脚本,
完成系统初始化—>关闭及启动对应级别下的服务—–>设置登录终端—–>[启动图形终端]