WebAssembly入门课
于航
PayPal 高级软件工程师
新⼈⾸单¥1
1403 人已学习
课程目录
已完结 22 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 我们为什么要了解 WebAssembly?
免费
01 | 基础篇:学习此课程你需要了解哪些基础知识?
02 | 历史篇:为什么会有 WebAssembly 这样一门技术?
核心原理篇 (6讲)
03 | WebAssembly 是一门新的编程语言吗?
04 | WebAssembly 模块的基本组成结构到底有多简单?
05 | 二进制编码:WebAssembly 微观世界的基本数据规则是什么?
06 | WAT:如何让一个 WebAssembly 二进制模块的内容易于解读?
07 | WASI:你听说过 WebAssembly 操作系统接口吗?
08 | API:在 WebAssembly MVP 标准下你能做到哪些事?
应用篇 (6讲)
09 | WebAssembly 能够为 Web 前端框架赋能吗?
10 | 有哪些已经投入生产的 WebAssembly 真实案例?
11 | WebAssembly 在物联网、多媒体与云技术方面有哪些创新实践?
12 | 有哪些优秀的 WebAssembly 编译器与运行时?
13 | LLVM:如何将自定义的语言编译到 WebAssembly?
14 | 有哪些正在行进中的 WebAssembly Post-MVP 提案?
实战篇 (6讲)
15 | 如何实现一个 WebAssembly 在线多媒体处理应用(一)?
16 | 如何实现一个 WebAssembly 在线多媒体处理应用(二)?
17 | 如何实现一个 WebAssembly 在线多媒体处理应用(三)?
18 | 如何进行 Wasm 应用的调试与分析?
19 | 如何应用 WASI 及其相关生态?
20 | 总结与答疑
结束语 (1讲)
结束语 | WebAssembly,未来已来
WebAssembly入门课
15
15
1.0x
00:00/00:00
登录|注册

19 | 如何应用 WASI 及其相关生态?

于航 2020-10-16
你好,我是于航。
作为“实践篇”的最后一课,今天我们来一起看看“如何从零构建一个 WASI 应用?”。在实践篇的前三节课里,我花了大量的篇幅来介绍如何基于 Emscripten ,去构建一个可以运行在 Web 浏览器中的 Wasm 应用。而基于 WASI 构建的 Wasm 应用将会被运行在浏览器之外的 Native 环境中,因此其构建和使用方式与基于 Emscripten 的 Wasm 应用有所不同。
但也正如我们在第 07 讲中介绍的那样,WASI 本身作为一种抽象的操作系统调用接口,对上层的应用开发者来说,没有较为直接的影响。
甚至对于同样的一段可以被编译为本地可执行应用程序的代码来说,我们只需要适当调整编译器的相关设置,就可以在不做任何代码更改的情况下,编译出所对应的 WASI 版本代码(也就是 Wasm 字节码)。然后再配合相应的 Wasm 虚拟机,我们就能够以“另一种方式”来执行这些代码了。
总的来说你可以看到,相较于传统的可执行文件,WASI 应用程序的整个“生命周期”基本上只有“编译”与“运行”两个阶段会有所不同。在接下来的内容中,我们将以一段 C/C++ 代码入手,来从编码、编译,再到运行,一步步带你完成这个 WASI 应用。

编码

首先,我们先来编写应用对应的 C/C++ 代码,这部分内容如下所示。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《WebAssembly入门课》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥1
立即订阅
登录 后留言

精选留言(2)

  • Yarco
    不知道chrome扩展开发是否支持wasm代码的运行...

    作者回复: Google 了一下,看起来是可以的。

    2020-10-18
  • 军秋
    WASI的目的:相对java的优势是在可以把已经存在的C/C++等代码库功能变异成跨平台。不知道我理解是否对?这部分对前端会有什么影响吗?

    作者回复: 是的,“对历史代码的可重用性”也是 Wasm 最重要的几个特征之一。对前端来说最好的例子就是我之前介绍过的 eBay 那个例子。在那个例子中,我们可以直接使用诸如 ZBar 等知名、优秀、稳定的 C++ 库来完成 Web 前端应用需要进行的一些任务,比如二维码扫描。因此,除了 Wasm 带来的性能提升,“代码重用”也是对 Web 前端应用有影响的一个地方。

    2020-10-16
收起评论
2
返回
顶部