嵌入式SoC从上电到运行Linux系统,主要步骤就4个:1、执行SoC内置ROM中的启动程序;2、启动程序执行Uboot;3、Uboot加载内核程序;4、内核初始化完就创建init进程(第一个用户进程)。如下图,下面对这四个过程进行简要介绍
这个SoC内置ROM中的启动程序在PC/服务器中就对应着BIOS,启动程序主要做下面3个事情
1、电源自检
SoC通电后,启动程序会先进行电源自检(POST),检查各硬件是否正常并进行初始化。例如初始化CPU等。
2、找到启动设备
启动设备就是存放Uboot和Linux内核映像的设备,例如SD卡、EMMC、NAND等,要是购买了Linux开发板就可以看到有专门的拨片开关用来选择启动设备。
3、执行Uboot
找到启动设备后,会跳转并执行Uboot。(对于PC/服务器,会用到MBR和PBR。而SoC就要看具体的硬件设计)
Uboot是最常见的一种Bootloader(引导加载程序,也叫自举程序),用来初始化硬件和加载内核程序。uboot的执行过程分为两个阶段。这一部分的详细过程可以看文章最后的参考文章
第一阶段(汇编)
第二阶段(C语言)
uboot启动内核后,由内核程序完成各种初始化任务,如内存管理、设备驱动程序等。初始化完成后会创建一个用户空间进程,然后该进程会创建init进程。
init是第一个用户空间进程,它的工作主要有:1、运行系统初始化脚本来启动各种系统服务,如网络服务、挂载文件系统等;2、管理系统的运行级别,例如单/多用户模式、图形界面模式等;3、运行守护进程(在后台运行的进程),例如下面的登录管理器。
登陆管理器进程:该进程处理用户的登录和注销,它会提供用户登录界面,用户登录后就启动Shell进程(命令行)或图形用户界面,进而创建用户会话。然后用户就可以使用操作系统了,这就是Linux系统开机的整个流程。
1、根文件系统:根文件系统会根据类型在Uboot的第二阶段或内核程序阶段挂载。
2、中断向量:在Uboot阶段设置的
1、
2、GPT以及网上的一些文章
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo8.com 版权所有 湘ICP备2023022238号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务