openvela 开源项目

参考

openvela 开源项目

openvela 简介

在这里插入图片描述

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

Vela 的命名源自拉丁语中船帆的含义,也是南方星空中船帆星座的名字。我们选择这个名字的意义是希望与开发者一道携手,共同踏上星辰大海的征途。

技术架构

在这里插入图片描述

  • 内核层

提供基础的操作系统(OS)功能,包括任务调度、跨进程间通信(IPC)、文件系统管理。此外,还提供设备驱动、轻量级 TCP/IP 协议栈和电源管理等精简高效的组件。同时,内核层支持同构多核和异构多核架构,以提升系统在不同架构下的性能支持能力。

  • 服务框架层

通用的服务框架,专为扩展系统服务设计,包含连接子系统、图形子系统、多媒体子系统、安全子系统和 XPC 跨核通信能力等。该层提供灵活的服务扩展支持,是系统功能扩展的重要基础。

  • 维测工具

常用工具和维测框架,除了常见的 Logger 和 Debugger 工具外,还包含 Emulator 这一强大的高仿真设备模拟器工具。Emulator 支持全面功能仿真,同时支持 CPU 指令集仿真。
目前模拟器已支持多种产品形态,包括智慧面板、手表、手环和智能有屏音箱等。通过 Emulator 开发者可以使用 PC 端丰富的调试工具和信息,无需真实设备即可进行应用开发调试,降低开发和调试难度。

技术优势

  • 高度可扩展

openvela 的设计注重模块化与可扩展性,使其能够灵活适应多样的物联网应用场景。小到仅配备 32KB RAM 的微型 BLE 模组,大到拥有 512MB RAM 的智能有屏音箱,openvela 都能提供高度可扩展的支持。

  • 一站式解决方案

随着时间的推移,openvela 不断沉淀了各类 AIoT 应用的共性需求,成为一个功能完备的软件平台,为各类物联网解决方案提供了全面的支持。厂商采用 openvela,可以显著降低研发成本并加速产品的上市时间。

  • 成熟的异构计算支持

openvela 为异构多核系统提供了强大的支持,实现了 MCU、MPU、DSP、GPU 以及 NPU 等不同处理单元间无缝的 IPC 通信机制。此外,openvela 还提供了一个高级的 RPC 框架,简化了 openvela 与 Android 和 Linux 系统的通信,使快速打造一个异构融合操作系统成为可能。
在这里插入图片描述
在这里插入图片描述
进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。
在这里插入图片描述

  • 标准兼容和高可移植性

openvela 内核基于 Apache NuttX ,这个被称为 “Tiny Linux” 的系统为 openvela 提供了高标准的 POSIX 兼容性。通过持续提升其 POSIX 兼容性,openvela 当前已达到 88% 的兼容水平。这种高标准的兼容性意味着在其他标准操作系统(例如 Linux)上开发的软件可以轻松迁移到 openvela,几乎不需要额外的工作。
POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),发布者为电气与电子工程师协会(Institute of Electrical and Electronics Engineers),简称IEEE。
Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。

  • 全面的连接套件

openvela 提供了广泛的协议支持,包括蓝牙 BR/EDR/LE、LE Mesh、WiFi、Matter、LTE Cat1、以太网、CAN/LIN 等。同时,它还能与小米的 HyperConnect 协议无缝集成,提供了强大的连接能力。
蓝牙 BR/EDR(Basic Rate / Enhanced Data Rate)就是我们常说的经典蓝牙,主要用于耳机、音箱、车载蓝牙等传统蓝牙设备,特点是传输快、距离近、耗电中等。
蓝牙 LE(Low Energy)是目前智能设备最常用的低功耗蓝牙,适用于手环、门锁、温湿度传感器、遥控器等设备,特点是省电、可连接多设备、传输距离较短。
LE Mesh(Low Energy Mesh)是蓝牙低功耗组网协议,可让蓝牙设备互相转发信号形成网络,多用于全屋智能灯光、开关等多设备联动场景,具备信号中继、覆盖范围广的特点。
WiFi(Wireless Fidelity)是家庭常用的无线局域网技术,用于路由器、摄像头、电视等需要高速联网的设备,特点是速度快、耗电较高、传输距离中等。
Matter(原 CHIP,Connected Home over IP)是由苹果、谷歌、亚马逊、三星等企业联合推出的统一智能设备标准,可实现不同品牌智能家居设备互联互通,是未来智能家居的主流标准。
LTE Cat.1(Long-Term Evolution Category 1)是一种低成本、中低速的 4G 物联网通信技术,适用于户外设备、共享设备等无需 WiFi 的远程联网场景,具备广覆盖、成本低的优势。
**以太网(Ethernet)**即插网线使用的有线网络,常用于电脑、电视、工业设备等需要稳定高速连接的场景,特点是连接稳定、不卡顿、不掉线。
CAN(Controller Area Network)与 LIN(Local Interconnect Network)属于车载及工业现场总线协议,主要用于汽车内部、电机、传感器、工业控制等设备间通信,抗干扰能力强、稳定性高。
HyperConnect 是小米自研的智能设备高速互联协议,主要用于小米生态内设备的超低延迟与快速联动,让小米设备之间连接更快、更稳、更省电。

  • 丰富的开发者工具

openvela 提供了一系列完备的开发者工具,包括系统监控、性能分析、调试器、追踪、崩溃分析和日志分析工具,为开发者提供了强大的支持。

硬件支持

  • openvela 支持各种不同的架构(ARM32、ARM64、RISC-V、Xtensa、MIPS、CEVA 等)和硬件平台。请在硬件支持页面上查看完整列表。
  • 关于开发板的适配案例,请参见案例文档
厂商名称 开发板型号 芯片型号 适配案例 典型应用场景 购买渠道 开发板问题咨询
意法半导体 (STMicroelectronics) STM32H750B-DK STM32H750XBH6 在 STM32H750 上部署 openvela 智能家居、工业控制、医疗电子 购买链接 ST MCU 中国支持
意法半导体 (STMicroelectronics) STM32F411CEU6 STM32F411CE 在 STM32F411 上使用 openvela 点亮 LED 物联网、工业自动化 购买链接 ST MCU 中国支持
乐鑫科技 (Espressif) ESP32S3EYE ESP32S3 在 ESP32-S3-EYE 开发板上移植 openvela AIoT、人机交互、智能家居 购买链接 乐鑫开发者社区
乐鑫科技 (Espressif) ESP32S3BOX ESP32S3 请参考:在 ESP32-S3-EYE 开发板上移植 openvela AIoT、人机交互、智能家居 购买链接 乐鑫开发者社区
恒玄科技 (Bestechnic) BES2600WM MAIN BOARD V1.1 BES2600WM-AX4F Readme 智能穿戴、AI 玩具 联系代理商 联系代理商
旗芯微半导体 FC7300F8M-EVB FC7300F8MDT FC7300F8M-EVB 开发板 openvela 运行指南 域/区控制器、驾驶辅助系统、电池管理系统、电机控制等 联系代理商 联系代理商
英飞凌半导体 TC4D9-EVB AURIX ™ TC4x TC4D9-EVB 开发板 openvela 运行指南 车辆运动控制器、区域控制器、车载网关等 联系代理商 联系代理商

最新动态

硬件生态大幅扩展:新增对 英飞凌 AURIX™ TC4、旗芯微 (Flagchip) MCU 以及 QEMU-R52 SIL 平台的适配支持。(查看 TC4 指南 / 旗芯微指南)

Ubuntu 开发体验升级:openvela VS Code 插件现已完美支持 Ubuntu 环境。Linux 开发者现在也可以享受从项目创建、编译构建到系统调试的一站式流畅体验,开发效率显著提升。即刻体验:VS Code 插件使用指南

版本发布管理 (Version Strategy)

我们基于 trunk 分支进行版本发布,通过标签(Tags)管理发布历史,确保生产环境的可追溯性与稳定性。

发布标签 (Release Tags)
发布标签是基于 trunk 分支创建的不可变标记(Immutable Marker)。每个标签代表一个正式发布的 openvela 版本。

生产环境建议:为了确保系统的最高稳定性和安全性,我们强烈建议在生产环境(Production Environment)中使用最新的发布标签,而非直接使用分支代码。
已发布版本列表

本系列博客是基于如下版本:

trunk-5.4:请查阅 v5.4 版本发布说明 了解详细变更。

代码分支管理 (Branch Strategy)

openvela 采用双分支模型来平衡系统的创新性与稳定性。请根据您的开发需求选择合适的分支。

dev (开发分支)

定义:这是 openvela 的前沿开发分支,汇集了最新的功能特性与缺陷修复。
状态:代码更新频率高,处于持续集成与快速迭代状态,可能包含尚未完全验证的特性,因此可能存在不稳定性。
适用人群:
希望抢先体验新功能的开发者。
计划向社区提交代码、参与核心功能建设的贡献者。

trunk (主干稳定分支)

定义:这是经过全面测试的主干分支,代表了当前系统的稳定状态。
状态:dev 分支中的功能在经过严格测试验证稳定后,会被合并至此分支。
适用人群:大多数对系统稳定性有较高要求的用户,以及进行标准应用开发的工程师。

快速入门

设备开发
如果想要体验 openvela,小米提供一个功能完备的模拟器,无需硬件平台即可使用。有关详细信息,请参阅如下指南。

快速入门(Ubuntu)

快应用开发
快应用快速入门

子仓库列表

frameworks :openvela 服务框架:主要包含蓝牙、电话、图形、多媒体、应用框架、安全、系统服务框架(KVDB、OTA、healthd、binder、charger 等)。
vendor : 芯片原厂的驱动和框架。
nuttx : 基于开源实时操作系统 NuttX 打造的内核,提供基础的内核功能,包括任务调度、跨进程通信、文件系统、TCP/IP 协议栈、设备驱动和电源管理等,同时对上提供标准的 POSIX 接口。如果您想要对 NuttX 操作系统有更深入了解,可以在 Apache NuttX 官网查看更多信息。
apps : apps 是开源实时操作系统(NuttX)的应用程序库,包含了一系列为 NuttX RTOS 设计的应用程序和实用工具。这些应用程序和工具包括 shell 命令行工具、文件系统工具、网络工具等,它们可以帮助开发者更方便地开发和调试基于 NuttX RTOS 的嵌入式系统。
external : openvela 引入的三方库。
tests : 该仓库包含接口测试,具体包括多媒体、文件系统、内存管理和 socket 通信等核心 API 的测试。
docs : openvela 对应的开发者文档。

开发者文档

文档中心

应用示例中心

汇总可供开发者参考学习的原生应用与快应用示例。
查看完整的原生应用列表,请访问原生应用示例仓库
在这里插入图片描述

快应用相关示例正在持续丰富中。查看所有示例,请访问快应用示例仓库
在这里插入图片描述

参与贡献

代码贡献指南
文档贡献指南

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐