一、系统启动
1.BIOS(基本输入输出系统)加电自检,检测硬件,决定启动介质,找到引导扇区
2.读取并且执行第一个开机设备中的MBR(主引导记录的gru并加载驱动程序b程序)
3.依据bootloader设置去加载内核,内核开始侦测硬件
sysvinit启动程序(linux6)
4.内核启动init进程
5.系统初始化
6.init找到/etc/inittab文件,决定系统的运行级别
7.触发相应的运行级别的事件,运行/etc/rcX.d下的脚本
8.执行/etc/rc.local文件,来到登录界面
9.输入用户密码,进入到系统中程序,
systemd启动程序(linux7)
4.在硬件加载驱动成功后,内核会主动呼叫systemd并以default.target流程开机
5.systemd执行sysinit.target初始化系统及basic.target准备操作系统
6.systemd启动multi-user.target下的本机与服务器服务
7.systemd执行multi-user.target下的/etc/rc.d/rc.local文件
8.systemd执行multi-user.target下的getty.target及登录服务
9.systemd执行graphical需要的服务
(GRUB2相较于GRUB一代的提升:更健壮、可移植、更强大。支持BIOS、uEFI和OpenFirmware,支持GPT和MBR分区表。支持非Linux系统,如苹果HFS文件系统和Windows的NTFS文件系统)
Init和Systemd的区别
init
一是启动时间长,init是串行启动,只有前一个进程启动完,才会启动下一个进程
二是启动脚本复杂,Init进程只是执行启动脚本,不管其他事情,脚本需要自己处理各种情况,这往往使得脚本变得很长
由Linux内核加载运行,位于 /sbin/init ,是系统中第一个进程,PID永远为1
systemd
按需启动服务,减少系统资源消耗。
尽可能并行启动进程,减少系统启动等待时间
由Linx内核加载运行,位于 /usr/lib/systemd/systemd ,是系统中第一个进程,PID永远为1
运行级别和说明
systemctl常用命令(管理服务)
systemctl start 服务名称 #启动服务
systemctl stop 服务名称 #停止服务
systemctl restart 服务名称 #重启服务
systemctl reload 服务名称 #重载服务
systemctl status 服务名称 #检查服务状态
systemctl is-enabled 服务名称 #检查服务是否配置为开机自启
systemctl enable 服务名称 #设置服务开机自启
systemctl disable 服务名称 #取消服务开机自启