扫码打开虎嗅APP
本文来自微信公众号:电子工程世界 (ID:EEworldbbs),作者:冀凯,原文标题:《知名嵌入式操作系统宣布停止更新!》,题图来源:视觉中国
“人生苦短,我选Mbed。”这是嵌入式工程师曾经说的话。而在这两天,Mbed出大新闻了。
近日,Arm官方宣布,Mbed开发平台和操作系统将于2026年7月起终止使用,届时Mbed网站将被存档,将无法再利用在线工具中构建项目。
Mbed表示,Mbed OS软件是开源的,将保持公开可用,但Arm将不再积极维护。
同时,Mbed TLS项目不受此公告的影响,并将继续作为TrustedFirmware社区项目的一部分受到支持。
os.mbed.com中的原文如此表示:
Mbed自2009年以来一直是一个非常受欢迎的项目,它帮助专业开发人员、教育用户和创客社区在由Mbed合作伙伴和贡献者开发的基于Arm的硬件上创建、保护、部署和更新数千个应用程序。自推出以来,嵌入式和物联网开发已经发生了巨大的变化和扩展,在此发展过程中,Arm对CMSIS等行业标准以及一套用于专业和学术用途的嵌入式和物联网开发工具进行了大量投资。
与此同时,Arm支持的项目(如micro:bit、Arduino和Raspberry Pi)在教育环境和创客社区中发展势头强劲,使Mbed提供的许多功能变得更加普及和易于访问,无论是基于浏览器的IDE和硬件抽象到代码托管和远程构建服务。我们相信,这些需求现在可以通过更广泛的生态系统得到最好的满足,而无需Arm的直接支持。
Arm始终致力于投资物联网开发,专注于我们认为将最有效地服务于行业和学术界的标准、工具和教育内容,因为我们将继续支持每个人在Arm上构建计算的未来。
Mbed也对用户提供了如下建议:
我们建议教育机构开始研究不再使用Mbed作为嵌入式开发教学平台。Arm教育团队正在积极致力于为2025年秋季开始的新学期创建替代教学和学习解决方案。我们欢迎学术界对此提出反馈。联系团队:education@arm.com
不应使用Mbed启动任何新的商业项目,任何现有的基于Mbed的商业项目都应开始研究替代框架。
可替代的建议:
对于免费使用的嵌入式开发环境,推荐Arm Keil MDK v6社区版,它可以与CMSIS标准和CMSIS RTX RTOS无缝协作:
为了快速制作原型和教育目的,建议如下开发平台:
Arduino(基于C/C++)
micro:bit(多重编程抽象)
Raspberry Pi Pico(多种编程抽象)
对于替代的RTOS,建议:
CMSIS RTX
FreeRTOS
Zephyr
对于嵌入式Linux项目,建议:
Yocto
Raspberry Pi
所有用户开始将代码和其他数据从Mbed.com迁移到其他平台。Mbed帐户中有一个导出工具。
一些重要的问题
Mbed OS代码库会发生什么?
Arm已停止对Mbed OS代码库的主动维护和CI。您不应期望在2026年7月之前看到任何修复或改进。2026年7月之后,代码库将存档在GitHub中。
Mbed TLS会发生改变吗?
Mbed TLS项目不受此更改的影响。尽管它与Mbed同名,但Mbed TLS现在是TrustedFirmware.org的一部分。Mbed TLS的开发照常进行,并像往常一样提供功能发布(包括LTS版本)和支持的路线图。
我在商业产品中使用了Mbed OS。我该怎么办?
Mbed OS使用条款不会改变,您可以继续在现有的商业或非商业项目中使用Mbed OS。
操作系统弃用后,我还能构建我的Mbed项目吗?
您将无法在Keil Studio Cloud或Mbed Studio中构建Mbed项目,但可以使用Mbed CLI通过GCC构建项目。截至目前,Arm尚未提供对Mbed OS代码库的任何支持。这包括Mbed CLI。
Mbed与RTOS的发展
物联网操作系统的概念,最先来自于无线传感器操作系统,知名的有TinyOS和Contiki,Tiny OS是专为嵌入式无线传感网络设计开发的开放源代码操作系统,目标是低功耗无线设备。Contiki是一个适用于有内存的嵌入式系统的开源的、高可移植的、支持网络的多任务操作系统。
与传统的嵌入式设备相比,物联网感知层的设备更小、功耗更低,而且需要较高的安全性和组网能力,物联网通信层需要支持各种通信协议和协议之间的转换,应用层则需要具备云计算能力。在软件方面,支撑物联网设备的软件比传统的嵌入式设备软件更加复杂。于是就有了物联网操作系统IoT OS。说的简单一些,IoT OS就是具备物联网需求的嵌入式操作系统。从2014年至今,许多IoT领域里的玩家都陆续推出了支持不同厂商的mcu设备的IoT OS,比如ARM mbed OS,Windows 10 IoT Core,Linux-Foundation Zephyr project和Google OS Fuchsia等。
mbed OS,是ARM推出针对给所有Cortex-M设备使用的,一种专为物联网(IoT)中的“物体”设计的开源嵌入式操作系统。mbed OS屏蔽了不同mcu厂商提供了微处理之间的差异(通过CortexM--CMSIS框架),对于用户来说,只需要和API打交道即可,也就是说,用户基于mbed开发的应用可以很方便地更换使用不同厂商的arm微处理器。当然,这里还是仅限于支持mbed的处理器,也就是mbed enabled boards。
Mbed OS 6
mbed提供的在线开发工具online IDE
ARM为mbed OS开发者提供一套基于云计算的在线网页编译工具,可以在Windows、Linux、Mac等各种可以网页浏览的设备上进行编程。所以不需要安装调试工具,只要选好指定的开发板,就立即可以进行编程,编译后直接生成一个bin文件,直接烧写到设备即可运行。
mbed OS分层结构
Mbed的通用架构模型给嵌入式开发人员提供了极大的灵活性和可扩展性。举例来说,该架构模型一般分为三个单独的层:
低级硬件抽象层(HAL)
Mbed OS API,用作中间件,提供存储、RTOS、安全连接、通信堆栈等能力
高级物联网层,包括开发人员的应用程序代码、Mbed OS库和连接客户端。
上图是mbed OS的分层结构,我认为不必要过多的解读它的结构,主要是我们可以看到mbed OS所提供的具有物联网需求的功能和协议,包括6LoWPAN,Web传输受限制的应用协议(CoAP)和超文本传输协议(HTTP),用于机器对机器(M2M)连接的消息队列遥测传输(MQTT),密码协议传输层安全协议(TLS),数据包传输层安全性协议(DTLS),开放移动联盟轻量级M2M(OMALWM2M)标准。开发人员的工作量将会大量减轻,从而可以专注于编写尤其适用于mbed OS内核顶层的安全和通信协议的代码。
Mbed OS的发展历史
2006年:创立
初创阶段:Mbed项目由ARM的两位员工Chris Styles和Simon Ford在ARM公司内部启动,最初是为了简化基于ARM Cortex-M微控制器的嵌入式开发。
2009年:首次发布
Mbed 1.0发布:2009年,Mbed推出了第一个版本,提供一个在线编译器和库,支持ARM Cortex-M微控制器。这个版本简化了嵌入式系统开发,吸引了大量开发者。
2010~2014年:社区和生态系统发展
社区扩展:Mbed平台开始吸引更多的开发者和公司加入,形成了一个活跃的开发者社区。
硬件支持增加:多个微控制器厂商如NXP、STMicroelectronics和Freescale(现为NXP的一部分)开始支持Mbed,提供更多兼容的开发板和模块。
2015年:Mbed OS和Mbed Cloud发布
Mbed OS 3.0发布:ARM发布了Mbed OS 3.0,这是一个更加综合性的嵌入式操作系统,支持实时操作系统(RTOS)特性、安全性和联网功能。
Mbed Cloud推出:ARM推出了Mbed Cloud,一个针对物联网设备管理的云平台。Mbed Cloud提供了设备注册、连接管理、固件更新和安全管理等功能,帮助企业更好地管理大规模物联网设备。
2016~2017年:功能扩展与稳定化
Mbed OS 5.0发布:2016年发布了Mbed OS 5.0,进一步增强了操作系统的功能,包括对物联网协议(如LoRa、Thread、BLE等)的支持,改进的调试和开发工具。
增强安全性:Mbed OS增加了更多的安全特性,如对设备身份验证和固件更新的支持,满足物联网设备的安全需求。
2018~2020年:合作与生态系统深化
合作伙伴关系:ARM与多家芯片制造商和物联网公司建立了合作伙伴关系,进一步扩展了Mbed OS的生态系统。
Mbed Studio:ARM发布了Mbed Studio,这是一个桌面集成开发环境(IDE),为开发者提供更强大的开发和调试工具。
Mbed Cloud重命名为Pelion Device Management:Mbed Cloud重命名为Pelion Device Management,并继续扩展其功能,提供设备生命周期管理、数据管理和连接管理等服务。
2020年:Mbed OS 6发布
Mbed OS 6.0发布:2020年,ARM发布了Mbed OS 6.0,这是一个主要版本更新,进一步提升了安全性、连接性和RTOS功能。Mbed OS 6.0引入了更严格的安全性特性、更好的电源管理、对更多协议的支持以及改进的开发工具。
安全性增强:Mbed OS 6引入了对安全启动、加密和密钥管理的增强支持,满足物联网设备日益增长的安全需求。
2021年至今:持续发展
持续改进:Mbed OS不断进行更新,增加新特性、改进性能和增强安全性。
边缘计算与AI:Mbed OS开始支持更多的边缘计算和人工智能功能,满足日益增长的智能物联网设备需求。
Pelion平台发展:Pelion Device Management继续扩展其服务和功能,帮助企业更好地管理和利用其物联网设备和数据。
嵌入式开发平台竞争激烈,操作系统竞争更激烈
正如前所述,包括Arduino、树莓派以及micro:bit、ESP32在内的各种开源开发平台下,Mbed并不受国内欢迎。
正如吴昊在《深入浅出物联网操作系统Mbed》一文中所述,Mbed在国内应用比较少,其中主要几个原因:其一,Mbed主要推荐在线开发,开发完成后下载编译后固件并运行,这种模式存在几种问题:无法在线调试硬件,国内网络环境无法访问部分国外网站,在线开发不利于知识产权保护,并且Mbed导出本地工程也存在一些问题:其二,国内嵌入式开发以Keil为主,而Keil对C++支持比较弱,gcc主要以命令模式进行开发,使用比较不友好。
而在RTOS方面,目前市场上有十余种RTOS,分别为μClinux、μC/OS-II、eCos、FreeRTOS、mbed OS、RTX、Vxworks、QNX、NuttX,国产的嵌入式操作系统包括都江堰操作系统(djyos)、Alios Things、Huawei LiteOS、RT-Thread、SylixOS等。
对于嵌入式系统而言,这种碎片化的场景也让工程师在学习和开发中带来了不小的阻隔。
归根结底,Arm的主要收入来源是授权和技术许可,而不是硬件或开发工具,这与专注于开发者社区和市场推广的其他平台形成了对比。
实际上,在2020年,Arm就剥离旗下物联网服务业务(IoT Service Group,简称ISG,包括PelionIoT平台和Treasure Data)的计划,其余业务也将转移到由其母公司软银集团成立的新的实体,从而将更加专注于以Cortex为代表的芯片底层架构设计。
如今放弃Mbed,除了市场竞争激烈之外,同样也是Arm为聚焦主业所做的改变。
这次Arm宣布终止Mbed项目,你有受到影响吗?欢迎进入下方链接跟帖讨论:https://www.eeworld.com.cn/a1GS4W5
参考文献
ARM®mbed OS入门开发(一)介绍篇深入浅出物联网操作系统Mbed