启动流程:
没有运行程序的硬件除了会电人,没有别的用处。那么计算机是如何识别软件并执行的呢?下面介绍操作系统的开机启动流程:
- BIOS:开机时主动执行的第一个程序,会识别存储设备。
- MBR:第一个可开机的设备的第一个扇区的前446bytes,引导加载程序。
- 引导加载程序(Boot loader):加载内核文件。通过识别硬盘内的文件系统格式,读取内核文件。
- 运行rdinit=“”内核引导参数制定的init程序初始化(例如systemd)寻找并挂载根文件系统。
- 选择不同的开机选项。
- 载入内核文件
- 转交其他loader
运行级别:
RHEL/CentOS 7已经没有了"运行级别"这个概念,Linux系统在启动时要进行大量的初始化工作,比如挂载文件系统和交换分区、启动各类进程服务等,这些都可以看作是一个一个的单元Unit, systemd用目标target代替了System V init中运行级别的概念,这两者的区别如下所示:
System V init运行级别 | systemd目标名称 | 作用 |
0 |
runlevel0.target, poweroff.target |
关机 |
1 |
runlevel1.target, rescue.target |
单用户模式 |
2 |
runlevel2.target, multi-user.target |
无网络的多用户模式 |
3 |
runlevel3.target, multi-user.target |
带网络的多用户模式 |
4 |
runlevel4.target, multi-user.target |
保留 |
5 |
runlevel5.target, graphical.target |
图形界面 |
6 |
runlevel6.target, reboot.target |
重启 |
emergency | emergency.target | 救援模式 |
unit文件位置:/lib/systemd/system/*.target 或者/usr/lib/systemd/system/*.target