当前位置: 首页 > news >正文

鸿蒙OpenHarmony【小型系统内核(用户态启动)】子系统开发

用户态启动

用户态根进程启动

根进程是系统第一个用户态进程,进程ID为1,它是所有用户态进程的祖先。

图1 进程树示意图

1

根进程的启动过程

使用链接脚本将如下init启动代码放置到系统镜像指定位置。

#define LITE_USER_SEC_ENTRY   __attribute__((section(".user.entry")))
LITE_USER_SEC_ENTRY VOID OsUserInit(VOID *args)
{
#ifdef LOSCFG_KERNEL_DYNLOADsys_call3(__NR_execve, (UINTPTR)g_initPath, 0, 0);
#endifwhile (true) {}
}
c

上述启动代码已在 kernel/liteos_a/kernel/user/src/los_user_init.c 中,g_initPath 根据启动设置的不同,其值为 /dev/shm/init 或 /bin/init。

系统启动阶段,OsUserInitProcess启动init进程。具体过程如下:

  1. 由内核OsLoadUserInit加载上述代码。
  2. 创建新的进程空间,启动/bin/init进程。

根进程的职责

  • 启动关键系统程序或服务,如交互进程shell。

说明: 在OpenHarmony 中init进程通过读取/etc/init.cfg,根据配置执行指定命令,或启动指定进程。

  • 监控回收孤儿进程,清理子进程中的僵尸进程。

用户态程序运行

用户态程序启动有如下常见方式:

  • shell命令启动进程。

    OHOS $ exec helloworld
    OHOS $ ./helloworld
    OHOS $ /bin/helloworld
    

以上就是本篇文章所带来的鸿蒙开发中一小部分技术讲解;想要学习完整的鸿蒙全栈技术。可以在结尾找我可全部拿到!
下面是鸿蒙的完整学习路线,展示如下:
1

除此之外,根据这个学习鸿蒙全栈学习路线,也附带一整套完整的学习【文档+视频】,内容包含如下

内容包含了:(ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上快速成长!

鸿蒙【北向应用开发+南向系统层开发】文档

鸿蒙【基础+实战项目】视频

鸿蒙面经

2

为了避免大家在学习过程中产生更多的时间成本,对比我把以上内容全部放在了↓↓↓想要的可以自拿喔!谢谢大家观看!
3


http://www.mrgr.cn/news/35281.html

相关文章:

  • 面试官:vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?
  • 德蒂企鹅PAEDIPROTECT:德国医研力作,专为敏感肌婴幼儿量身打造
  • 面试面经|大模型算法岗常见面试题100道
  • P7557 [USACO21OPEN] Acowdemia S题解
  • 【软考】多核CPU
  • 2024年9月23日---关于MyBatis框架(2)
  • 最新版C/C++通过CLion2024进行Linux远程开发保姆级教学
  • 毛竹泛基因组-文献精读52
  • 【代码随想录Day27】贪心算法Part01
  • 电商效果图渲染神器:轻松高效出图
  • gorm.io/sharding:改造,当查询条件中不包含分表键时,从自定义方法中获取对应的表进行查询
  • 【JVM】JVM执行流程和内存区域划分
  • 浅析Android中的View事件分发机制
  • 2024 年最新 Protobuf 结构化数据序列化和反序列化详细教程
  • 【alist】宝塔面板docker里的alist默认admin无法登录
  • 分享6个icon在线生成网站,支持AI生成
  • “被卷”还是“破卷”,咱有得选
  • 虚幻引擎的射线检测/射线追踪
  • 水墨风度——书圣故里书画名家晋京展亮相荣宝斋大厦
  • 【machine learning-17-分类(逻辑回归sigmod)】