鸿蒙源码目录整理

代码库地址

gitee

代码目录

下载下来的源代码有下面的目录:
在这里插入图片描述

base

startup

启动恢复负责在内核启动之后到应用启动之前的系统关键进程和服务的启动过程。涉及以下模块:

  • init启动引导

    支持使用LiteOS-A内核的平台,当前包括:Hi3516DV300平台和Hi3518EV300平台。

    负责处理从内核加载第一个用户态进程开始,到第一个应用程序启动之间的系统服务进程启动过程。启动恢复子系统除负责加载各系统关键进程之外,还需在启动的同时设置其对应权限,并在子进程启动后对指定进程实行保活(若进程意外退出要重新启动),对于特殊进程意外退出时,启动恢复子系统还要执行系统复位操作。

  • appspawn应用孵化

    支持使用LiteOS-A内核的平台,当前包括:Hi3516DV300平台和Hi3518EV300平台。

    负责接受应用程序框架的命令孵化应用进程,设置其对应权限,并调用应用程序框架的入口。

  • bootstrap启动服务模块

    支持使用LiteOS-M内核的平台,当前包括:Hi3861平台。

    提供了各服务和功能的启动入口标识。在SAMGR启动时,会调用boostrap标识的入口函数,并启动系统服务。

  • 系统属性

    支持使用LiteOS-M内核和LiteOS-A内核的平台,包括:Hi3861平台,Hi3516DV300平台,Hi3518EV300平台。

    负责提供获取与设置操作系统相关的系统属性。

    系统属性包括:默认系统属性、OEM厂商系统属性和自定义系统属性。OEM厂商部分仅提供默认值,具体值需OEM产品方按需进行调整,详见“使用”部分。

security

包括安全启动、应用权限管理、IPC通信鉴权、HUKS、HiChain、应用签名验签。

security
├── framework
│     ├── appverify    应用签名验签
│     ├── crypto_lite    加解密
│     ├── hichainsdk_lite    设备认证能力
│     ├── huks_lite    秘钥管理和证书管理
│     ├── secure_os    安全OS
├── interface    接口目录
│     ├── innerkits    内部kit目录
│     │     ├── appverify    应用签名验签
│     │     ├── crypto_lite    加解密
│     │     ├── hichainsdk_lite    设备认证
│     │     ├── huks_lite    秘钥管理和证书管理
│     │     ├── iam_lite    应用权限管理
│     │     ├── secure_os    安全OS
│     ├── kits    外部kit目录
│     │     ├── iam_lite    应用权限管理
├── services    具体实现
│     ├── iam_lite    应用权限管理
│     ├── secure_os    安全OS

hiviewdfx

用于存放DFX框架的代码。主要包含DFR(Design for Reliability,可靠性)和DFT(Design for Testability,可测试性)特性。主要是日志。

iot_hardware

IoT外设控制

global

全球化资源管理模块主要提供语言资源回溯和多偏好语言支持的能力。

docs

此工程存放OpenHarmony提供的快速入门、开发指南、API参考等开发者文档

kernel

OpenHarmony内核是华为推出面向IoT领域的实时操作系统内核,它同时具备RTOS轻快和Linux易用的特点。

OpenHarmony内核主要包括进程和线程调度、内存管理、IPC机制、timer管理等内核基本功能。

OpenHarmony内核的源代码分为 kernel_liteos_a 和 kernel_liteos_m 这2个代码仓库,其中kernel_liteos_a主要针对Cortex-A系列处理器,而kernel_liteos_m则主要针对Cortex-M系列处理器,两者目录结构非常相似。

third_party

cJSON

用c实现的超轻量级JSON库。

lwip

TCP/IP协议实现库

musl

Musl是一个轻量级的C标准库。设计作为GNU C library (glibc)、 uClibc或Android Bionic的替代用于嵌入式操作系统和移动设备。

NuttX

Nuttx 是一个实时嵌入式操作系统(RTOS)

Mbed TLS

SSL/TLS功能库

foundation

ace

JS应用开发框架,提供了一套跨平台的类web应用开发框架,通过Toolkit将开发者编写的HML、CSS和JS 文件编译打包成JS Bundle,解析运行JS Bundle,生成native UI View组件树并进行渲染显示。通过支持三方开发者使用声明式的API进行应用开发,以数据驱动视图变化,避免大量的视图操作,大大降低应用开发难度,提升开发者开发体验。

communication

分布式通信子系统。

distributedschedule

分布式任务调度模块负责跨设备组件管理,提供访问和控制远程组件的能力,支持分布式场景下的应用协同。

graphic

图形子系统。
图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS的应用框架,满足硬件资源较小的物联网设备的OpenHarmony系统应用开发。

appexecfwk

包信息查询、安装、卸载等功能

aafwk

Ability开发框架接口、Ability管理服务

multimedia

媒体子系统。

多媒体包括camera,recorder和player,camera提供YUV、RGB、JPEG以及H264,H265数据到共享内存surface中,recorder模块将surface中h264/h265数据和音频aac数据打包成mp4文件,player模块把mp4文件解复用成音频和视频数据,分别送入对应编码器解码,然后进行播放。

drivers

驱动

vendor

厂商芯片驱动软件,包含LICENSE、编译脚本、配置文件、驱动实现、工具等

utils

公共基础库存放OpenHarmony通用的基础组件。这些基础组件可被OpenHarmony各业务子系统及上层应用所使用。

公共基础库在不同平台上提供的能力:

LiteOS-M内核(Hi3861平台):KV存储、文件操作、定时器、IoT外设控制
LiteOS-A内核(Hi3516、Hi3518平台):KV存储、定时器、ACE JS API

build

编译构建子系统。
编译构建提供了一个在GN和ninja基础上的编译构建框架。支持以下功能:

  • 构建不同芯片平台的产品。如:Hi3518EV300平台的ipcamera产品,Hi3516DV300平台的ipcamera产品,Hi3861平台的WLAN模组产品。
  • 构建HPM包管理配置生成的自定义产品。
build/lite                      # 编译构建主目录
├── config                      # 编译相关的配置项
│   ├── boards                  # 开发板相关的变量定义。包括:开发板名、目标架构、目标CPU等
│   ├── component               # OpenHarmony组件相关的模板定义。包括:静态库、动态库、扩展组件、模拟器库等
│   ├── kernel                  # OpenHarmony内核的编译变量定义与配置参数
│   └── subsystem               # OpenHarmony子系统列表
├── ndk                         # NDK相关编译脚本与配置参数
├── platform                    # 平台相关的配置文件
│   ├── hi3516dv300_liteos_a    # hi3516dv300, liteos_a平台。包括:平台全量配置表,启动文件。
│   ├── hi3518ev300_liteos_a    # hi3518ev300, liteos_a平台。包括:平台全量配置表,启动文件。
│   └── hi3861v100_liteos_riscv # hi3861v100, liteos_riscv平台。包括:平台全量配置表,启动文件。
├── product                     # 产品全量配置表。包括:配置单元、子系统列表、编译器等。
├── toolchain                   # 编译工具链相关。包括:编译器路径、编译选项、链接选项等。
└── tools                       # 编译构建依赖的工具。包括:mkfs等。

applications

内置应用

test

xts

XTS是OpenHarmony生态认证测试套件的集合,当前包括acts(application compatibility test suite)应用兼容性测试套,后续会拓展dcts(device compatibility test suite)设备兼容性测试套等。

developertest

开发过程采用测试驱动开发模式,开发者基于系统新增特性可以通过开发者自己开发用例保证,对于系统已有特性的修改,也可通过修改项目中原有的测试用例保证,开发者测试旨在帮助开发者在开发阶段就能开发出高质量代码

prebuilts

系统头文件和标准库

©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页