openharmony5.0版本源码一二级目录概览
梳理了下开源鸿蒙系统(5.0版本)中大概都包含哪些东西,通过对一二级目录做简要注释的方式大概了解下都包含哪些东西。备注方式是优先参考的源码中的说明文档,有一些不太了解,也只是按自己的理解写的,仅供参考吧。如有错误,欢迎指正。
zcc@ubuntu22:~/oh$ tree -L 2
.
├── applications # 示例应用程序
│ ├── sample # 包含摄像头、Launcher等
│ └── standard # 标准系统中预制的系统应用包括系统主题、
├── arkcompiler #方舟子系统
│ ├── ets_frontend # 方舟运行时的前端工具
│ ├── ets_runtime # 方舟eTS运行时部件
│ ├── runtime_core #方舟eTS运行时公共组件
│ └── toolchain # 方舟工具链组件
├── base
│ ├── accesscontrol #沙箱管理服务,负责应用沙箱间文件共享规则的管理和持久化等事务
│ ├── account # 帐号子系统主要提供系统帐号生命周期管理,分布式帐号登录状态管理和应用帐号添加删除等基础管理能力
│ ├── customization # 配置策略组件为各业务模块提供获取各配置层级的配置目录或配置文件路径的接口
│ ├── global # 包含国际化接口(日期格式、系统区域等)、多语言资源管理(不同语言下提供不同的应用名称或图标)、字体。
│ ├── hiviewdfx #包含日志、看门狗、系统信息、维护测试服务
│ ├── inputmethod #输入法框架
│ ├── iothardware #硬件操作的接口,包括FLASH、GPIO、I2C、PWM、UART等
│ ├── location #位置服务组件
│ ├── msdp # MSDP设备状态感知框架
│ ├── notification # 事件通知类,包括公共事件子系统、通知子系统、线程间通信
│ ├── powermgr #电源类,包括电池管理、耗电统计、显示能效、热管理
│ ├── print # 打印框架
│ ├── request # request服务,提供文件上传下载能力
│ ├── security # 安全相关组件,包含访问控制、完整性验证、安全存储、证书管理、代码签名、加解密算法、设备互信认证、设备安全等级管理、数据防泄漏、通用密钥库、应用权限管理、安全控件管理、设备风险管理、访问控制保护
│ ├── sensors # 传感器包括健康类传感器、环境传感器等
│ ├── startup #启动相关,包含系统引导(轻量级)、启动子系统(init)、安全启动、应用孵化器部件
│ ├── tee # 向客户端应用提供访问TEE的API接口
│ ├── telephony # 通话管理模块、蜂窝通话、拨号管理、短彩信模块、状态变化通知、为上层提供统一接口
│ ├── theme # 锁屏管理服务、壁纸管理服务
│ ├── time # 管理系统时间
│ ├── update # 升级相关,包括升级包制作工具、系统安装组件、升级包安装组件
│ ├── usb # USB服务框架
│ ├── useriam #人脸认证组件、指纹认证、口令认证、统一用户认证
│ └── web # 浏览器
├── build # 构建编译相关
│ ├── build_scripts # 主编译脚本包含shell和Python版
│ ├── bundle.json # 定义了子系统包含的部件
│ ├── common # 一些常用的构建默认提供了内存检测、行为检测等工具的构建脚本
│ ├── compile_env_allowlist.json # 指定允许的编译环境设置。用于控制编译过程中允许的环境变量和配置项,以确保编译过程的安全性和一致性
│ ├── compile_standard_whitelist.json #定义编译时允许包含或排除的模块、库或文件列表,从而优化编译过程,确保只编译必要的部分,提高构建效率和减小最终产物的大小
│ ├── component_compilation_whitelist.json # 指定哪些组件(如库、模块、接口等)在编译过程中应该被包含
│ ├── component_feature_whitelist.json #一些特性的配置
│ ├── config # 编译的一些配置(gn文件)
│ ├── core # 编译的入口
│ ├── docs # 说明文档
│ ├── gn_helpers.py # gn的一些转换的函数例如gn变量和python变量之间的转换
│ ├── hb #hb构建工具,Python写的
│ ├── indep_configs # 编译配置相关的参数
│ ├── lite #hb和preloader入口
│ ├── misc #杂项
│ ├── OAT.xml #自动化开源审视工具,开发人员可以利用 OAT 工具和 OAT.xml 配置文件对项目的开源仓代码进行自动化扫描和审计,以确保代码符合预定规则和要求。
│ ├── ohos # OpenHarmony编译打包流程配置
│ ├── ohos.gni #汇总了常用的gni文件,方便各个模块一次性import
│ ├── ohos_system.prop #存储系统属性配置的文件,通常用于配置系统行为、硬件参数、软件版本信息等
│ ├── ohos_var.gni #定义构建过程中所需的全局变量
│ ├── prebuilts_config.json # 用于配置预构建(prebuilts)组件的配置
│ ├── prebuilts_config.py # 用于配置预构建(prebuilts)组件的设置
│ ├── prebuilts_config.sh #用于配置预构建(prebuilts)组件的脚本 sh调用py解析json文件
│ ├── prebuilts_download_config.json #用于下载和安装预编译工具、库和二进制文件的配置文件
│ ├── prebuilts_download.py #用于下载和安装预编译工具、库和二进制文件的执行
│ ├── prebuilts_download.sh #用于下载和安装预编译工具、库和二进制文件的脚本 sh调用py解析json文件
│ ├── print_python_deps.py # 列出或打印项目中使用的Python依赖项
│ ├── __pycache__ # python运行自动生成的目录,存储编译后的字节码文件
│ ├── README_zh.md # 中文说明
│ ├── rust # rust构建配置
│ ├── scripts #各种python写的单独的脚本,供编译时调用
│ ├── subsystem_compoents_whitelist.json #子系统组件的选择
│ ├── subsystem_config_example.json # 子系统配置示例
│ ├── subsystem_config.json #子系统的选择
│ ├── templates #c/c++编译模板定义
│ ├── test # 测试框架
│ ├── test.gni
│ ├── toolchain # 编译工具链配置
│ ├── tools # 常用工具包括依赖检测、模块依赖分析
│ ├── version.gni #版本信息包括sdk、平台、api等
│ └── zip.py #zip工具
├── build.py -> build/build_scripts/build.py # 超链接,方便在根目录应用
├── build.sh -> build/build_scripts/build.sh # 超链接,方便在根目录应用
├── commonlibrary # 常用库
│ ├── c_utils # C++公共基础类库为标准系统提供了一些常用的C++开发工具类
│ ├── ets_utils #js的一些公共库包含解析构造规范化编码库、字符编码、文件夹管理、多线程等
│ ├── memory_utils # 内存基础库包含多媒体、内存管理、图形图像的相关服务
│ ├── rust #提供http、json库以及rust异步运行时库
│ └── utils_lite #轻量级公共基础库存放OpenHarmony通用的基础组件。这些基础组件可被OpenHarmony各业务子系统及上层应用所使用。
├── developtools #
│ ├── ace_ets2bundle# 提供声明式范式的语法编译转换,语法验证,丰富友好的语法报错提示能力
│ ├── ace_js2bundle#提供类Web范式的语法编译转换、语法验证,丰富友好的语法报
│ ├── bytrace # 开发人员用于追踪进程轨迹、查看性能的一种工具
│ ├── global_resource_tool #restool(资源编译工具)是一种资源构建工具。通过编译资源文件创建资源索引、解析资源。restool保存在sdk安装目录下的toolchains子目录
│ ├── hapsigner# 提供了签名工具的源码,包含密钥对生成、CSR文件生成、证书生成、Profile文件签名、应用包签名、二进制工具签名等功能
│ ├── hdc #为开发人员提供的用于设备连接调试的命令行工具,pc端开发机使用命令行工具hdc,该工具需支持部署在Windows/Linux/Mac等系统上与OpenHarmony设备(或模拟器)进行连接调试通信。
│ ├── hiperf # 是 OpenHarmony 为开发人员提供的用于调试的命令行工具,用于抓取特定程序或者系统的性能数据,类似内核的 perf 工具
│ ├── integration_verification #集成验证部件包含门禁冒烟和每日构建两个功能
│ ├── packing_tool#用于生成打包工具和拆包工具,其中打包工具用于hap,app,hqf,appqf,hsp包的生成,拆包工具用于对hap,app,hqf,appqf,har,hsp包的拆包及对hap,hsp,app,appqf的解析
│ ├── profiler # 性能调优组件包含系统和应用调优框架,旨在为开发者提供一套性能调优平台,可以用来分析内存、性能等问题
│ ├── smartperf_host #深入挖掘数据、细粒度地展示数据的性能功耗调优工具,旨在为开发者提供一套性能调优平台,支持对CPU调度、频点、进程线程时间片、堆内存、帧率等数据进行采集和展示,展示方式为泳道图,支持GUI(图形用户界面)操作进行详细数据分析。
│ └── syscap_codec #应用开发时,IDE会根据应用配置的SysCap和API版本生成描述rpcid(Required Product Compatibility ID)的json文件,并调用编解码工具syscap_tool将该json文件编码成rpcid。另一方面,IDE拿到开发者导入pcid(Product Compatibility ID),使用该工具解码出设备的SysCap集合。该工具仅供IDE使用,对用户不可见。
├── device #设备适配
│ ├── board #板级支持包
│ ├── qemu # 模拟内核运行在不同的单板,解除对物理开发板的依赖
│ └── soc # SOC适配
├── docs #说明文档
│ ├── docker #docker编译环境使用指导
│ ├── en #英文文档
│ ├── README.md #英文说明
│ ├── README_zh.md #中文说明
│ └── zh-cn #中文文档
├── domains # 领域
│ └── advertising # 包含广告服务框架、开放匿名设备标识符
├── drivers
│ ├── external_device_manager #解决设备厂商开发非标准协议的可插拔设备驱动接入OpenHarmony系统问题,扩展外部设备管理架构提供应用态扩展设备驱动包的开发、部署、安装、运行、能力开放全流程生命周期管理,为设备厂商开发者提供高效、安全、且低成本的扩展外部设备驱动开发解决方案,做到即插即用的用户体验。
│ ├── hdf_core #存放OpenHarmony驱动子系统核心源码信息(包括驱动框架、配置管理、配置解析、驱动通用框架模型、硬件通用平台能力接口等),旨在为开发者提供更精准、更高效的开发环境,力求做到一次开发,多系统部署
│ ├── interface#管理各模块HDI(Hardware Device Interface)接口定义,接口定义使用IDL语言描述并以`·idl`文件形式保存
│ ├── liteos #内核驱动是软件与硬件交互的桥梁,通过文件系统接口访问OpenHarmony内核的硬件资源,是用户与内核之间、进程与进程之间通信的一种方式。内核初始化驱动并注册设备节点,用户通过文件系统接口操作该设备节点
│ └── peripheral #含各外设器件驱动相关的HDI(Hardware Driver Interface)接口、HAL实现、驱动模型及测试用例等
├── foundation #
│ ├── ability #Ability的应用框架,支持多种设备类型、提供丰富的用户体验,并实现设备间的无缝互联。
│ ├── ai #AI业务子系统,包含AI引擎框架、智能语音、MindSpore框架、
│ ├── arkui # UI开发框架
│ ├── barrierfree #无障碍子系统,提供应用程序与辅助
│ ├── bundlemanager #应用之间交换信息的标准机制,支持开发辅助应用增强无障碍功能体验
│ ├── CastEngine #音视频相关组件
│ ├── communication # 通信组件包括蓝牙、wifi、dhcp等
│ ├── deviceprofile # DeviceProfile是设备硬件能力和系统软件特征的管理器,典型的Profile有设备类型、设备名称、设备OS类型、OS版本号等,提供快速访问本地和远端设备Profile的能力,是发起分布式业务的基础。
│ ├── distributeddatamgr#面向对象的内存数据管理框架,向应用开发者提供内存对象的创建、查询、删除、修改、订阅等基本数据对象的管理能力,同时具备分布式能力,满足超级终端场景下,相同应用多设备间的数据对象协同需求。
│ ├── distributedhardware# 分布式设备管理包含音视频屏幕等
│ ├── filemanagement #提供分布式文件管理能力
│ ├── graphic #图形接口
│ ├── multimedia # 音视频、摄像头、图片等
│ ├── multimodalinput # 多模输入标准系统组件提供胆汁触控能力
│ ├── resourceschedule #资源调度子系统中后台任务管理负责管理后台任务,并提供后台任务的申请、取消和查询等接口、设备待机等状态的管理
│ ├── systemabilitymgr # 系统服务管理子系统中safwk组件定义OpenHarmony中SystemAbility的实现方法,并提供启动、注册等接口实现
│ └── window #提供窗口管理和显示的基础能力,系统图形界面显示所需的基础子系统
├── ide # IDE相关
│ └── tools #目前只包含预览器组件,为DevEco Studio预览器提供了启动ArkUI渲染引擎的能力,使预览器能够通过命名管道的通信方式发送命令给预览器组件,操控ArkUI渲染引擎做到实时渲染,并将处理好的图片发送到DevEco Studio预览器中展示。预览器组件支持在Windows、MacOS上运行ArkTS及JS应用。
├── interface
│ ├── sdk_c # 操作系统提供给应用使用C/C++语言生态库的系统C接口, 是系统与应用的C能力契约;这些接口需要保持足够的稳定性
│ └── sdk-js # JS/TS API 公共仓,用来提交 API d.ts 声明文件以及API相关工具
├── kernel #
│ ├── linux #linux 操作系统适用于SOC
│ ├── liteos_a # 轻量级物联网操作系统适用于硬件资源更加丰富的场景,比如 CPU 更强,内存更大
│ ├── liteos_m # 适用于 IoT 设备,相对来说硬件资源比较弱一些
│ └── uniproton #为上层业务软件提供一个统一的操作系统平台,屏蔽底层硬件差异,并提供强大的调试功能。使得业务软件可在不同的硬件平台之间快速移植,方便产品芯片选型,降低硬件采购成本和软件维护成本。目前仅支持M4
├── napi_generator #一些提升开发效率的NAPI框架代码生成工具!
├── out #默认编译输出的目录
├── prebuilts #存放了一些交叉编译工具链包含如下:
│ ├── ark_tools
│ ├── build-tools
│ ├── clang
│ ├── cmake
│ ├── develop_tools # pahole是结构体检查的工具,在本项目中是编译eBPF环境时需要的依赖项,bpftool是用来检查和处理eBPF程序和maps的工具
│ ├── gcc
│ ├── mingw-w64
│ ├── ohos-sdk
│ ├── packing_tool
│ ├── python # python3
│ └── rustc
├── productdefine #定义与芯片无关的通用系统组件形态配置
│ └── common
├── qemu-run -> vendor/ohemu/common/qemu-run # 模拟器
├── test #测试相关的部件
│ ├── ostest #系统测试包含wukong(稳定性自动化工具,模拟用户行为对系统和应用进行稳定性压力测试)
│ ├── testfwk # 自动化测试框架
│ └── xts #XTS子系统是OpenHarmony生态认证测试套件的集合,当前包括acts(application compatibility test suite)应用兼容性测试套件,后续会拓展dcts(device compatibility test suite)设备兼容性测试套件等
├── third_party
│ ├── abseil-cpp #该仓库包含了Abseil C++库代码。Abseil是一个开源的C++代码集合(符合C++11标准),旨在增强C++标准库。
│ ├── alsa-lib #ALSA-lib是和Linux内核虚拟设备ALSA进行接口的库,虽然Linux下ALSA给用户空间提供了系统调用,但alsa-lib对系统调用进行进一步封装,并实现了很多插件,例如多音频源进行混音播放时,调用的就是dmix插件。ALSA-lib是ALSA框架应用库(必需基础库)
│ ├── alsa-utils #alsa-utils作为一种HDI之外的定位工具,便于问题定界、方便对HDI不熟悉的驱动移植生态伙伴使用,包含用于ALSA的命令行实用程序
│ ├── astc-encoder #ARM推出的一款使用ASTC纹理压缩标准对图像进行压缩和解压的参考代码
│ ├── benchmark #一个强大且易于使用的性能测试工具,它能够帮助开发者深入理解代码的性能表现并进行有针对性的优化
│ ├── bounds_checking_function#遵循C11 Annex K (Bounds-checking interfaces)的标准,选取并实现了常见的内存/字符串操作类的函数,如memcpy_s、strcpy_s等函数
│ ├── brotli #Brotli是基于LZ77算法,霍夫曼编码以及二阶上下文建模的开源数据压缩算法.OpenHarmony引入该算法用于增强http的基础能力,使之可以处理使用brotli压缩算法的http请求
│ ├── bzip2 #压缩库,比LZ77的压缩率还要高
│ ├── cares #用C语言实现的DNS非阻塞异步解析库
│ ├── cJSON #json库(C语言)
│ ├── cmsis #CMSIS库提供与芯片生产商无关的硬件抽象层,统一了各芯片厂商固件库内函数的名称,极大地促进了基于Cortex微控制器的软件开发效率和可移植性
│ ├── css-what#专门用于解析CSS选择器的JavaScript库
│ ├── cups #一种开源打印系统,主要功能包括打印队列管理、打印驱动程序管理、网络打印支持等。CUPS支持多种打印协议,包括IPP(Internet Printing Protocol)、LPD(Line Printer Daemon Protocol)、AppSocket等
│ ├── cups-filters #CUPS-Filters是CUPS(Common Unix Printing System)的一部分,它包含了丰富的文件转化过滤器,其中最常用的是“imagetoraster”, 该过滤器可以将图片文件转换为raster文件传给打印机执行打印。
│ ├── curl#一个功能强大的客户端URL传输库,支持多种协议的数据传输,包括但不限于HTTP、HTTPS、FTP、FTPS、SCP、SFTP等,使得开发者可以方便地在不同的网络环境中进行数据传输。
│ ├── decimal.js #js的一个高精度数学库
│ ├── e2fsprogs #e2fsprogs是一个功能强大且灵活的Ext2/Ext3/Ext4文件系统工具集,提供了丰富的工具组件和易于使用的API接口,可以方便地管理和维护文件系统
│ ├── EGL #EGL库在图形渲染中发挥着重要的作用,它提供了中间接口层、管理和配置图形资源、图形上下文管理、渲染表面的创建和管理、与底层图形硬件交互以及错误查询机制等功能。
│ ├── elfio #ELFIO是一个只有头文件的C++库,用于读取和生成ELF二进制格式文件。
│ ├── elfutils #用于读取、创建和修改ELF二进制文件,查找和处理GNU/Linux上进程和核心文件的DWARF调试数据、符号、线程状态和堆栈跟踪的工具和库的集合
│ ├── exfatprogs#专注于提供高效、可靠的exFAT文件系统用户空间工具
│ ├── f2fs-tools#用于管理Flash-Friendly File System(F2FS)文件系统的实用工具集。F2FS是Linux内核支持的一种高性能、面向闪存设备的文件系统,设计目标是充分利用闪存设备的特性,如快速的随机读取能力,以提供高效的文件系统操作。它在处理大量小文件和随机I/O时表现出色,因此常用于嵌入式设备和固态硬盘
│ ├── FatFs#为小型嵌入式系统设计的通用FAT文件系统模块
│ ├── ffmpeg#用来记录、转换数字音频、视频,并能将其转化为流
│ ├── flatbuffers#一个高性能的跨平台序列化库,它主要用于游戏开发以及对性能要求较高的系统中
│ ├── FreeBSD # 一种类Unix操作系统,是经由BSD、386BSD和4.4BSD发展而来的Unix的一个重要分支
│ ├── freetype #一个开源、高质量、可扩展、可定制且可移植的字体引擎,c语言编写。
│ ├── fsverity-utils#与内核特性fs-verity配套的一组用户态工具。fs-verity是Linux Kernel提供的保护文件完整性的机制,可以实现以文件为粒度的按需保护可写分区的只读文件。可选地,fs-verity提供对文件签名的验证,以保证文件的真实性。
│ ├── glfw #是一个用于创建窗口以及接收用户输入(如键盘、鼠标等)的开源库,它主要用于OpenGL、OpenGL ES或Vulkan等图形库的上下文中。
│ ├── glib #用C语言编写的跨平台库,它提供了许多高级数据结构和实用程序,支持多种操作系统,如Linux、Unix和Windows
│ ├── glslang #主要为OpenGL和Vulkan图形API提供着色器语言(GLSL和SPIR-V)的前端编译器
│ ├── gn#构建工具,此系统就依赖此构建工具
│ ├── googletest # C++单元测试框架
│ ├── gptfdisk #磁盘分区工具
│ ├── grpc #Google主导开发的、高性能、开源且通用的远程过程调用(RPC)框架。它使得客户端和服务端之间的通信变得更加高效和简单,广泛应用于微服务架构、分布式系统和跨语言通信等场景
│ ├── harfbuzz#一个开源的文本引擎,被广泛应用于各种库和应用程序中,以提供高质量的文本渲染服务
│ ├── icu #一个开源的、广泛应用的Unicode支持库,它为软件国际化(i18n)和本地化(l10n)提供了全面的解决方案
│ ├── iptables #Linux操作系统中用于设置、维护和检查IP数据包过滤规则的工具
│ ├── jerryscript #三星电子开发的快速、轻量级JavaScript引擎,它专为资源受限的IoT(物联网)设备提供高效的JavaScript解释执行
│ ├── jinja2 #一个基于Python的模板引擎,它以其灵活性和性能著称,在Web开发等领域有着广泛的应用
│ ├── jsframework #一个使用 TypeScript 编写的、用于构建移动跨平台用户界面的框架
│ ├── json #c++写的json库
│ ├── jsoncpp#c++写的json库
│ ├── lame #LGPL协议授权的高质量MP3编码器。LAME于1998年发布,此后进行了多次改进,引入了新的心理声学模型,被公认为一款出色的MP3编码器,在业界应用广泛
│ ├── libabigail #一个用于不同版本二进制库的ABI检查工具。开发者使用这个工具可以生成二进制库的ABI特征文件,并且可以比较两个版本之间的特征文件,从而可以看出同一个二进制库在两个版本之间是否发生了ABI变化。
│ ├── libbpf#是eBPF技术的一种实现,eBPF提供给开发者一种内核事件和用户进程事件发生时安全注入代码的机制,避免开发者直接进行内核编程时可能导致的系统锁定、内存损坏、进程崩溃和安全漏洞等问题
│ ├── libcoap# coap协议库
│ ├── libdrm#一个底层库,它提供了包装函数来避免直接暴露内核接口,并为具有DRM内存管理器的芯片组提供了关于追踪重定位和缓冲区的支持。该库通常由图形驱动程序(如Mesa DRI驱动程序、X驱动程序、libva等)和类似的项目使用
│ ├── libevdev#是evdev设备的包装库,它将处理evdev设备时的常见任务移动到库中,并向调用方提供库接口,从而避免错误的ioctl等
│ ├── libexif#一个专门用于解析、编辑和保存EXIF(可交换图像文件格式)数据的C语言库
│ ├── libffi#是一个强大的外部函数接口(允许以一种语言编写的代码调用另一种语言的代码)库,它允许程序员在运行时调用任何具有已知参数和返回类型的函数
│ ├── libfuse#一个强大的开源库,它允许开发者在用户空间实现自定义的文件系统并将其挂载到Linux内核中
│ ├── libinput#一个为Linux系统提供输入设备事件处理的库,它能够处理各种输入设备的事件,如鼠标、键盘、触摸屏等
│ ├── libjpeg-turbo#一个开源的JPEG图像编解码器,它使用SIMD(单指令多数据)指令集来加速x86、x86-64、Arm和PowerPC等系统上的基线JPEG压缩和解压缩效率,并同时改善x86、x86-64和Arm系统的渐进式JPEG压缩能力
│ ├── libnl#一个专门用于与Linux内核通信的库,特别是用于处理网络配置和状态查询等任务
│ ├── libphonenumber#Google维护的一个开源库,主要用于解析、格式化、存储和验证电话号码
│ ├── libpng#一个开源的PNG图像处理库,它提供了丰富的API用于读取、写入和处理PNG(Portable Network Graphics)图像文件
│ ├── libsnd#一个用于音频处理的开源库,它提供了一系列函数和工具,用于读取、写入、处理和播放音频文件
│ ├── libunwind#一个跨平台的开源库,主要用于在多种架构和操作系统上进行堆栈展开操作
│ ├── libusb#一个开源的C库,它提供了对USB设备的用户空间访问功能,使得开发者可以在没有内核模块的情况下,通过用户空间程序与USB设备通信
│ ├── libuv#一个高性能的、事件驱动的I/O库
│ ├── libwebsockets#一个开源的、简单易用的C语言库,专为实现高效、跨平台的WebSocket服务和客户端而设计
│ ├── libxml2#一个开源的、高性能的XML解析库
│ ├── littlefs#一种专为微控制器和闪存设计的嵌入式文件系统,具备多种优势和特点
│ ├── ltp#一个专为中文语言处理而开发的强大工具包,主要用于中文文本的深入分析,包括词法分析、句法分析、命名实体识别等任务
│ ├── lwip#一个小型开源的TCP/IP协议栈,专为嵌入式系统而设计。它旨在减少对RAM和ROM的占用,同时保持TCP/IP协议的核心功能
│ ├── lz4#是LZ4算法的一个框架或封装,用于提供额外的功能和优化,如压缩数据的分块、校验和等。LZ4 本身可能是一个压缩算法,而 LZ4F 则是在其基础上增加了框架支持
│ ├── lzma#指的是一种与 LZ77 或 LZMA(如果这里指的是 LZ77 的一个变种或误解)相似的压缩算法,但实际上,在标准的压缩算法命名中
│ ├── markupsafe#一个Python库,它主要用于安全地处理HTML、XML和其他标记语言中的字符串
│ ├── mbedtls#一个由ARM公司开源和维护的轻量级、高度结构化的SSL/TLS算法库
│ ├── mesa3d#一个在MIT许可证下开放源代码的三维计算机图形库,它实现了OpenGL、OpenGL ES、Vulkan等图形API的开源版本
│ ├── mindspore#华为于2019年8月推出的新一代全场景AI框架
│ ├── mksh#免费且开源的Unix shell,提供高质量、简洁且功能强大的软件。Mksh不仅与POSIX标准兼容,还提供了许多扩展和增强功能,使其成为一个功能丰富的shell环境
│ ├── mtdev#一个独立的库,用于将所有类型的内核多点触控(MT)事件转换为槽位类型B协议
│ ├── musl#一种轻量级、标准兼容的C库,旨在替代GNU C库(glibc)或其他类似的大型C库。它设计得更为简单和模块化,注重安全性和性能,同时保持与POSIX和C标准的高度兼容性
│ ├── nghttp2#一个用C语言实现的HTTP/2协议库,它不仅提供了HTTP/2的底层实现,还包括了HTTP/2客户端、服务器和代理的完整实现
│ ├── ninja#一个小巧而高效的构建系统,专注于速度。与 Make、CMake 等传统构建系统相比,Ninja 的设计更加简洁,不依赖于复杂的配置文件或脚本,而是使用一种易于理解和生成的格式来描述构建过程。Ninja 通常与构建生成器(如 CMake、Meson 或自定义脚本)一起使用,这些生成器会负责解析项目文件并生成 Ninja 能理解的 build.ninja 文件
│ ├── node#一个开源的、跨平台的JavaScript运行时环境
│ ├── noto-cjk#noto-cjk提供了简体中文、繁体中文、日文、韩文的字库合集
│ ├── notofonts#供全球所有语言字库合集(CJK和表情符号除外)
│ ├── ntfs-3g#一个开源的NTFS(New Technology File System)驱动程序,它允许Linux、Mac OSX以及其他类Unix操作系统读写Microsoft NTFS格式的磁盘
│ ├── NuttX#NuttX遵循POSIX标准,并集成了实时操作系统(RTOS)的特性。它设计得小巧且完全可扩展,适用于从小型(8位)到中型嵌入式(32位)系统。NuttX在Linux中广泛应用的API接口上运行,并提供了丰富的驱动程序和服务程序,包括文件系统、网络协议栈、USB主机/设备支持等
│ ├── opencl-headers#扩展了GPU用于图形渲染之外的能力,将通用计算并行化,可用于图像处理、AI、高性能计算等场景的加速。推荐在计算密集型的任务以及可以并行计算的场景使用
│ ├── openmax#一个不需要授权、跨平台的软件抽象层,以C语言实现的软件接口,主要用于处理多媒体
│ ├── openssl #一个开源的、强大的安全套接字层密码库,它实现了SSL和TLS协议,为网络通信提供安全保护
│ ├── optimized-routines#由Arm提供的库函数的实现
│ ├── parse5#一个专为Node.js设计的HTML解析和序列化工具集
│ ├── pcre2#是一个用于实现正则表达式功能的库。
│ ├── popt#popt 是一个用于解析命令行参数的库,它通常用于C和C++程序中。popt 提供了一种方便的方法来定义、解析和处理命令行选项和参数,从而简化了命令行接口(CLI)程序的编写
│ ├── protobuf #Google开发的一种高效、灵活、自动化机制的结构化数据序列化协议
│ ├── pulseaudio #一个跨平台的音频服务器系统,它充当了应用程序和硬件设备之间的中间件,允许音频数据在它们之间高效、灵活地传输和处理。
│ ├── python #python3库
│ ├── PyYAML #一个用于解析和生成YAML格式数据的Python库
│ ├── qrcodegen#一个高质量的QR码生成库,支持多种编程语言,包括C/C++、Java、Python、JavaScript、Rust等
│ ├── re2 #一个高性能、安全的正则表达式库,由 Google 开发并广泛使用。与许多其他正则表达式库相比,Re2 强调性能、安全性和简洁性
│ ├── rust #rust相关的一些库
│ ├── selinux#一个安全模块,它提供了对Linux系统的访问控制安全策略。主要目标是提供一个灵活的强制访问控制(MAC)安全策略框架,以增强Linux系统的安全性
│ ├── skia #一个开源的二维图形库,最初由 Google 开发,用于为 Chrome 浏览器和 Android 操作系统提供高性能的 2D 图形渲染能力。Skia 支持多种平台,包括 Windows、macOS、Linux、iOS 和 Android,并且它提供了丰富的 API,允许开发者创建、变换和渲染各种 2D 图形元素,如位图、文本、形状和图像
│ ├── spirv-headers#一个与 SPIR-V(一种中间语言,广泛用于图形和计算着色器)相关的开源项目,它提供了 SPIR-V 注册表的机器可读文件。这些文件包括各种语言的头文件、描述 SPIR-V 核心指令集和扩展指令集语法的 JSON 文件、XML 注册表文件,以及一个从 JSON 语法构建头文件的工具
│ ├── spirv-tools#提供处理 SPIR-V(一种中间语言,广泛用于图形和计算着色器)模块的 API 和命令行工具
│ ├── sqlite#轻量级数据库
│ ├── toybox#一个集成了许多Linux命令和Android自带命令的二进制文件。它类似于Busybox,但提供了不同的命令集和实现方式。
│ ├── typescript#一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成
│ ├── tzdata#一个专门用于提供时区数据支持的项目。它可以从不同的源中提取时区数据,并为开发者提供一个高效、可靠的时区数据处理方案
│ ├── unity#跨平台游戏引擎
│ ├── vixl#一个用于生成和解码ARM、AArch64平台指令的开源库
│ ├── vk-gl-cts#一个开源项目,旨在提供一套全面的测试工具,用于验证图形和计算API在不同硬件和驱动程序上的兼容性和性能。它包含了大量的测试用例,涵盖了从基本的图形渲染到高级的计算任务的各种场景
│ ├── vulkan-headers#包含了所有官方Vulkan API的头文件,使得开发者可以轻松地在自己的项目中集成Vulkan(一种底层、高性能的图形和计算API,旨在为现代硬件提供直接控制权,从而最大化效率和性能)功能
│ ├── vulkan-loader#为更好的给应用开发者使用vulkan开发,主要实现加载GPU驱动、加载Vulkan Layer、提供Vulkan NDK接口。
│ ├── weex-loader#一个专门为Weex框架(阿里巴巴开发的开源框架,基于Vue.js语法,提供组件化和虚拟DOM技术,实现一次编写多端运行)设计的webpack加载器,它能够将*.vue文件或其他指定的文件类型转化为可在安卓和iOS平台上运行的简单JavaScript模块。
│ ├── wpa_supplicant#一个开源项目,用于配置无线网络
│ └── zlib#一个广泛使用的数据压缩库,提供了数据压缩和解压缩的功能
└── vendor #存放与厂商相关的配置和组件。这些配置和组件可能包括但不限于硬件抽象层(HAL)的实现、设备驱动、厂商特定的应用程序或库等。通过将这些内容放置在vendor目录中,OpenHarmony系统能够实现对不同厂商硬件和软件的灵活支持。├── hihope#hihope团队├── hisilicon#海思└── ohemu#多种架构和平台的样例代码