原文链接
WebAssembly
(缩写WASM)是一种安全,便携,低级代码设计用于高效执行和紧凑表示的格式。
它的主要目标是使Web上的高性能应用,不需要针对网络的特定假设或者提供特定的定制化的网络功能,因而它可以在其余环境中直接使用,也就是良好的跨平台特性。
WebAssembly是由W3C社区组开发的开放标准。
WebAssembly
的设计目标有以下几方面:
WebAssembly
代码也意在便于检查和调试,尤其是在像网络浏览器的环境中,但是这些特征超出了本规范的范围。
在其核心,WebAssembly是虚拟指令集架构(Instruction Set Architecture(ISA) 虚拟)。因而,它有许多使用情况,并且可以嵌入在许多不同的环境。涵盖多元化和实现最大限度的重用,在 WebAssembly
规范是分裂和分层为几个文件。
这份文件是关于 WebAssembly
的核心 ISA 层。它定义了指令集,二进制编码,验证和执行语义,以及一个文本表示。这不,但是,定义如何 WebAssembly
程序可以与特定的环境中,他们执行的互动,也不是如何从这样的环境中调用。
相反,该规范由定义接口的具体嵌入环境,如网络附加文件的补充。这些将各自限定 WebAssembly
应用程序编程接口( API )适合于给定的环境。
WebAssembly
提供在其中执行代码的计算环境没有环境的访问。与环境,如 I / O,对资源的访问,或者操作系统调用的任何相互作用,只能通过调用嵌入器提供并导入到一个 WebAssembly
模块的功能来执行。嵌入器可以通过控制或者限制它使可供导入该功能能力建立适合各自的环境安全政策。这种考虑是一个嵌入的责任和 API 定义特定环境的主题。
由于 WebAssembly
被设计成被翻译成直接在主机的硬件上运行的机器代码,它是可能受到在硬件水平边信道攻击。在环境中,这是一个问题,一个嵌入可能不得不把合适的缓解措施到位,以隔离WebAssembly
计算。
WebAssembly
取决于两个现有的标准:
IEEE 754-2019
,对于浮点数据的表示和相应的数字操作的语义。Unicode
中,导入/导出名称的表示和文本格式。然而,为了使本说明书自包含的,前述标准相关方面进行定义和形式化为本说明书的一部分,例如作为二进制表示和浮点值的舍入,和值的范围和 UTF-8
编码的 Unicode
的字符。
本文由博客一文多发平台 OpenWrite 发布!