Linux 内核启动流程:从准备到上路(linux 内核启动流程)

Linux 内核启动流程:从准备到上路

每一款操作系统,都有自己的启动流程,Linux 内核的启动流程并不复杂,但也分为几个主要步骤。本文将介绍 Linux 内核启动流程,从准备到上路。

首先,当用户按下启动键时,BIOS 会检测硬件,并读取 MBR(主引导记录),它找到该系统最初级的加载器(一般是安装 Linux 时所安装的引导程序),并读取其内容进 RAM 中,从而在计算机内存中获取到并且加载引导程序。

紧接着,引导程序会读取镜像文件,镜像文件包括一个 Linux 内核及其他启动所需的文件,一般都在某种类型的文件系统中,引导程序将内核从可启动介质读取到内存中,其实就是将其加载到 RAM 中,该过程被称为“预加载”,预加载完成后,引导程序会执行一段代码,即内核入口:

    // 内核入口
L0:
mov eax, 0 // 打开串口
xor eax, ax
mov ebx, 0 // 分配内存
call kmain

此处,汇编指令将把控制权转向内核,并调用 kmain() 函数。

接下来,内核进行硬件初始化,主要包括内存管理和 IRQ 处理,以及多进程和多任务,还会创建进程 0 和它的初始任务,初始任务就是系统任务调度程序。

最后,内核会调用 init 进程,该进程会启动其他必须程序,而这些必须程序则需要等待系统任务调度程序完成之后才能启动,同时 init 进程完成的任务还包括读取 /etc/inittab 文件中的内容,从而为系统添加启动程序和守护进程等。一切准备就绪,Linux 系统运行起来了。

总之,本文介绍的 Linux 内核启动流程从准备到上路,从 BIOS 开始检测硬件,读取 MBR,加载引导程序,读取镜像文件,执行内核入口,内核初始化,调用 init 进程,添加启动程序和守护进程,完成准备,Linux 系统用一系列体系实现了系统起步。


数据运维技术 » Linux 内核启动流程:从准备到上路(linux 内核启动流程)