Linux系统的启动过程分为5个阶段:
- 内核的引导。
- 运行 init。
- 系统初始化。
- 建立终端 。
- 用户登录系统。
参考:
Linux的启动流程
Linux系统启动
内核引导
当打开电源后,首先BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动
操作系统接管硬件以后,首先读入 /boot 目录下的内核文件:
image.png
运行init
init 进程是系统所有进程的起点,没有这个进程,系统中任何进程都不会启动。
init 程序首先是需要读取配置文件 /etc/inittab:
image.png
Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel),Linux有7大运行级别:
- 0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
- 2:多用户状态(没有NFS)
- 3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
- 4:系统未使用,保留
- 5:X11控制台,登陆后进入图形GUI模式
- 6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
系统初始化
-
在init的配置文件中有一行: si::sysinit:/etc/rc.d/rc.sysinit 它调用执行了/etc/rc.d/rc.sysinit
-
rc.sysinit是一个bash shell的脚本,它主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本。
image.png
建立终端
rc执行完毕后,返回init,init中有6个终端:tty 1-6,各种守护进程已经启动。
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
用户登录系统
用户登录系统一般有3种方式:
- 命令行登录
- ssh登录
-
图形界面登录
image.png
图形界面和文字界面的切换
-
在Linux中提供了6个终端给用户登录,分别为tty1,tty2 … tty6
-
默认登录的是第一个tty1,通过Ctrl + Alt + F1 ~ F6 进行切换。
$ chvt 3 # 进入终端3
$ tty # 查看具体在哪个终端
-
若安装了图形界面,默认进入图形界面的,按Ctrl + Alt + F1 ~ F6选择进入一个命令窗口界面
-
若使用vmware 虚拟机,命令窗口切换快捷键: Alt + Space + F1~F6
-
若在图形界面下,按Alt + Shift + Ctrl + F1~F6 切换至命令窗口。
-
按Ctrl + Alt + F7 返回图形界面
使用小技巧:
- 图形界面中运行 runlevel 显示运行模式
$ runlevel # 表示从N模式(上一次,开机直接进入图形界面)到5模式
N 5
- 图形界面 ---> 字符界面,必须在root账户下执行;图形界面节省内存
# init 3 # 进入字符界面
# runlevel
5 3 # 从5图形界面进入字符界面3
- 字符界面---->图形界面
# init 5 # 回到图形界面, 需要登录
# startx # 不需要登录,且切换之后模式不变
init命令
init 0:关机,halt(centos7中关机不断电)、poweroff、shutdown
init 1:单用户模式,只用root进行维护
init 2:多用户模式
init 3:字符界面
init 4:安全模式
init 5:图形界面
init 6:重启
systemctl管理服务(centos7适用)
命令 | 作用 |
---|---|
systemctl enable foo.service | 开机自启动foo服务 |
systemctl disable foo.service | 开机不自动启动 |
systemctl start foo.service | 启动服务 |
systemctl restart foo.service | 重启服务 |
systemctl stop foo.service | 停止服务 |
systemctl status foo.service | 查看服务状态 |
systemctl reload foo.service | 重新加载配置文件(不重启服务) |
网友评论