毕尔巴鄂对阵皇家社会:两支近邻球队将于西甲联赛 “巴斯克德比”中为捍卫荣耀而战贝壳第三季度营收226亿元 经调净利润17.8 亿元 同比下降17.46%AI营销,让科技巨头尝到了大模型商业化的甜头安恒信息范渊在乌镇峰会谈AI:以工具视之、以工具用之、以工具治理之诺基亚与微软再合作,为 Azure 数据中心供货延长五年天岳先进发布业界首款 300mm(12 英寸)N 型碳化硅衬底三星介绍内部安全团队 Project Infinity 攻防演练项目,高效修复 Galaxy 手机平板漏洞上海市将推进低空飞行服务管理能力建设,2027 年底前累计划设相应航线不少于 400 条岁末,海尔给您备好一套“小红花”为什么说Q10K Pro是今年最值得入手的电视?看完这几点就明白了!“小墨方·大不凡”!Brother“小墨方”系列彩喷一体机全新上市黄仁勋:AI智能需求强劲,“物理定律”限制英伟达芯片增长诺基亚与微软再合作,为Azure数据中心供货延长五年国家数据局:到2029年基本建成国家数据基础设施主体结构中国已发展成为全球最大的互联网市场,拥有全球最多的网民和移动互联网用户中国铁塔:计划按照10:1的比例合股美国FCC正式划定5.9GHz频段用于C-V2X技术在AI领域奋起直追!苹果要对Siri大革新 2026年正式发布日本机构公布量子专利榜单:本源量子、国盾量子位居全球第1中国联通:拟向华为、中兴展开5G网络设备竞争性谈判采购
  • 首页 > 网络通信频道 > 物联网

    为什么WebAssembly适合小型物联网?

    2023年06月14日 15:42:44   来源:51CTO

      译者 | 张怡

      WebAssembly(简称Wasm)是一种虚拟指令集体系架构(virtual ISA)。Wasm支持轻量级、高效、安全的运行,非常适合资源有限的物联网(IOT)设备。它还具有灵活性和平台独立性,因此很容易为各种硬件平台开发应用程序。

      随着万物互联程度越来越高,物联网(IoT)设备的数量呈爆炸式增长。这些设备有各种各样的形状和尺寸,从巨大的工业机器到微型传感器。虽然较大的设备可能运行在Linux或其他操作系统上,但较小的或者微型设备需要不同的方法。

      为什么WebAssembly (Wasm)是小型物联网设备的完美选择呢?因为这些设备对于Linux来说太“大材小用”了,它们可能只需要使用电池供电。

      1、挑战

      首先,让我们看看在小型物联网设备上运行传统操作系统所面临的挑战。通常这些设备功耗较低,内存和存储容量有限。如果运行一个大的操作系统(如Linux)会浪费大量的资源,这可能很快就耗尽了设备的电池寿命。

      此外,这些小型设备可能缺少支持完整Linux操作系统所需的硬件,例如硬件虚拟内存所需的内存管理单元(MMU)。小型物联网设备应用各种实时操作系统(RTOS)——例如FreeRTOS、ThreadX和NuttX。因此,我们无法在这些微小的物联网设备上使用Linux容器(又名Docker)。

      其次,物联网设备嵌入式开发周期与云软件有很大不同。尽管对代码进行更改并不复杂,但将其交付给最终客户却要经历一个复杂的过程。通常,每个月都有一次代码冻结,在此期间,所有修改都要经过完整的硬件在环测试,甚至还需要在许多不同类型的设备上进行。

      在成功测试新版本之后,将启动分阶段部署流程,以避免固件更新、客户投诉或服务升级等带来的问题。对于大多数客户来说,即使更改一个微小的代码到交付,可能也需要几周甚至几个月的时间。在敏捷开发和云时代,这个过程不再被接受。

      2、WebAssembly

      Wasm是基于堆栈的虚拟机和字节码格式的。最初是为Web浏览器插件设计的,但并不局限于Web应用程序。它是一个高效的多功能的运行环境,可广泛应用于各种应用程序——包括物联网设备。而且Wasm设计小巧,这使得它非常适合小型物联网设备。

      Wasm模块的大小通常为几千字节,比典型的Linux内核或Linux容器要小得多。这种小尺寸意味着Wasm可以在内存和存储容量有限的设备上运行,并具有良好的性能。

      将Wasm用于IoT设备的另一个优点是,它是一个独立于平台的运行环境。这意味着Wasm模块可以用任何编程语言编写,并在任何支持Wasm的平台上执行。这种灵活性使得物联网设备开发应用程序变得更加容易,无论硬件或软件环境如何都不用发愁。

      开发人员可以选用他们喜欢的、擅长的编程语言编写代码,然后将其编译和在目标设备上执行。像C/C++、Rust、JavaScript都得到了很好的支持。当然也存在一些语言不太友好,但随着Wasm不断的规范化发展而得到完善。

      Wasm组件在沙箱环境中执行,这意味着它们与系统的其余部分是隔离的。这使得攻击者很难利用系统中的漏洞,因为他们无法访问底层操作系统或硬件。这对于没有虚拟内存的小型物联网设备尤其重要。此外,Wasm可以在部署之前进行验证和签名,这为系统额外增加了一层安全保护。

      一些Wasm运行环境支持AoT(Ahead of Time,运行前编译),它接受Wasm字节码并生成目标机代码(CPU/MCU)。这在小型IoT设备的运行中非常有用,甚至是必不可少的,因为这些设备可能没有可用的CPU和内存来执行JIT(即时编译),就像我们通常在云端或电脑桌面上做的那样。

      AoT编译可以成为云服务的一部分,该服务同时管理着部署在物联网设备上软件的运行。AoT编译的代码几乎以本机速度运行,比Micropython等解释性语言(直译语言)快几个数量级。

      3、发展

      虽然Wasm已经出现好几年了,但它仍然是一项相对较新的技术。与传统编程语言和架构相比,Wasm可用的工具和库并不多。Wasm的某些规范仍在发展中,比如对Python等主流语言所需的GC的本地支持。然而,随着越来越多的开发人员在各种应用程序中采用Wasm,这种情况正在迅速改变。

      Wasm在物联网设备上使用的另一个困难,是缺乏对特定于某个硬件的功能的支持。由于Wasm是一个独立于平台的运行环境,所以它不能直接访问设备的硬件或传感器等外围设备。

      开发人员必须使用Wasm和本机代码的组合来访问设备的硬件,并创建一个WASI API来扩展硬件功能。Wasm社区正在努力标准化WASI (WebAssembly System Interface)规范中的各种系统接口。

      4、结论

      总的来说,在物联网设备上使用Wasm的优点远远超过潜在的缺点。Wasm是一个轻量级的、高效的、安全的运行环境,非常适合资源有限的设备。它还具有灵活性和平台独立性,可以轻松地为各种硬件和软件环境开发应用程序,并为小型物联网设备带来敏捷开发。

      随着物联网设备数量的持续增长,对于开发人员来说,希望为这些设备创建高效、安全的应用程序,Wasm将成为越来越重要的工具。随着边缘计算的日益重要和物联网的蓬勃兴起,可以预见WebAssembly将在未来的计算中发挥重要作用。

      文章内容仅供阅读,不构成投资建议,请谨慎对待。投资者据此操作,风险自担。

    即时

    新闻

    明火炊具市场:三季度健康属性贯穿全类目

    奥维云网(AVC)推总数据显示,2024年1-9月明火炊具线上零售额94.2亿元,同比增加3.1%,其中抖音渠道表现优异,同比有14%的涨幅,传统电商略有下滑,同比降低2.3%。

    企业IT

    重庆创新公积金应用,“区块链+政务服务”显成效

    “以前都要去窗口办,一套流程下来都要半个月了,现在方便多了!”打开“重庆公积金”微信小程序,按照提示流程提交相关材料,仅几秒钟,重庆市民曾某的账户就打进了21600元。

    3C消费

    华硕ProArt创艺27 Pro PA279CRV显示器,高能实力,创

    华硕ProArt创艺27 Pro PA279CRV显示器,凭借其优秀的性能配置和精准的色彩呈现能力,为您的创作工作带来实质性的帮助,双十一期间低至2799元,性价比很高,简直是创作者们的首选。

    研究

    中国信通院罗松:深度解读《工业互联网标识解析体系

    9月14日,2024全球工业互联网大会——工业互联网标识解析专题论坛在沈阳成功举办。