webassembly是什么?

WebAssembly是一种在浏览器中运行非JavaScript代码的技术,它像Java字节码一样在概念机上运行,提供了一种跨平台的解决方案。通过WASI-Core抽象,实现了沙箱环境来运行,但内存和CPU隔离不完全,I/O资源也不支持隔离。WebAssembly的运行时包括Mozilla的wasmtime、Intel的wamr和wasmer等。它可以作为轻量级替代方案用于容器技术,尤其是在serverless场景中。尽管无法完全复制Docker的环境体验,但WASM引擎提供了更轻量级的功能,并且有潜力发展出WASM容器技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WebAssembly 是一种可以使用非 JavaScript 编程语言编写代码并且能在浏览器上运行的技术方案。

您可能会将 WebAssembly 当做是另外一种目标汇编语言。这是真的,这些机器语言(x86,ARM等)中的每一种都对应于特定的机器架构。当你的代码运行在用户的机器的 web 平台上的时候,你不知道你的代码将会运行在那种机器结构上。所以 WebAssembly 和别的汇编语言是有一些不同的。所以他是一个概念机上的机器语言,不是在一个真正存在的物理机上运行的机器语言。正因如此,WebAssembly 指令有时候被称为虚拟指令。它比 JavaScript 代码更快更直接的转换成机器代码,但它们不直接和特定硬件的特定机器代码对

应。

将wasm类比java字节码,将wasm虚拟机(执行引擎类比java虚拟机)

 

wasm如何做到沙箱运行?

抽象出wasi-core代替wasm直接访问操作系统。

但对内存、cpu无法实现精确隔离,对I/O资源不支持隔离。

https://zhuanlan.zhihu.com/p/112387861

 

wasm运行时/执行引擎有哪些?

Mozilla的wasmtime、intel(中国北海团队)的wamr都是wasm社区最早的执行引擎开源项目,wasmer也是一个wasm运行时。

 

https://www.jianshu.com/p/bff8aa23fe4d

https://blog.youkuaiyun.com/m549393829/article/details/81839822

https://zhuanlan.zhihu.com/p/338265761

 

为什么能代替container?

有什么应用场景,serverless中呢?

https://zhuanlan.zhihu.com/p/341400398

wasm引擎其实和docker引擎在定位上类似,docker的镜像文件和分层、主机的环境体验能达到吗?还是比容器更加轻量的功能?

引申出wasm容器技术:

https://zhuanlan.zhihu.com/p/243210440

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值