一、OneOS简介
1.1 裸机与RTOS
1.1.1 裸机系统简介
裸机系统通常指的是没有安装任何操作系统的计算机硬件。在这种状态下,计算机无法直接运行用户级别的应用程序,因为缺乏操作系统提供的接口和抽象层。裸机系统又称前后台系统,由前台程序(中断处理程序)+后台程序(应用程序)组成。
裸机系统的缺点:
① 结构复杂——实现的功能均被放在无限循环中
② 实时性差——应用程序(任务)轮流执行,没有优先级处理
③ 空等待——在任务等待期间cpu不执行其他代码
1.1.2 RTOS系统简介
RTOS(实时操作系统):相较于裸机系统,其更注重实时性的保证,可确保系统能在严格的时间限制条件下准确及时的响应处理。
RTOS的特点:
① 分而治之——可将功能划分为多个任务
② 无限循环——每个任务都是无限循环
③ 抢占式——任务都有优先级,高优先级任务抢占低优先级任务
④ 延时函数—— 延时函数负责任务调度,在一个任务等待的时间可将cpu资源分配给其他任务
注1:中断程序可以打断任何一个任务,不论其优先级多高
注2:中断之后先向上查询更高优先级的任务,若无更高优先级任务,则再查询同等级任务,最后才查询更低优先级的任务
1.2 OneOS介绍
1.2.1 什么是OneOS?
OneOS 是中国移动针对物联网领域推出的轻量级硬实时操作系统,具有可裁剪、跨平台、低功耗、 高安全等特点,支持 ARM Cortex-A 和 Cortex-M、MIPS、RISC-V 等主流芯片架构,兼容 POSIX、 CMSIS 等标准接口,支持 MicroPython 语言开发,提供图形化开发工具,能够有效提升开发效 率并降低开发成本,帮助用户开发稳定可靠、安全易用的物联网应用。
OneOS的特点:
灵活裁剪: 抢占式的实时多任务 RTOS 内核,支持多任务处理、软件定时器、信号量、互斥锁、消息 队列、邮箱和实时调度等特性,RAM 和 ROM 资源占用极小。可灵活裁剪,搭配丰富组件,适 应不同客户需求。
跨芯片平台: 应用程序可无缝移植,大幅提高软件复用率。支持的主流芯片架构有:ARM Cortex-A 和 Cortex-M、MIPS、RISC-V 等。支持几乎所有的 MCU 和主流的 NB-IOT、4G、WIFI、蓝牙通 信芯片。
丰富组件: 提供丰富的组件功能,如互联互通、端云融合、远程升级、室内外定位、低功耗控制等。 同时提供开放的第三方组件管理工具,支持添加各类第三方组件,以便扩展系统功能。
超低功耗设计: 支持 MCU 和外围设备的功耗管理,用户可以根据业务场景选择相应低功耗方案,系统会 自动采用相应功耗控制策略,进行休眠和调频调压,有效降低设备整体功耗。
FOTA 升级: 提供免费的 FOTA 升级服务。支持加密、防篡改、断点续传等功能,同时支持智能还原和 回溯机制,拥有完善的版本管理和灵活的升级策略配置机制。
全面彻底的安全设计: 针对物联网设备资源受限、海量连接、网络异构等特点,参考等保 2.0 及《GB/T 36951-2018 信息安全技术 物联网感知终端应用安全技术要求》等规范,在系统安全、通信安全、数据安全 等方面提供多维度安全防护能力。
OpenCPU 开发框架: 支持通信 SoC 芯片 OpenCPU 开发模式,为开发者带来屏蔽复杂通信芯片差异的高效开发 方式,提供统一开发体验。同时,在同样的业务功能下,减少了设备额外 MCU 开销和存储器 的使用,大幅降低设备成本。
简易开发: 一站式开发工具 OneOS Studio 可用于对内核和组件的功能进行配置,支持组件自由裁剪, 让系统按需进行积木式构建,同时可帮助用户跟踪调试,快速定位问题
1.2.2 OneOS的组成架构
OneOS的具体架构如下图所示:
1、硬件层
硬件层是操作系统与物理硬件交互的最低层 主要包含了支持的CPU架构:如ARM、RISC-V、MIPS、Xtensa、C-Sky等。
2、内核层
内核层是操作系统的核心,负责管理系统资源和控制任务执行。OneOS的内核层包括:
任务管理:调度、任务创建和删除等。
内存管理:内存分配和回收机制。
同步机制:互斥量、信号量、事件集等,用于任务间同步。
中断管理:中断处理和优先级管理。
时钟管理:系统定时器和时间管理。
3、组件层
组件层提供了操作系统的中间件和高级功能,为应用开发提供支持。OneOS的组件层包括:
消息队列:用于任务间异步通信。
工作队列:用于任务的延迟执行和周期性执行。
远程升级:支持固件的远程更新。
安全机制:提供数据加密和安全通信等。
文件系统:文件存储和管理功能。
4、接口层
接口层为开发者提供统一的编程接口和抽象,简化开发过程。OneOS的接口层包括:
POSIX API:兼容POSIX标准的应用程序接口。
CMSIS API:针对ARM Cortex微控制器的中间件接口。
RT-Thread API:OneOS特定的中间件和功能接口。
标准C库API:提供标准C库函数的实现。
5、应用层
应用层是操作系统的最顶层,直接面向最终用户或应用场景。OneOS的应用层包括:
应用框架:如HTTP服务器、MQTT客户端、LwM2M客户端等。
GUI引擎:图形用户界面支持。
AI支持:集成人工智能算法和模型。
脚本引擎:支持脚本语言的执行。
云服务SDK:提供连接云服务的API和工具。
OneOS的这种分层设计使得操作系统具有良好的模块化和可扩展性,能够适应不同的硬件平台和应用需求,同时为开发者提供了丰富的API和工具,简化了开发过程。
1.2.3 OneOS与其他操作系统的特性对比
OneOS、UCOSIII、FreeRTOS 之间的特性比较如下表所示:
从上表可以看到,OneOS 系统配置,编译以及生成工程都离不开 OneOS-Cube 软件,OneOS 依赖于 OneOS-Cube 软件配置,当然不存在路径依赖,简单来说:OneOS-Cube 软件可 以放到其他路径保存,并不需要放置在 OneOS 工程路径中。
总的来说,OneOS操作系统通过其独特的OneOS-Cube配置工具提供了高效的开发体验,支持自动化的环境和组件搭建,简化了操作系统的定制和配置过程。它支持无限制的任务数目和优先级相同的任务数目,具备灵活的剪裁文件配置能力,以及丰富的同步机制,包括信号量、互斥锁、事件和消息队列,确保了多任务环境下的高效资源管理和任务同步。此外,OneOS还支持可剥夺型任务调度,允许高优先级任务及时抢占CPU资源。尽管OneOS不支持原子操作,但其整体设计针对需要高度灵活性和实时性的复杂嵌入式系统,提供了强大的支持和优势。