linux开机原理以及如何开关机
Linux 系统启动过程概述
阶段 | 描述 |
---|---|
内核引导 | 启动时,BIOS执行自检,启动设备通常是硬盘。操作系统接管硬件后,读取/boot 目录下的内核文件。 |
运行 init | init 是系统所有进程的起点,负责启动其他进程。它读取配置文件/etc/inittab ,并根据该配置启动后续的系统进程。 |
系统初始化 | init 执行/etc/rc.d/rc.sysinit 脚本,完成如激活交换分区、检查磁盘、加载硬件模块等初始化任务。 |
建立终端 | init 打开6个终端(tty1至tty6),每个终端提供用户登录系统的接口。通过配置文件inittab 定义各个终端的启动方式。 |
用户登录系统 | 用户通过命令行、SSH或图形界面进行登录。login 程序验证用户身份,文本模式下通过mingetty 启动终端,验证后进入系统。 |
init 程序及运行级别
init程序类型 | 描述 | 配置文件 |
---|---|---|
SysV | init ,CentOS 5之前使用的版本。 |
/etc/inittab |
Upstart | init ,CentOS 6使用的版本。 |
/etc/inittab , /etc/init/*.conf |
Systemd | systemd ,CentOS 7使用的版本。 |
/usr/lib/systemd/system , /etc/systemd/system |
运行级别(Runlevel)
运行级别 | 描述 |
---|---|
0 | 系统停机状态,不能正常启动 |
1 | 单用户工作状态,root权限,用于系统维护,禁止远程登录 |
2 | 多用户状态(没有NFS) |
3 | 完全的多用户状态(有NFS),登录后进入命令行模式 |
4 | 系统未使用,保留 |
5 | X11控制台,登录后进入图形GUI模式 |
6 | 系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动 |
系统初始化过程
步骤 | 描述 |
---|---|
执行rc.sysinit 脚本 |
init 调用/etc/rc.d/rc.sysinit 脚本,进行系统初始化,如激活交换分区、检查磁盘、加载硬件模块等。 |
启动守护进程 | /etc/rc.d/rc 脚本接受不同运行级别的参数,调用/etc/rc.d/rc5.d/ 目录下的启动脚本。这些脚本以S(start)或K(stop)开头,用于启动或停止守护进程。 |
脚本执行 | 根据运行级别的变化,init 通过执行start 或stop 命令来重启相应的守护进程,确保系统环境的正确初始化。 |
用户登录过程
登录方式 | 描述 |
---|---|
命令行登录 | 通过mingetty 程序登录,login 验证用户名与密码。 |
SSH登录 | 用户远程登录到系统,通常用于远程管理服务器。 |
图形界面登录 | 默认进入图形界面,通过图形化界面登录并进入KDE、Gnome等窗口管理器。 |
终端与图形界面切换
切换方式 | 描述 |
---|---|
命令窗口切换 | 使用Ctrl + Alt + F1 ~ F6 切换不同命令窗口。 |
图形界面与命令窗口切换 | 在图形界面下,按Ctrl + Alt + F1 ~ F6 进入命令窗口,按Ctrl + Alt + F7 回到图形界面。 |
VMware虚拟机切换 | 在VMware中,使用Alt + Space + F1 ~ F6 切换命令窗口,或Alt + Shift + Ctrl + F1 ~ F6 切换至命令窗口。 |
Linux 关机与重启
关机命令 | 描述 |
---|---|
sync | 将数据由内存同步到硬盘中。 |
shutdown | 用于关机,支持延迟关机,如shutdown --h 10 在10分钟后关机,shutdown --h now 立即关机,shutdown --r now 立即重启。 |
reboot | 等同于shutdown --r now ,用于系统重启。 |
halt | 等同于shutdown --h now 和poweroff ,用于关闭系统。 |
总结
-
关机命令:
shutdown --h now
,halt
,poweroff
,init 0
。 -
重启命令:
shutdown --r now
,reboot
,init 6
。