Repolode
copy

copy/v86

一个在浏览器中运行的 x86 PC 模拟器,运行时将机器码转为 WebAssembly 以启动真实操作系统。

Star
23,609
Fork
1,924
未关闭 Issue
116
最近提交
3天前

这是什么?

v86 模拟 x86 兼容 CPU 以及一组 PC 硬件,包括 VGA 显卡、PS/2 键鼠、IDE 与软盘控制器、PCI 总线、NE2000 和 virtio 网络设备,以及 SoundBlaster 16 声卡。运行时机器码会被转换为 WebAssembly 模块,以便在浏览器标签页中获得可用的性能。

项目主要用于在浏览器中运行老旧和小众操作系统。已支持的客户机包括多种 Linux 发行版、FreeDOS、MS-DOS、Windows 95 至 2000、ReactOS、Haiku 和 FreeBSD,部分 Windows XP 及更新版本仅在特定条件下可用。磁盘镜像通过 URL 加载,模拟器可通过 libv86.js 或 npm 包 v86 嵌入网页。

它提供 JavaScript API,用于操作串口控制台、保存和恢复状态,并支持多个实例之间的网络互联。项目也可以使用 Rust 和 Make 在本地构建,分为调试版和优化版。

核心功能

  • 01模拟接近 Pentium 4 水平的 x86 CPU,支持 SSE3
  • 02运行时将机器码转换为 WebAssembly
  • 03包含支持 SVGA 的 VGA 显卡以及 PS/2 键鼠
  • 04提供 virtio、NE2000 和拨号调制解调器等网络选项
  • 05支持保存和恢复模拟器状态
  • 06可通过 libv86.js 或 npm 包嵌入网页

适用场景

  • 在网页中运行 Windows 95、MS-DOS 等老旧操作系统
  • 演示或教学 PC 硬件与 x86 启动过程
  • 在浏览器工具中嵌入沙箱化的 Linux 或 DOS 环境
  • 研究 CPU 模拟及向 WebAssembly 的动态二进制翻译

快速上手

  1. 1

    安装 npm 包

    npm install v86
  2. 2

    按照 README 中的 API 示例,使用 V86 构造函数在网页中嵌入模拟器

使用前须知

  • 不支持 64 位客户操作系统。
  • 不支持多核模拟。
  • 从源码构建需要 Rust、clang、Java 和 Node.js 等工具。
  • 部分操作系统无法运行,例如 Plan 9 和 OS/2。

标签

常见问题

v86 是什么?
一个在浏览器中运行的 x86 PC 模拟器,运行时将机器码转为 WebAssembly 以启动真实操作系统。 v86 模拟 x86 兼容 CPU 以及一组 PC 硬件,包括 VGA 显卡、PS/2 键鼠、IDE 与软盘控制器、PCI 总线、NE2000 和 virtio 网络设备,以及 SoundBlaster 16 声卡。运行时机器码会被转换为 WebAssembly 模块,以便在浏览器标签页中获得可用的性能。
v86 可以免费使用吗?用的什么许可证?
v86 以 BSD-2-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
v86 还在维护吗?
活跃维护中。v86 最近一次提交是在 2026年10月18日。
v86 适合用来做什么?
在网页中运行 Windows 95、MS-DOS 等老旧操作系统 演示或教学 PC 硬件与 x86 启动过程 在浏览器工具中嵌入沙箱化的 Linux 或 DOS 环境 研究 CPU 模拟及向 WebAssembly 的动态二进制翻译
v86 怎么安装和运行?
安装 npm 包: npm install v86 按照 README 中的 API 示例,使用 V86 构造函数在网页中嵌入模拟器
在哪里获取 v86?
源代码和安装说明在 GitHub 上:https://github.com/copy/v86

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目