linux系统的启动过程
linux系统的启动过程
Linux系统的启动过程可以详细分为以下几个阶段:
-
加电自检(POST)和硬件初始化:
- 当计算机加电后,首先进行加电自检(POST),由BIOS或UEFI执行。这一过程中,固件会检查CPU、内存、显卡、键盘等硬件设备是否正常。
- 如果自检通过,固件会初始化硬件设备,使其进入可工作状态,并读取CMOS中的设置,如启动顺序、硬件配置等。
-
加载引导加载程序:
- BIOS或UEFI找到引导设备(如硬盘或光盘)中的引导扇区后,会加载引导加载程序。引导加载程序是计算机启动过程中的一个重要部分,其任务是加载Linux内核。
- 在Linux系统中,常见的引导加载程序有GRUB(Grand Unified Bootloader)和LILO(LInux LOader)。GRUB的启动过程包括加载GRUB、加载其配置文件(通常是
/boot/grub/grub.cfg
)、选择启动项(如果存在多个Linux内核版本)、加载选定的Linux内核到内存中、加载初始化RAM磁盘(initrd)等步骤。
-
加载linux内核:
- 一旦引导加载程序将控制权转交给Linux内核,内核初始化过程就开始了。内核初始化的主要任务包括:
- 设置中断和异常处理机制,以确保系统能够正确处理硬件中断和软件异常。
- 初始化内存管理机制,如物理内存管理、虚拟内存管理等。
- 初始化系统模块,如进程管理、文件系统、网络管理等。
- 加载必要的驱动程序,以支持计算机的硬件设备。
- 挂载根文件系统,通常是
/
文件系统。 - 启动初始化进程(init),这是Linux系统中的第一个用户级进程。
4.挂载rootfs根文件系统
- Linux内核启动时挂载的第一个文件系统,它包含了Linux启动时所需的基本文件和目录结构。
5.安装驱动程序
Linux的驱动一般有两种格式,分别为tar和rpm格式
6.提供字符界面
字符界面(Console Interface)是Linux系统提供的一种文本模式操作界面
- 一旦引导加载程序将控制权转交给Linux内核,内核初始化过程就开始了。内核初始化的主要任务包括: