麦克雷 Mavom.cn

标题: UWVM2 wasm-wasi虚拟机项目介绍 [打印本页]

作者: Rain    时间: 昨天 16:27
标题: UWVM2 wasm-wasi虚拟机项目介绍
uwvm2 项目介绍
uwvm2是Ultimate WebAssembly Virtual Machine 2的缩写,这是一个WebAssembly虚拟机项目。自述文件.md:1-5
项目概述
uwvm2目前处于开发者稳定状态。README.md:7-9 这是一个使用C++26编写的现代WebAssembly虚拟机实现,采用Apache 2.0许可证。自述文件.md:15-21
主要特性
WebAssembly规范支持
uwvm2支持WebAssembly Release 1.0和WASI Preview 1规范。features.md:8-12 目前尚不支持WebAssembly Release 1.1、2.0、3.0和WASI Preview 2。特点.md:9-13
多平台支持
项目支持超过100个三元组平台,包括:
DOS系列、POSIX系列、Windows 9x系列、Windows NT系列
支持解释执行(INT)、即时编译(JIT)和分层编译(TC) README.md:30-31
具体支持的平台包括:
POSIX环境:Linux、Darwin(macOS/iOS/watchOS)、FreeBSD、NetBSD等多种类Unix-like系统支持.md:3-12
Windows NT:从Windows 2000到Windows 11及各版本Windows Server支持.md:14-18
Windows 9x:Windows 95、98、ME 支持.md:20-22
DOS系统:MS-DOS、FreeDOS支持.md:24-25
技术要求
完整的ISO C++26支持支持.md:31-32
编译器支持:LLVM Clang >= 21(推荐)或GCC >= 16 support.md:34-37
命令行接口
uwvm2提供了丰富的命令行接口:
获取版本信息:uwvm --version
获取帮助:uwvm --help
运行WebAssembly程序:uwvm <param0> <param1> ... --run <wasm> <argv1> <argv2> ...
WASI挂载根目录: README.md:33-49uwvm --wasi-mount-root $WASM_ROOT_PATH ... --run ...
架构重新设计
uwvm2是对前身uwvm1的完全重新架构。rationale-for-rearchitecting-uwvm1.md:4-5 主要改进包括:
采用概念导向编程(COP)
uwvm2采用概念导向编程基础,将核心Wasm领域概念(如Module、Section、Type、Import、Memory、Table、Global、Instruction)建模为显式的、可组合的抽象。重新架构的基本原理-uwvm1.md:25-27
规范一致性设计
解析器和内部表示直接映射到Wasm规范,减少歧义和偏差。重新架构的基本原理-uwvm1.md:29-31
构造和注释的内存安全
指针算术和索引计算受到显式不变量、前置/后置条件和边界检查的保护
代码库包含详尽的内存安全注释,覆盖热路径,包括SIMD处理
设计上消除了影响uwvm1的i32指针下溢等问题类别 rationale-for-rearchitecting-uwvm1.md:33-36
项目结构
uwvm2采用模块化架构,主要组件包括:
解析器模块(parser/)
对象模型(object/)
虚拟机核心(uwvm/)
工具函数(utils/)
API接口() uwvm2:1-7uwapi/
笔记
uwvm2是一个正在积极开发的现代WebAssembly虚拟机项目,其设计重点在于规范合规性、多平台支持和内存安全。项目从uwvm1的经验中吸取教训,采用了更先进的架构设计原则。由于使用了C++26特性,对编译器版本有较高要求。目前项目仍处于开发者稳定阶段,适合有经验的开发者进行试用和贡献。

(, 下载次数: 0)
作者: Rain    时间: 昨天 16:28
2楼度娘




欢迎光临 麦克雷 Mavom.cn (http://www.mavom.cn/) Powered by Discuz! X3.5