嵌入式开发:为什么物联网正在吞噬嵌入式操作系统?

news/2025/1/12 9:55:17/

  在过去几年的嵌入式开发中,独立嵌入式软件市场的两大基石已被物联网公司完全吞噬。第一个FreeRTOS被亚马逊吞并,以支持其亚马逊Web服务(AWS)云平台的物联网开发,Express Logic被微软吞并,用于其竞争对手Azure云服务。

  许多分析师对这些收购的目的发表了评论。简短的总结是,这些庞然大物正在将其范围从云扩展到通过云收集和分发数据的边缘设备。这似乎是一个简单的想法,但真的那么简单吗?

  什么时候RTOS不仅仅是一个操作系统,为什么这很重要?

  首先,让我们看看我们所了解的交易的基本情况。亚马逊购买了一个没有中间件的RTOS(FreeRTOS)。文件系统、网络、USB等的软件支持通常由第三方提供。另一方面,微软收购了一家RTOS公司(Express Logic),该公司还拥有大量的中间件。因此,一旦我们超越了对边缘设备的控制,这两项投资可能会有截然不同的策略。

  RTOS很重要,但不再特别——对于95%的嵌入式应用程序来说,在嵌入式开发中,RTOS的选择并不重要。随着微控制器性能的提高以及编译器技术的进步,上下文切换时间的微小改进会对应用程序产生重大影响的日子早已消失,而且有许多RTOS“做得足够好”。

  然而,在构建物联网设备时,中间件可以在两个方面提供帮助。首先,它可以提供到云的通信接口,这显然是亚马逊和微软战略的关键要素。第二,它可以提供控制软件的核心模块,以实现你的物联网设备的构建目的,例如将传感器数据记录到存储设备。

  控制器标准化是关键吗?

  因此,对于物联网设备,关键是微控制器上的外围设备。MCU逃脱标准化并非偶然——每年都有数千种新的变体发布。也许核心架构的变化较小,但功能的变化越来越大(考虑到技术不断进步的速度,正如你所预期的那样)。由于不断努力以更少的成本获得更多,这些设备的复杂性不断增加:更多的CPU周期、更多的带宽、更多的功能、更多的安全性、更少的功率、更少的成本、更少的空间等等。

  

  在嵌入式开发中,由于嵌入式设备对成本极为敏感,一旦数量增加,标准解决方案往往会被更便宜的解决方案所取代,这可能是物联网巨头想要涉足的市场。

  已经有人尝试将MCU外围软件接口标准化,但结果并不明确。例如,ARM开发了CMSIS作为标准软件接口,但这仅限于某些ARM架构。其他架构(如RISC-V)会发生什么?

  AWS或Azure能否通过利用其新资产实现标准化?当然,他们有足够的银行存款来做任何他们想做的事情,但如果你不知道未来的嵌入式设备会是什么样子,或者下一个需要云连接的杀手级应用程序会是什么样,那么开发一个能够控制所有边缘设备的解决方案并不是一件容易的事情。

  如果亚马逊和微软确实创建了完整的嵌入式平台,这是否意味着设备开发人员在开始设计设备时就必须选择云服务提供商?或者会有两个开放的规范允许他们在部署时进行选择?前者是限制性的;后者让你想知道他们为什么这么做。在嵌入式开发中,也许只是为了更容易地创造出能为他们带来收入的设备。这似乎是一场巨大的赌博,但如果考虑到这些商业机会的规模,可能不会。

  安全性,这是一个值得一读的话题,它与任何联网设备的开发紧密相连。减轻物联网设备开发者的安全负担将是一个巨大的帮助——设备开发者可以重新专注于他们所知道和喜爱的东西。但安全方面的银弹尚未找到。

  下一步是什么?

  如果亚马逊(Amazon)和微软(Microsoft)这样的巨头正在追求标准化,那么你必须问:还有什么在发挥作用?控制编译器是下一层,其次是硅本身。这可能只是一个更大趋势的开始。

  与此同时,处于新产品规划阶段的开发人员,以及那些必须继续支持和发展现有产品的嵌入式开发人员现在有新的不确定性需要解决。


http://www.ppmy.cn/news/21563.html

相关文章

Spring Boot 无侵入式 实现API接口统一JSON格式返回

无侵入式 统一返回JSON格式 其实本没有没打算写这篇博客的,但还是要写一下写这篇博客的起因是因为,现在呆着的这家公司居然没有统一的API返回格式?,询问主管他居然告诉我用HTTP状态码就够用了(fxxk),天哪…

C++ 浅谈之智能指针 shared_ptr 循环引用

C 浅谈之智能指针 shared_ptr 循环引用 HELLO,各位博友好,我是阿呆 🙈🙈🙈 这里是 C 浅谈系列,收录在专栏 C 语言中 😜😜😜 本系列阿呆将记录一些 C 语言重要的语法特…

优化算法:曲径步长通优处,优化半天白优化

本文来自公众号“AI大道理” 训练一个神经网络,我们想要得到误差最小,就是要我们的损失函数最小。 如何得到最小值呢? 这就是优化算法。 梯度下降法是众多优化中的一种。 1、损失函数 2、GD(梯度下降法) 3、BGD&a…

python输出不重复的字符

项目场景: 输入一个字符串,把最左边的10个不重复的字符(大小写算不同字符)挑选出来。 如不重复的字符不到10个,则按实际数目输出。问题描述 输出一个字符串,包含字符串s最左边10个不重复的字符。不到10个…

iptables端口复用后门、sslh

iptables端口复用 创建端口复用链 创建端口复用规则将流量转到22端口 开启开关,接收到一个长为1139的icmp包,则将来源ip添加到LETMEIN表中 如果syn包来源ip处于letmein列表中,则跳转到LETMEIN链处理,有效时间为3600秒 开启复…

python之selenium入门教程

selenium,一个第三方库,可以通过给driver发送命令来操作浏览器,以达到模拟人操作浏览器,实现网页自动化、测试等,减少了重复性工作。 selenium的工作的基本架构如下: 安装 本文是在python环境下使用sele…

【小练】day2

day2 一、选择题 1. 使用printf函数打印一个double类型的数据,要求:输出为10进制,输出左对齐30个字符,4位精度。以下哪个选项是正确的? A %-30.4e B %4.30e C %-30.4f D %-4.30f #printf的格式控制 正确答案:C 2. 请找出下…

MySQL表中的聚合查询

聚合查询在MySQL初阶中进行的查询都是对于同一条记录的列与列之间进行的运算,那如何对多条记录的不同行进行运算呢(比如计算所有同学某一单科的总分,某一单科的平均分)?此时就需要聚合查询来操作了!1.聚合函数函数 说明COUNT([DISTINCT] expr)返回查询到的数据的数量SUM([DIST…