国产嵌入式操作系统发展思考

2023-11-02

国产嵌入式操作系统发展思考

偶然翻到了这篇老文章,出自何小庆(《嵌入式操作系统风云录:历史演进与物联网未来》作者),写的很好,汇总了当下国产 OS 的状态,遂分享出来。本文源自微博“麦克泰技术”物联网学前班公众号经授权转载分享。

嵌入式操作系统历史悠久、门类繁多、用途广泛,不仅包括嵌入式实时多任务操作者系统(RTOS)、开源的 Linux、机器人和路由器操作系统,还包括新型的物联网操作系统,以及边缘计算操作系统平台。笔者认为,只要是国人开发的,国人参与维护的开源项目,都是广义上的“国产嵌入式操作系统”,随着中国物联网产业迅猛发展,国产装备自主可控需求旺盛,国产嵌入式操作系统发展步入快车道。

国产物联网操作系统颇具影响力

睿赛德电子科技公司这个名字大家不是很熟悉,但是他们的产品 RT-Thread 在物联网和嵌入式开发者心目中是非常棒的开源软件,RT-Thread 是国内目前合作和支持芯片和厂商众多、社区开发者踊跃、组件丰富、应用领域广泛的国产物联网操作系统。2017 年以前,RT-Thread 还是一个传统的嵌入式操作系统,经过过去两年的发展,RT-Thread 在缩短产品开发周期、加快端云互联对接和提升设备端软件质量等方面做了大量工作,取得显著的成效。

华为 LiteOS 是另外一个在物联网领域颇具影响力的嵌入式操作系统。今天名气已经很大的华为可穿戴产品,比如 Huawei WatchGT,2015 年开始使用 LiteOS。超低功耗和超小的尺寸要求,给了 LiteOS 一个发展成熟的机会,到了 2017 年正式推出开源的物联网操作系统,LiteOS 已经初具规模很快在 NB-IoT 领域站稳了市场,特别是 OPEN CPU 的 NB-IOT 芯片和模组方案里面,都有 LiteOS 身影。在 HDC 2019 大会上,鸿蒙 OS 的当前的架构里面,LiteOS 也是其内核之一(Linux、鸿蒙和 LiteOS)。随着鸿蒙出现,未来 LiteOS 还是一个谜,但其针对 IoT 设备特有的素质,必将会融合进华为操作系统的布局里面。

开源嵌入式操作系统助力创新发展

Zephyr 是 2016 年由 Intel、Synopsys、NXP 等公司发起的开源实时操作系统平台项目,现在由 Linux 基金会管理。项目旨在联合整个行业的领导者,构建针对资源小型受限设备,开发一个可扩展的嵌入式实时操作系统。Zephyr 虽然历史比较短,但起点很高,是发起公司和组织多年的经验教训的总结,最初的代码来自风河,风河的 vxwork RTOS 在工业和航空航天极有影响力。Zephyr 虽然只有 3 年的历史,相对 FreeRTOS 和 Contiki 等开源 RTOS,Zephyr 比较完备,中间件丰富。在安全设计方面 Zephyr 有缜密的考量,在代码规范中,Zephyr 用 MISRA C;在功能安全认证上,Zephyr 选择 IEC61508,这些功能开源嵌入式操作系统里面还没有其他项目能做到。Zephyr 有一个充满活力的国际开发社区,它和物联网操作系统中的 ARM Mbed OS、nuttX 和 RIOT 比较,活跃度很高。虽然 Zephyr 目前在中国关注度目前比较低,但技术上产品发展思路很值得国内同行的借鉴。

自主可控、安全先行

国产嵌入式操作系统发展一个重要方向就是打造航空航天、工业装备和轨道交通、通信设备和汽车电子的自主可控的操作系统。面向装备与国防系统的嵌入式操作系统在可靠性、环境适应性、电磁兼容性、实时控制性方面都有自己的一套要求。华为在嵌入式操作系统方面的起步比较早,目前已经有基于开源的 Linux 自研的高可靠、高安全与高实时性的操作系统,覆盖了公司通信产品中的各个业务。华为的 RTOS 面向 5G 万物互联的物联网时代,对于操作系统安全方面的考虑尤其重视,可满足安全、可靠、自主的嵌入式实时操作系统要求。

上海华元创信研发的锐华高安全嵌入式操作系统(ReWorks Cert),符合功能安全标准 IEC 61508 SIL/SC3(通用)和EN 50128 SW SIL4(轨道交通),是国内目前少数通过国际第三方认证公司认证的嵌入式实时操作系统。目前ReWorks Cert 已率先成功应用于轨道交通信号领域龙头公司卡斯柯信号有限公司的安全计算机平台中,该计算机平台已成功通过 EN 50126 SIL4 等级认证。ReWorks Cert 有望在城市轨道交通领域获得规模化应用。

技术发展、标准领航

嵌入式操作系统的发展离不开相关国家标准的制定,中国电子技术标准化研究院物联网中心正在着手物联网操作系统国家标准体系制订的前期研究工作。物联网操作系统的应用领域比较广泛,包括智慧城市、智能家居、交通运输、智能电网等场景,物联网操作系统标准的制定,工作需要产业和学术届的支持和帮助,为物联网的标准化建设贡献力量。物联网操作系统标准制定,对于物联网产业生态建设将更为重要,期待政府出台一些政策来促进物联网操作系统的健康良性发展等。

嵌入式操作系统发展新趋势

物联网安全需要嵌入式操作系统通过安全认证,比如医疗电子 IEC 60601/62304、汽车电子 ISO 26262、航空电子 DO-178B/C 和核电 IEC 61513。老牌的嵌入式操作系统 QNX、Vxwork、Integrity 和 SafeRTOS 在安全认证起步比较早,Thread-X、uC/OS 和 embOS 这两年也迎头赶上,开源的 Zephery 正在做认证的工作,将要成为首家通过安全认证的开源嵌入式操作系统。上面讲到上海锐华的 RTOS 成功应用于轨道交通信号领域龙头公司卡斯柯信号有限公司的安全认证计算机平台中, 这说明国产嵌入式操作系统已经具备安全的能力并具备相应的技术能力。

嵌入式操作系统的虚拟化已经由来已久,几乎所有大的 RTOS 公司都有自己 Hypervisor 比如 ENEA 和风河,但是 Hypervisor 存在性能不高和缺少统一设备驱动的问题。随着容器技术在服务器和云计算成功采用,容器技术被证明具备应用级安全,这样轻量型容器技术受到物联网和嵌入式系统的关注。目前基于 Linux 轻量级容器技术研究进展比较大,比如 Canonical 推出的针对物联网以及边缘计算平台 Ubuntu Core 和它类似 Docker 的 Snap package 包管理软件,以及针对 IoT 的支持容器技术 ResinOS(现更名为 BalenaOS)。IoT 设备大量使用 MCU,无法运行 Linux,包括翼辉信息和华为等企业推出轻量级安全容器技术,即在它们 RTOS 基础上实现容器技术,已满足物联网时代安全、实时和快速布置和管理的新的需求。

嵌入式操作系统的内核继续呈现百花齐放局面,基于宏内核的 RTOS 仍占多数。微内核技术应用在商业 RTOS 的历史可以追溯到 90 年初,比如 VRTXsa,目前依然活跃在市场上代表性产品是 QNX,因为实时性等因素,微内核技术在代码受限的 MCU 上应用很少,比如 uc/OS、FreeRTOS 和 RT-Thread 都是宏内核技术。在 MCU 中如何能享受到大型 OS 的一些特性,同时保留 RTOS 在尺寸、实时性等方面的优势呢?AliOS Things 在 ARM 架构Cortex M 和 A 处理器上做了有益尝试,他们实现安全、多应用、内核可靠和动态低流量升级等技术特征。

AIOT 应用的对传统的操作系统提出新的课题,比如可扩展的内核技术、功能安全和信息安全、边缘计算架构的支持和应用 App 的便捷布置和管理。传统的移动操作系统比如 Android 和开源的 Linux 无法满足功能安全认证和强实时性的需要,传统的基于宏内核的 RTOS 无法满足系统扩展、维护和应用便捷的需要,针对 AIOT 场景的广义的嵌入式操作系统和泛 IoT OS 技术正在探索和研究中,比如无人驾驶汽车上的操作系统技术正在吸引产业和学术界关注。

结束语

可以预见,嵌入式操作系统和 IoT OS 将向大型复杂和可配置、更小更安全和硬化两个方向发展,以适应物联网和人工智能时代,计算架构和应用软件平台发展的新需求。嵌入式软件经历了 80 年代微处理器和硬件设计占主导地位,软件在系统中比例很低;90 年代商业 RTOS 出现,解决了一部分软件复杂性问题;2000 年之后开源软件大规模采用,开发方法发生巨大的变革;2010 年之后 IoT 架构和应用驱动分布式实时软件回归;预计到了 2020 年“软件定义硬件”将驱动嵌入式软件开发方法变革,包括嵌入式和 IoT OS 的操作系统技术将迎来新的发展机遇。

作者:何小庆,嵌入式系统知名专家、长期从事嵌入式与物联网技术、产业和教育方面工作,著有《嵌入式操作系统风云录:历史演进与物联网未来》等五本书籍和数十篇论文。

总的来说,各个国产 RTOS 都已经在各自的领域内沉淀了多年,各有各的应用领域和生态,希望在物联网和人工智能时代能够看到他们的进一步的成长,不仅仅是在 MCU 领域,更是在高端 MPU 领域,不仅有国外芯片的支持,也有国内芯片平台的良好支持。


本文首发于微信公众号 “物联网学前班”,欢迎关注。
欢迎关注物联网学前班

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

国产嵌入式操作系统发展思考 的相关文章

  • java多线程-对象及变量的并发访问

    synchronized同步方法 该关键字可用来保障原子性 可见性和有序性 方法内的变量为线程安全 多个线程的情况下 各个线程的变量为其私有 互不影响 实例变量非线程安全问题与解决方案 在被调用方法前加synchronized关键字上锁 同
  • 高质量程序设计指南C++ C 代码规范

    这里只是搬运作者对 匈牙利 命名规则做合理简化之后的命名规则 比较适合于 Windows应用程序的开发 建议1 类型名和函数名均以大写字母开头的单词组合而成 例如 class Node 类名 class LeafNode 类名 void D
  • 修改镜像源和修改PATH

    ls a 显示所有文件夹 这里就有我们需要的bashrc 修改path 和condarc 修改镜像 vim bashrc or condarc 打开文件 直接摁i进入修改模式 进行修改 修改完以后esc wq 确认保存退出就好了
  • qt opengl 2d纹理数组

    2d纹理数组就是用一个纹理数组类型的变量保存数个纹理 这样就避免了使用多个单个的纹理对象 这再批处理一系列相同大小的纹理时 非常有用 我这里用到的场景是在点精灵中使用纹理数组使得每个精灵纹理上不同的图案 我用的图片有16张 当顶点为16个时
  • 单片机c51 单一外中断的应用

    1 在51单片机的P1接口上有8只LED 在外部中断0输入引脚P3 2 INT0 引脚接有一只按钮开关K1 程序要求将外部中断0设置成负跳沿触发 程序启动时 P1口上的8只LED亮 按一次开关按钮K1 使引脚接地 产生一个负跳沿触发的外部中
  • python os.walk读取路径下文件名

    import os dir path C for root dirs files in os walk dir path for file in files print os path join root file if file len

随机推荐

  • android自定义view之地图(一)

    最近参加了一个比赛 要用到自己做一个自定义的小地图 所以在网上查找了一些关于自定义view的有关资料 也了解了自定义控件的初步知识 效果图 第一阶段我画了一个自制的网格图 点哪个网格就会哪个网格就会显示 工作环境图 代码介绍 1 我们都知道
  • Qt之QProcess(一)运行cmd命令

    Qt提供了QProcess类 QProcess可用于完毕启动外部程序 并与之交互通信 一 启动外部程序的两种方式 1 一体式 void QProcess start const QString program const QStringLi
  • python3 题解(47 定义有理数类)

    有理数类 问题 浮点数的运算很多时候都是近似的 因为计算机无法表示一个无限的小数 有理数总可以表示为整数的比值 并且有理数的四则运算结果还是一个有理数 除0除外 如果是有四则运算 则可以考虑用有理数表示 这样可以没有舍入误差 分析 记录一个
  • Markdown基础

    Markdown学习 标题 N个 空格 二级标题 三级标题 字体 Hello World 两边都加2个 就变成粗体 Hello World 两边都加1个 就变成斜体 Hello World 两边都加3个 就变粗斜体 Hello World
  • css世界读书笔记->line-height(1)

    如果 line height 的值是1 5 font size大小是14px 那么半行距的大小是 14px 4 5 14px 2 3 5px border及line height等传统css属性没有小数的概念 因此3 5px需要取整处理 1
  • 基于卷积神经网络-门控循环单元结合注意力机制(CNN-GRU-Attention)时间序列预测,单列数据输入模型。matlab代码,2020版本及以上。评价指标包括:R2、MAE、MSE、RMSE

    清空环境变量 warning off 关闭报警信息 close all 关闭开启的图窗 clear 清空变量 clc 清空命令行 tic restoredefaultpath 导入数据 f xlsread windspeed xls She
  • sql server学习笔记——批处理语句、存储过程

    目录 批处理语句 1 批处理语句简介 示例一 示例二 存储过程 一 什么是存储过程 1 存储过程的简介 2 存储过程包含的内容 3 存储过程的优点 4 存储过程的分类 系统存储过程 用户定义存储过程 5 常用的系统储存过程 1 一般常用的存
  • 专访帝国软件的创造者:仍然在路上的80后

    全球的网站数量已经超过了一亿 并且还在以惊人的速度继续增长 CMS作为一种位于Web前端 Web 服务器 和后端办公系统或流程 内容创作 编辑 之间的软件系统为互联网应用的丰富和发展起到了至关重要的作用 最近我们注意到有一款口碑很好的CMS
  • Yii2 选择布局的方式

    方案1 控制器内成员变量 public layout false 不使用布局 public layout main 设置使用的布局文件 方案2 控制器成员方法内 this gt layout false 不使用布局 this gt layo
  • EMC 电磁兼容知识简易解析

    EMC基础知识 电磁兼容性 EMC Electromagnetic Compatibility 设备在共同的电磁环境中能一起执行各自功能的共存状态 即该设备不会由于受到处于同一电磁环境中其他设备的电磁发射导致不允许的降级 也不会使同一电磁环
  • iphone或安卓配置Charles抓包

    4个步骤完成iPhone配置Charles抓包步骤 Charles官网下载地址 Download a Free Trial of Charles Charles Web Debugging Proxy 1 连接到wifi 并设置代理地址 可
  • React传递参数的多种方式

    最常见的就是父子组件之间传递参数 父组件往子组件传值 直接用this props就可以实现 在父组件中 给需要传递数据的子组件添加一个自定义属性 在子组件中通过this props就可以获取到父组件传递过去的数据 父组件 render re
  • K-means算法的参数详解

    参数名称 默认值及输入类型 参数解释 algorithm 默认 Auto 有auto full和elkan三种选择 algorithm 优化算法的选择 有auto full和elkan三种选择 full就是一般意义上的K Means算法 e
  • java.security.InvalidKeyException: Illegal key size错误

    新使用了AES的256位密钥加解密 项目上线后发现生产在加密的时候报java security InvalidKeyException Illegal key size错误 而本地和测试环境都是没问题的 产生错误原因 为了数据代码在传输过程
  • 求生之路显示服务器指令大全手机,求生之路2指令大全 求生之路2指令怎么用? (7) _地图指令_游侠网...

    地图指令 c1m1 hotel 1 死亡中心1旅馆 c1m2 streets 1 死亡中心2街道 c1m3 mall 1 死亡中心3购物中心 c1m4 atrium 1 死亡中心4中厅 c2m1 highway 1 黑色狂欢节1高速公路 c
  • 正则校验-我需要的正则表达式知识

    正则校验 我需要的正则表达式知识 正则表达式由正则表达式引擎提供支持 不同编程环境有不同的正则表达式引擎 在实际使用正则表达式的过程中会有一些差别 什么是正则表达式 正则表达式是用于描述匹配复杂字符串规则的工具 一个正则表达式对应着一个文本
  • python glob通配符方式单/多层搜索文件/文件夹

    import os import glob 可以利用通配符进行文件的搜索获取 goal dir r D demo 遍历指定文件夹下所有文件或文件夹 for file in glob glob goal dir print file 遍历指定
  • 两种方式判断移动运营商(移动,联通,电信)[原创]

    author Stay 判断移动运营商 public class NetworkOperater extends Activity private static final String TAG MainActivity Called wh
  • 1.安全传输加密算法

    一 何为安全传输 安全传输就是 即使人家从网络监听到我们发送的数据包 也无法破译我们的信息 或者破译的机会十分渺茫 那么这是如何实现的呢 毕竟 我们想要传输加密信息 接收者解密的话则需要密钥 而密钥也是需要通过网络传输的啊 1 非对称加密
  • 国产嵌入式操作系统发展思考

    国产嵌入式操作系统发展思考 偶然翻到了这篇老文章 出自何小庆 嵌入式操作系统风云录 历史演进与物联网未来 作者 写的很好 汇总了当下国产 OS 的状态 遂分享出来 本文源自微博 麦克泰技术 物联网学前班公众号经授权转载分享 嵌入式操作系统历