启动五大步骤:
- 内核的引导。
- 运行 init。
- 系统初始化。
- 建立终端 。
- 用户登录系统。
1/2、内核引导(操作系统、/boot)
打开电源BIOS==>开机自检==>设备启动(BIOS设置,通常为硬盘)==>操作系统接管硬件==>读入/boot目录下的内核文件
3、运行init(init进程)
init 进程是系统所有进程的起点,没有这个进程,系统中任何进程都不会启动。
init 程序首先是需要读取配置文件 /etc/inittab。
4、运行 init(运行级别)
Init将会运行开机启动的程序,它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。
Linux根据不同的运行级别可以运行分配不同的开机启动程序。
Linux的7个运行级别如下所示:
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
- 运行级别2:多用户状态(没有NFS)
- 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登陆后进入图形GUI模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
请注意,3、4是过去Linux的方法,但是仍然能够通过该种方式理解CentOS的启动,如今打开新版本的CentOS,将会发现如下信息:
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
inittab文件无效,修改将不会影响系统程序启动,并采用systemctl set-default 和 systemctl get-default 取代数字级别。
# 查看当前运行级别
systemctl get-default
# 设置当前运行级别为3 (开机为命令行模式)
systemctl set-default multi-user.target
# 设置当前运行级别为5 (开机为图形界面)
systemctl set-default graphical.target
而此时的五种启动方式分别在etc/目录下的rc0.d、rc1.d、rc2.d、rc03.d、rc4.d、rc5.d、rc6.d中体现。
5、系统初始化(/etc/init.d)
随着版本更新,该方法已经无效。代替的位置为/sbin/init。
6/7、用户登录系统(用户登录、Login shell)
三种登录方式:
- 命令行登录
- ssh登录
- 图形界面登录
界面切换已经在之前文章中详述。