Linux内核启动流程详细说明
时间: 2023-11-30 12:13:37 浏览: 122
Linux内核启动流程可以大致分为如下几个步骤:
1. BIOS/UEFI启动
当计算机启动时,首先执行BIOS/UEFI固件,它会进行硬件自检(POST),并加载MBR(Master Boot Record)或GPT(GUID Partition Table)分区表。
2. Bootloader加载
MBR/GPT会指向一个可引导分区(bootable partition),这个分区里存放着bootloader。常见的bootloader有GRUB、LILO、SYSLINUX等。Bootloader的主要任务是加载内核映像(vmlinuz)和初始化内核参数。
3. 内核初始化
内核映像被加载到内存中后,就会执行内核代码。内核在初始化过程中会进行如下操作:
- 初始化页表,建立虚拟地址和物理地址之间的映射关系;
- 初始化中断和异常处理机制;
- 初始化系统调用;
- 初始化进程管理机制;
- 初始化文件系统和设备驱动等。
4. 用户空间初始化
内核初始化完成后,就会执行init进程,创建用户空间,启动用户空间的各种服务和进程。init进程通常是systemd或者upstart。这些服务和进程包括网络、文件系统、用户管理、日志等等。
5. 用户登录
用户空间初始化完成后,就可以进行用户登录了。用户可以通过命令行或者图形界面登录系统。
整个启动过程涉及的细节非常复杂,包括硬件初始化、内存管理、中断处理、文件系统等等。上述只是一个大致的流程说明。
阅读全文