代码拉取完成,页面将自动刷新
同步操作将从 OpenHarmony/docs 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
根进程是系统第一个用户态进程,进程ID为1,它是所有用户态进程的祖先。
图1 进程树示意图
使用链接脚本将如下init启动代码放置到系统镜像指定位置。
#define LITE_USER_SEC_ENTRY __attribute__((section(".user.entry")))
LITE_USER_SEC_ENTRY VOID OsUserInit(VOID *args)
{
#ifdef LOSCFG_KERNEL_DYNLOAD
sys_call3(__NR_execve, (UINTPTR)g_initPath, 0, 0);
#endif
while (true) {
}
}
系统启动阶段,OsUserInitProcess启动init进程。具体过程如下:
由内核OsLoadUserInit加载上述代码。
创建新的进程空间,启动/bin/init进程。
启动关键系统程序或服务,如交互进程shell。
说明: 在OpenHarmony 中init进程通过读取/etc/init.cfg,根据配置执行指定命令,或启动指定进程(详见:init启动引导)。
监控回收孤儿进程,清理子进程中的僵尸进程。
用户态程序启动有如下常见方式:
shell命令启动进程。
OHOS $ exec helloworld
OHOS $ ./helloworld
OHOS $ /bin/helloworld
通过POSIX接口启动新进程。 Fork方法创建一个新的进程,exec类接口执行一个全新的进程。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。