WebAssembly 入门课
于航
PayPal 高级软件工程师
10751 人已学习
新⼈⾸单¥29
登录后,你可以任选4讲全文学习
课程目录
已完结/共 23 讲
结束语 (1讲)
WebAssembly 入门课
15
15
1.0x
00:00/00:00
登录|注册

11 | WebAssembly 在物联网、多媒体与云技术方面有哪些创新实践?

你好,我是于航。
我们继续接着上节课的内容,来一块看看 Wasm 在应用实践领域有哪些“新鲜事”。今天我们要来聊的是 Wasm 在物联网、多媒体与云技术领域内的一些创新性实践。我们一直说 Wasm 虽然“出身”于 Web,但实际上却也可以 out-of-web。
Wasm 本身作为一种新的虚拟机字节码格式,其使用场景从来都不会被仅仅限制在某个领域。鉴于 Wasm 在这些领域内的相关实践数量众多,因此在本节课里,我们仅挑选一些比较典型且具有一定现实意义的创新性实践来进行介绍。同时也欢迎你在评论区和我进行互动,补充一下你所知道的 Wasm 在这些或者其他领域内的相关实践。

物联网(IoT)

物联网(Internet of Thing),我们一般简称为 IoT。是指相对于传统的手机、笔记本电脑等大型电子设备来说,其可使用资源被有所限制(比如单核的 CPU、仅有几百 KB 的内存和硬盘容量、有限的网络上传速度,或仅需纽扣电池进行供电等)的小型嵌入式设备。
因此,相较于为传统 PC 计算机等大型电子设备开发应用程序而言,为嵌入式设备开发程序则需要特殊的编程实践方法,以用来应对有限的软硬件资源。

统一的编程接口

在 IoT 刚刚走入人们视野的最初几年,人们通常只能够使用 C/C++ 甚至是汇编语言,来为这些物联网嵌入式设备编写应用程序。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

WebAssembly(Wasm)在物联网、多媒体和云技术领域展现出了许多创新实践。在物联网领域,Wasm提供了统一的编程接口,使嵌入式设备可以使用高级编程语言进行开发,并构建基于Wasm运行时的微内核,提高了程序执行效率和资源利用率。在多媒体领域,Wasm在音视频处理方面表现出色,例如ogv.js能够利用Wasm进行音视频解码,同时利用多核处理器和最新的SIMD标准来提高性能。此外,Wasm还能够复用第三方编解码库,通过Emscripten将C/C++代码转译为ASM.js/Wasm代码,加速开发过程。在云技术领域,Wasm的应用也日益丰富,如Krustlet和Embly等项目,使得Wasm应用能够方便地在云原生环境中部署和运行。这些创新实践展示了Wasm在各个领域的广泛应用前景,为读者提供了深入了解Wasm技术特点的重要参考。随着Wasm应用实践的不断发展,它已经开始向各种其他领域进军,虽然大部分实践项目还处于实验阶段,但距离它们真正投入生产环境使用的日子并不遥远。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《WebAssembly 入门课》
新⼈⾸单¥29
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • 慌慌张张
    您好老师,看完这节课,我想问一下是否有树莓派+wasm构建的demo,我想自己尝试一下。但是没有什么思路

    作者回复: 具体的项目代码我不太清楚,你可以搜搜看 WebAssembly Summit 的视频,其中有一场就是介绍 Wasm 与树莓派,也许可以找到代码相关的资源。

    2020-10-29
    2
    3
  • Triton
    请问老师编译第三方包使用的wasm程序都需要使用到Emscripten,ogv.js也是生成一个ogv.wasm的文件么?对于Webpack的项目 如何优雅的引入这类型的文件?

    作者回复: 目前来看,大部分的 Wasm 第三方库都是以 JavaScript 作为入口文件的,意味着你可以直接通过 “import” 的方式来加载和使用这些库提供的方法。而 Wasm 相关的逻辑则由这些库自行负责封装和处理。目前 Webpack 应该有对 Wasm 的试验性支持,详情可以看这里:https://webpack.js.org/configuration/experiments/#experiments。 以及,Parcel 对 Wasm 的支持:https://parceljs.org/webAssembly.html。

    2020-09-30
    1
  • Yarco
    "通过使用 Unikraft,我们可以构建一个基于 Wasm 运行时的操作系统微内核" 所以加入图形界面就变成另一个操作系统了?

    作者回复: 不是的,这里Wasm只是作为最上层的运行时负责串联起操作系统与用户层的接口。本身操作系统内核还是没有变化的,只是作为微内核,我们将很多没有必要的底层组件去掉了。从而使得整个内核的启动速度变快。而基于Wasm 运行时使得上层用户程序的启动速度也会得到提高,因此整体性能从两方面都得到了提升。

    2020-09-29
    1
  • Natsuki
    webpack 的 import wasm 的我研究了好长时间,它在编译 打包 wasm 的时候已经写好了 WebAssembly. compile 和 WebAssembly. instantiate,我看了源码看了好久没看懂 importObject 怎么传给 WebAssembly. instantiate,老师可以帮忙解答写吗? https://github.com/webpack/webpack/blob/master/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js (大概是 292 - 344 行)

    作者回复: 没找到相关的文档,在 Stack Overflow 上提了个问题(不过看起来 Webpack 社区活跃度不是那么太好):https://stackoverflow.com/questions/64606185/how-can-i-pass-importobject-to-a-webassembly-module-with-webpack-5-as-a-building

    2020-10-27
  • 陆培尔
    在云原生领域还有一个比较重要的应用方向,即istio团队目前在大力推广的基于wasm plugin机制的envoy扩展方式,这是目前istio团队主推的扩展模式,用于取代原有的mixer组件。
    2021-03-13
    9
  • 先听
    以前不太喜欢帅男人,听到现在,感觉再帅也不是问题了。很喜欢这个内容和透露出的态度
    2020-10-08
    1
  • Bachue Zhou
    wasm 用在后端服务器上最大的优势可能是节省进程启动和销毁的开销了。请求来的时候当场分配资源来处理请求,请求结束后销毁全部资源,应用程序本身无需自己处理资源回收的事情,进程也不需要启动和销毁。
    2023-05-09归属地:上海
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部