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

news/2024/9/25 8:19:36/

用户态启动

用户态根进程启动

根进程是系统第一个用户态进程,进程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.ppmy.cn/news/1530203.html

相关文章

Ansible部署与应用基础

由于互联网的快速发展导致产品更新换代速度逐步增长,运维人员每天都要进行大量的维护操作,按照传统方式进行维护使得工作效率低下。这时部署自动化运维就 可以尽可能安全、高效的完成这些工作。 一、Ansible概述 1.什么是Ansible Ansible 是基于 Pytho…

Windows环境下Node.js多版本切换的实用指南

Web开发和全栈开发中,Node.js已成为不可或缺的工具之一。然而,随着项目的多样化和技术栈的更新迭代,我们可能需要同时管理多个Node.js版本以满足不同项目的需求。在Windows环境下,如何高效地切换这些版本成为了一个关键问题。简单…

React UI组件库推荐

Next UI:Vite | NextUI - Beautiful, fast and modern React UI Library Ant Design:Ant Design - 一套企业级 UI 设计语言和 React 组件库

solidwork装配体的零件常见错误--您在尝试识别的特征具有与其他特征的父/子关系

比如下面这种 如果点击编辑特征出现这个警告。 解决办法如下:

构建预测睡眠质量模型_相关性分析,多变量分析和聚类分析

数据入口:睡眠质量记录数据集 - Heywhale.com 本数据集目的是探究不同因素是如何影响睡眠质量和整体健康的。 数据说明 字段说明Heart Rate Variability心率变异性:心跳时间间隔的模拟变化Body Temperature体温:以摄氏度为单位的人工生成体…

选择租用徐州服务器机柜的作用有哪些?

企业为了线上网络业务,通常都会选择租用服务器来确保网络的稳定性,企业选择服务器租用和托管业务后,同时也需要租用服务器机柜来进行放置所使用的服务器,对于机柜企业可以选择租用徐州机柜,下面就来聊一下选择租用徐州…

linux atomic 原子变量操作

原子操作是指指令以原子的方式操作,执行过程不会被打断。linux内核提供了atomic_t类型的原子变量,它的实现依赖于不同的体系结构。 include/linux/types.h typedef struct { int counter; } atomic_t; #ifdef CONFIG_64BIT typedef struct { long counter; } atomic64_…

fastadmin本地安装插件提示”请从官网渠道下载插件压缩包(code:2)(code:1)“

这个问题主要是在fastadmin中为了保证安全性,不让你进行本地的一个安装(离线安装) 解决办法就是去把相应的代码注释掉,把相应的权限开启。 具体步骤 1.在后台的application\config.php文件下; 将这个unknownsources的…