内核启动过程

                 以x86体系结构的计算机为例

          内核启动过程

第一步是BIOS从启动设备中导入主引导记录(MBR),接下来MBR中的代码查看分区表并从活动分区读取GRUB,LILO或SYSLINUX等引导装入程序(Bootloader),之后引导装入程序会加载压缩后的内核映像并将控制权传递给内核。内核获得控制权后,会将自身解压并投入运行。

x86的cpu有两种操作模式:实模式和保护模式。在实模式下,用户仅可以使用1MB内存,并且没有任何的保护。保护模式复杂很多,使用可以使用更多的高级功能。cpu必须在中途将实模式切换到保护模式。切换是单向的,不可逆的。

内核初始化的第一步是执行实模式下的汇编代码,之后切换到保护模式,执行init/main.c文件中的start_kernel()函数。start_kernel()首先会初始化cpu子系统,之后让内存和进程管理系统就位,接下来启动外部总线和I/O设备,最后一步是激活init进程,它是所有Linux进程的父进程。init进程执行启动必要的内核服务的用户空间脚本,并且最终派生出控制台终端程序和显示登录提示。

你可能感兴趣的:(内核启动过程)