
系统上电加载内核后,按照以下流程完成系统各个服务和应用的启动:
- 内核加载init进程,一般在bootloader启动内核时通过设置内核的cmdline来指定init的位置。
- init进程启动后,会挂载tmpfs,procfs,创建基本的dev设备节点,提供最基本的根文件系统。
- init也会启动ueventd监听内核热插拔设备事件,为这些设备创建dev设备节点;包括block设备各个分区设备都是通过此事件创建。
- init进程挂载block设备各个分区(system,vendor)后,开始扫描各个系统服务的init启动脚本,并拉起各个SA服务。
- samgr是各个SA的服务注册中心,每个SA启动时,都需要向samgr注册,每个SA会分配一个ID,应用可以通过该ID访问SA。
- foundation是用户程序管理框架及基础服务;由该进程负责应用的生命周期管理。
- 由于应用都需要加载JS的运行环境,涉及大量准备工作,因此appspawn作为应用的孵化器,在接收到foundation里的应用启动请求时,可以直接孵化出应用进程。

本文详细阐述了嵌入式系统上电后的启动流程,包括内核加载init进程,挂载各种文件系统,创建设备节点,启动服务以及应用程序管理。init进程在启动过程中起到关键作用,如挂载tmpfs和procfs,建立基本的根文件系统,并监听设备事件。此外,还介绍了samgr和foundation在服务注册和应用管理中的角色,以及appspawn如何孵化应用进程。整个启动过程确保了系统服务和应用的正常运行。
最低0.47元/天 解锁文章
1404

被折叠的 条评论
为什么被折叠?



