SystemV启动流程
内核引导
进入BIOS开机自检,BIOS接管硬件,将硬盘中的引导加载到内存中,找到第一个操作系统的内核并启动操作系统,读入**/boot**目录下的内核文件。
运行INIT启动操作系统
INIT进程是系统所有进程的起点,用来初始化所有的进程。
INIT进程会读取配置文件/etc/inittab。
运行级别
许多程序需要开机启动,在Windows叫做服务,在Linux叫做守护进程(daemon),INIT进程会启动这些开机启动的守护进程。
在不同的运行等级(runlevel) 下会有不同的守护进程。
- 运行级别0:系统停机状态,系统默认运行级别不能设为0
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
- 运行级别2:多用户状态(没有NFS)
- 运行级别3:完全的多用户状态(有NFS),登陆后进去控制台命令饭模式
- 运行级别4:系统未使用,保留
- 运行级别5:x11控制台,登陆后进入图形GUI模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
系统初始化
调用rc.sysinit脚本,完成系统初始化。
然后运行不同的rc脚本文件,这些脚本文件如果是S开头的文件,将以start运行,如果脚本是K开头的文件,而且已经处于运行态,就会以stop来停止这些已经启动的守护进程,然后重新开始运行。
保证当INIT改变运行级别时,所有相关的守护进程都将重启。
建立终端
rc执行完毕后返回INIT。这时候系统的环境和守护进程就配置好了。
INIT接下来会打开6个终端,供用户来登录。
在2、3、4、5的运行级别中都将以respawn方式运行mingetty程序,mingetty程序能打开终端,设置模式。
用户登录系统
一般来说有三种登录方式
- 命令行登录
- ssh登录
- 图形界面登录
命令行登录
会有一个文本方式登录,mingetty会将用户输入的用户名密码传给login程序进行验证。
- Title:
- Author: HarderHeng
- Created at : 2024-10-30 17:39:11
- Updated at : 2024-10-30 17:39:11
- Link: https://harderheng.life/2024/10/30/Linux启动流程/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments