bootinglinux启动过程中的Booting分支精彩深度剖析(linux的分支)

Booting Linux启动过程中的Booting分支精彩深度剖析

在Linux启动过程中,我们经常会提到Bootloader和Bootmain,它们最主要的作用就是启动Linux系统。这两个步骤是硬件引导的第一步,当我们需要从磁盘中加载操作系统或者软件时,它们就起到了很大的作用。但是,它们的具体过程,以及Booting分支的精彩深度,却有待我们了解。

Booting分支是指,从Bootloader或Bootmain开始,一直到根文件系统启动完成,所有操作系统中进行的硬件引导过程构成的树状结构(以Linux 3.2.6为例),称为Booting分支。从“进入”开始,到屏幕上显示出“Welcome”,以及系统引导后的更多操作,都是Booting分支的一部分。

从传统的x86 PC开始,Booting分支的启动过程如下:首先,Bootloader或Bootmain接收一个“Jump”指令,然后,Bootloader开始执行BIOS的硬件初始化功能,即BIOS初始化程序(BIOS IPL)。BIOS IPL初始化会执行一系列硬件设备初始化操作:它会在内存中设置好操作系统所需的基本硬件参数,然后再在适当的硬件装置上加载对应的内核映像文件(文件系统中的vmlinuz),最终Bootloader会将控制权交到内核,然后系统开始初始化加载各种驱动,最后进入到类UNIX环境中,完成最后的系统引导过程。

在Linux 3.2.6的步骤中,经过Bootloader完成硬件的初始化动作后,内核会调用startup_32()函数,来处理特定平台上的初始化操作,然后进入x86 汇编(Asm)模式。在Asm模式中,内核会调用setup_arch( )函数,完成更多硬件初始化工作,比如设置内存管理单元(MMU),初始化核心硬件,如I/O设备和内存、中断控制器等。同时,它还会调用核心的初始化函数start_kernel( ),来进入部署硬件组成框架。

最后,kernel_init()函数将系统从实模式切换到保护模式,并设置好页表,负责根文件系统的挂载,最终启动完成。

总之,从Bootloader或者Bootmain开始,到根文件系统启动完成,Booting分支都是Linux启动过程中必不可少的一部分。在每一步,都会执行着诸多精彩的环节,确保我们能够在最快的速度之下,启动完成操作系统。


数据运维技术 » bootinglinux启动过程中的Booting分支精彩深度剖析(linux的分支)