写点什么

Mozilla 发布 WASI 计划,可在所有设备上运行 WebAssembly

  • 2019-04-10
  • 本文字数:1963 字

    阅读完需:约 6 分钟

Mozilla发布WASI计划,可在所有设备上运行WebAssembly

Mozilla 最近推出了一个新的标准化工作,目标是在所有设备、机器和系统上运行相同的 WebAssembly 代码。新标准 WebAssembly 系统接口(WebAssembly System Interface,简称 WASI)定义了一个单一的概念性操作系统接口,该接口可以由多个实际的操作系统实现。Mozilla 和 Fastly 已经发布了原型 WASI 实现。


Mozilla 最近推出了一个新的标准化工作,目标是在所有设备、机器和系统上运行相同的 WebAssembly 代码。新标准 WebAssembly 系统接口(WebAssembly System Interface,简称WASI)定义了一个单一的概念性操作系统接口,该接口可以由多个实际的操作系统实现。与之前像 Java“随处运行”工作的不同在于,WASI 构建于 WebAssembly 之上,WebAssembly 是浏览器供应商和芯片、设备、计算机及操作系统的制造商之间的罕见合作,目的是制定一个无专利、开放的标准。WASI 标准将努力通过一组模块化的标准接口来提供 WebAssembly 的可移植性和安全性,并为生态系统提供坚实的基础。MozillaFastly已经发布了 WASI 原型实现。


WASI 旨在成为 WebAssembly 平台的系统接口(目前WebAssembly平台由四个主流浏览引擎实现)。WebAssembly(Wasm)将自身描述为“基于堆栈的虚拟机的二进制指令格式”,其设计目标是“利用广泛平台上可用的通用硬件能力,以本地速度执行”。Wasm 被用作像 C/C++/Rust等高级语言的编译目标。尽管 WebAssembly 主要设计用于在开放网络上运行,但是,现在,Mozilla 寻求把 WebAssembly 的应用范围扩展到非网络嵌入,“包括从用于测试的最小 shell 到成熟的应用程序环境的一切,例如,在数据中心的服务器上、IoT 设备上、移动/桌面应用程序”。正如Lin Clark所述


浏览器外部的代码需要一种与系统通信的方式,这就是系统接口。WebAssembly 平台还没有这样的接口。


WASI 声明的目标与 Java 最初的承诺“一次编写,随处运行(Write Once,Run Anywhere)”相呼应。Java 虚拟机(JVM)确实用于类似的目的,并且,语言的灵活性与通过 WebAssembly 平台所提供的类似,可以通过GraaIVM在 Java 中实现。然而,Java仍然是事实标准,其所有者 Oracle跟谷歌还有一场未打完的官司,原因是谷歌涉嫌非法使用 Java 的 API。相比之下,WebAssembly 是罕见合作的结果,该合作发生在浏览器供应商和主流公司之间,这些主流公司包括微软、谷歌、苹果、Mozilla、英特尔、三星等等。在 2018 年于旧金山举行的QCon大会上,Jay Phelps强调


这些公司,他们已经走到一起。这些主流公司已经创造了首个标准化的字节代码,并且还是免费的,而不是专有程序。毫无疑问,它是完全开放的,不受专利法和所有类似事务的阻碍。


此外,Wasm 具有内存安全性调优功能,也许比 Java 更具安全优势。Till Schneidereit提供了额外的论据,以在比较中突显 Wasm 的优势:


WebAssembly 被设计用来扩展的,从小型的设备一直扩展到大型服务器场或 CDN;与 Java 相比,语言无关性更强;并且具有更小的实现占用空间。


WASI 基于系统功能的抽象,通过给多个系统指定公共接口,来寻求实现可移植二进制代码。这些抽象被聚集到模块中,其中 wasi-core 占据核心位置。Lin Clark 给出了详细说明:


wasi-core 将包含所有程序所需的基础。它将覆盖与 POSIX 相同的基础,包括文件、网络连接、时钟和随机数等。


像多媒体、3D 图或智能合约这样的其他功能,可以通过特定模块来解决。现有的标准化工作旨在仔细指定系统功能抽象,以便解决大量操作系统和体系结构的同时,保持 WebAssembly 的性能目标。


Wasm 的安全方面,WASI 采用的是基于能力的安全模型。它为 WASI 应用程序提供了能力,而不是标识资源的可伪造引用(如文件路径),但没有指定哪种访问权限适合该资源。可伪造引用强制操作系统根据请求程序的外界权限进行验证。Lin Clark 解释了如果 WASI 应用程序之前被授予打开某个文件的能力,那么它只能打开那个文件:


我们无法让代码随机请求 open /etc/passwd。相反,该代码只能对传递给它的目录进行操作。(…)因此,运行时将应用程序可以使用的文件描述符传递到顶层代码,然后,根据需要,文件描述符在系统的其余部分得到传播。


支持 WASI 的应用程序目前可以使用polyfill在浏览器中运行,或者用Mozilla的Wasmtime或 Fastly 的Lucet在浏览器外部运行。


WASI 还在开发过程中。Lin Clark 提到:


但是,在完全标准化 wasi-core 后,还存在一些我们需要解决的问题。这些问题包括:

  • 异步 I/O

  • 文件观察

  • 文件锁定


风险很大。Docker的联合创始人Solomon Hikes


如果 2008 年就有 WASM+WASI,那么,我们就不需要创造 Docker 了。这就它的重要性所在。服务器上的 WebAssembly 是计算的未来。一个标准化的系统接口就是其缺失的环节。希望 WASI 能胜任这项任务!


查看英文原文:Mozilla Announces WASI Initiative to Run Web Assembly on All Devices, Computers, Operating Systems


2019-04-10 08:004178
用户头像

发布了 199 篇内容, 共 90.6 次阅读, 收获喜欢 295 次。

关注

评论

发布
暂无评论
发现更多内容

都有哪些较好用的项目管理软件?

优秀

项目管理 项目管理软件

@全球开发者|首届云原生边缘计算峰会邀您共话

华为云开发者联盟

云原生 边缘计算 kubeedge

云原生训练营大作业

jjn0703

王者荣耀商城异地多活架构设计

流火

架构实战营模块七 作业

库尔斯

架构实战营

OceanBase 成为信通院首批可信开源社区、可信开源项目

OceanBase 数据库

中国信通院 OceanBase 开源

当我们进行性能优化,我们在优化什么(LightHouse优化实操)

刘悦的技术博客

性能优化 前端 优化 性能优化手册

应用流程挖掘,发现潜在RPA可实施的场景,助力银行优化业务流程

易观分析

RPA

科创人·神州数码集团CIO沈旸:最佳实践模式正在失灵,开源加速分布式创新

科创人

一篇文章带你彻底了解哈希表

武师叔

算法 哈希表 6月月更

阿里云刘珅孜:云游戏带来的启发——端上创新

阿里云弹性计算

gpu 元宇宙 云游戏

从零开始搭建vue-cli项目

小恺

6月月更

LabVIEW控制Arduino采集热敏电阻温度数值(基础篇—13)

不脱发的程序猿

单片机 LabVIEW Arduino LIAT 采集热敏电阻温度数值

LabVIEW控制Arduino采集光敏电阻数值(基础篇—14)

不脱发的程序猿

单片机 LabVIEW Arduino LIAT 采集光敏电阻数值

企业知识管理体系怎么搭建和运营?

小炮

Java27岁了——一次争执引起的Java内卷生涯

写代码两年半

javase Java EE 6月月更

利用Python实现自动操作Excel文件

弑着去忘记う

后端解构复习(一)

卢卡多多

技术栈 6月月更

MPLS协议简述

穿过生命散发芬芳

6月月更 MPLS

Docker的安装及日常命令的使用

Geek_982ff5

6月月更

中国标准走进国际视野,首个零信任国际标准的诞生往事

脑极体

LabVIEW控制Arduino采集LM35温度传感器数值(基础篇—12)

不脱发的程序猿

单片机 LabVIEW Arduino LIAT 采集LM35温度传感器数值

盘点校招面试 HR 可能会问到的问题

宇宙之一粟

面试 校招 6月月更

开始使用DOCKER COMPOSE V2

mengzyou

Docker DevOps Docker-compose

架构训练 模块七

小马

#架构训练营

哈希游戏开发竞猜系统哈希值hash算法

薇電13242772558

哈希算法

动态路由协议之RIP协议,最古老的距离矢量协议!

wljslmz

IP 网络工程师 动态路由 6月月更 路由协议

架构实战营模块七作业

天琪实刚亮

SPDK对接Ceph性能优化

天翼云开发者社区

开发工具

移动平台打造新生态 | 助力企业跨业务、一站式、全场景的系统建设

BeeWorks

华为云GaussDB首席架构师冯柯:摘取皇冠上的明珠,华为云数据库的创新与探索

华为云开发者联盟

数据库 华为云 GaussDB 国产数据库

Mozilla发布WASI计划,可在所有设备上运行WebAssembly_大前端_Bruno Couriol_InfoQ精选文章