Linux内核的启动过程大体上可以分为3个阶段:
1、内核解压(汇编+C) 主要由arch/arm/boot/compressed/对zImage完成解压(C语言),并跳转到下阶段代码
2、板级引导阶段(汇编) 主要进行对cpu和体系结构的检查、cpu本身的初始化以及页表的建立,使能MMU、复制数据段、清BSS段、调用start_kernel函数
3、通用内核启动阶段(C语言) 进入init/main.c文件,从start_kernel开始进行内核初始化工作,最后调用rest_init。
具体内容如下:
设置与体系架构相关的环境 初始化控制台 在rest_init中创建init进程,如果命令参数设置了init=/linuxrc,则执行linuxrc进程作为1号进程
设置初始化控制台
解析inittab