Linux启动过程
Linux启动需要经历一些步骤,这些步骤确保系统能够在各种不同的硬件和配置条件下可靠地启动和运行,并且具有足够的灵活性以适应不同的使用场景和需求,具体步骤如下:
- BIOS/UEFI初始化(硬件初始化):执行基本输入输出系统(BIOS)或统一可扩展接口(UEFI)中的初始化程序。这些程序负责硬件的自检、加载引导程序等操作,这确保了系统能够正确地与硬件交互,并且提供了基本的硬件支持。
- 引导加载程序(Boot Loader):BIOS/UEFI初始化后,控制权被传递给引导加载程序,从而加载操作系统的内核映像和必要的初始化RAM磁盘映像,以及传递启动参数给内核;这个过程是系统启动的关键一步,确保了正确的内核被加载并且系统启动参数被正确传递。
- Linux内核启动:引导加载程序将控制权交给Linux内核。内核启动时,会初始化硬件、加载必要的驱动程序以及创建第一个用户进程(init进程);这确保了系统能够正确地与硬件交互,并且能够访问存储在磁盘上的文件系统。
- init进程启动:init 进程是 Linux 系统的第一个用户空间进程,它负责启动系统的其他进程和服务;通过 init 进程,系统可以在启动时根据需要启动不同的服务,并且提供了系统运行级别的管理和切换功能。
- 运行级别初始化:根据系统的默认运行级别,init 进程会启动相应的运行级别。每个运行级别都定义了一组需要启动的系统服务和进程。通过运行级别,管理员可以根据需要轻松地切换系统的运行状态,并且可以根据需要启动或停止不同的服务。
- 系统初始化和用户登录:一旦系统处于适当的运行级别并启动了所需的服务,系统就会初始化各种设置和环境。如果是多用户环境,系统会等待用户登录。登录后,用户可以开始使用系统。
Linux中的7种运行级别
通过设置不同的运行级别,管理员可以实现系统启动时的自定义配置,例如启用或禁用特定服务、加载特定的内核模块等。这种灵活性使得 Linux 系统可以更好地适应不同的使用场景和需求。
- 单用户模式(runlevel 1):也称为救援模式,系统在此模式下只启动最基本的服务和进程,通常用于系统修复和维护。
- 多用户模式(runlevel 2、3、4):这些运行级别通常用于多用户环境下,系统启动基本的网络服务,但不包含图形用户界面。
- 多用户图形界面模式(runlevel 5):系统启动图形用户界面和相关服务,适用于桌面系统或需要图形界面的服务器环境。
- 关机(runlevel 0):系统关闭所有服务并停止运行;
- 重新启动(runlevel 6):系统重新启动;
与运行级别相关的 Bash 指令通常用于管理系统的运行级别以及执行与运行级别相关的操作。以下是一些常用的与运行级别相关的 Bash 指令:
runlevel #显示当前系统的运行级别
telinit #用于改变系统的运行级别
init #传统的系统初始化程序,也可用来改变系统的运行级别
chkconfig --list # 显示所有系统服务及其在各个运行级别下的启用情况
chkconfig on # 将指定服务在启动时自动启用
chkconfig off # 将指定服务在启动时取消自动启用