对于PC机来说,在系统BIOS自检完成之后,BIOS从启动设备中导入主引导记录(MBR),接下来的从MBR中查找分区表,找到活动分区后,进入活动分区中读取GRUB、LILO或SYSLINUX等Bootloader,之后引导程序会加载压缩后的内核映像文件并将控制权传递给kernel, 内核取得控制权后,首先将自身解压缩,然后投入运转。
内核初始化的第一步是执行实模式下的汇编文件,之后执行保护模式下的init/main.c 文件中的start_kernel()函数,start_kernel()首先会初始化CPU子系统,之后会让内存和进程管理系统就位,接下来启动外部总线和I/O设备,最后激活init进程,它是所有linux进程的父进程, init进程执行启动时必要的内核服务的用户空间脚本,最终派生出控制终端程序和显示登陆(logo)界面!