# @aptre/v86 中文文档

规范地址：https://npmcn.com/package/%40aptre/v86/

版本：0\.6\.10
npm 元数据更新时间：2026-10-12T08:06:24.408Z
中文译文更新时间：2026-11-06T13:05:27.026Z
软件包许可：BSD-2-Clause

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aptre/v86
原文对照：https://npmcn.com/package/%40aptre/v86/?lang=original
项目主页：https://github.com/aperturerobotics/v86
源码仓库：https://github.com/aperturerobotics/v86

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：10.3 MB，113 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2026-03-27T07:14:21.723Z
- 最新版本发布：2026-10-12T08:06:24.085Z
- 近 30 天下载量：22094（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 12 个）

## 中文简介

x86 PC 模拟器和 x86- to-wasm JIT,在浏览器中运行

## 安装

```sh
npm install @aptre/v86
```

也可以使用：`pnpm add @aptre/v86`、`yarn add @aptre/v86`、`bun add @aptre/v86`

## README

这是叉子 [副本/v86](https://github.com/copy/v86) 具有下列增强功能:

-   **类型脚本迁移**: JavaScript 前端翻译为 TypeScript esbuild + tsgo 构建工具. 发表于 [`@aptre/v86`](https://www.npmjs.com/package/@aptre/v86) 与无害环境管理和 TypeScript 声明.
-   **不断增长的记忆**数字 : `growMemory(bytes)` API 动态扩展的来宾 运行时使用WebAssembly导入的内存进行RAM.
-   **维蒂奥-v86fs**: 自定义 Virtio 文件系统设备, 并设置了二进制 协议,基于 DMA 的数据传输,页面缓存集成, 推动无效, 和256塔克同时请求支持。 允许将主机目录安装到 带完整 POSIX 语义的来宾(用 git 测试).
-   **维蒂奥-米姆**: 由来宾启动的记忆热插件管理设备.
-   **国家保存/恢复修正**数字 : `last_result` 现在正确维持注册 跨州快照,修复后断断续续的断言失败.

Virtio-v86fs 内核模块和相关内核补丁位于 [孔径/线程](https://github.com/aperturerobotics/linux) 仓库 编辑 `v86` 树枝。 Rust/WASM的后端与上游没有变化.

* * *

[![Join the chat at https://gitter.im/copy/v86](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/copy/v86) 或 #v86 打开 [(原始内容存档于2013-10-12). irc.libera.chat](https://libera.chat/)

v86仿制出相容于x86的CPU和硬件. 机器代码翻译为 运行时的WebAssembly模块,以实现体面的性能. 这是 模拟硬件列表 :

-   一个x86相容的CPU. 该指令集围绕Pentium 4级, 包括完整的SSE3支持. 缺少一些特征,特别是:
    -   任务门, 在保护模式下远程呼叫
    -   约 16 位保护模式特性
    -   单步( 陷阱旗、 调试登记册)
    -   一些例外,特别是浮点和SSE
    -   多方
    -   64 位扩展
-   一个浮点单位(FPU). 使用伯克利号进行计算 SoftFloat库,因此应该精确(但缓慢). 三角形 和日志函数使用64位浮点模拟,可能不太精确. 并非所有 FPU 例外都被支持 .
-   软盘控制器(8272A).
-   8042键盘控制器 PS2. 由鼠标支持.
-   8254可编程相间计时器(PIT).
-   8259可编程中断控制器.
-   部分APIC支持.
-   一个CMOS实时时钟(RTC).
-   具有SVGA支持和Bochs VBE扩展功能的通用VGA卡.
-   PCI公交车. 这个部分不完整,并非每个设备都使用.
-   一个IDE磁盘控制器.
    -   一个内置的ISO 9660光盘生成器.
-   An NE2000 (RTL8390) PCI网络卡.
-   各种virtio设备:Filesystem(9p和v86fs),网络,气球和内存热插.
-   收音机16个音卡.

## 演示文稿

[9 前页](https://copy.sh/v86/?profile=9front) —— 说 [阿尔奇 Linux](https://copy.sh/v86/?profile=archlinux) —— 说 [Android-x86 1.6-r2 (英语)](https://copy.sh/v86?profile=android) —— 说 [Android-x86 4.4-r2 (英语)](https://copy.sh/v86?profile=android4) —— 说 [基本链接](https://copy.sh/v86/?profile=basiclinux) —— 说 [构建根基 Linux](https://copy.sh/v86/?profile=buildroot) —— 说 [该死的小Linux](https://copy.sh/v86/?profile=dsl) —— 说 [埃尔克斯](https://copy.sh/v86/?profile=elks) —— 说 [免费DOS](https://copy.sh/v86/?profile=freedos) —— 说 [免费BSD](https://copy.sh/v86/?profile=freebsd) —— 说 [菲维克索斯](https://copy.sh/v86/?profile=fiwix) —— 说 [海库](https://copy.sh/v86/?profile=haiku) —— 说 [SkiffOS 系统](https://copy.sh/v86/?profile=copy/skiffos) —— 说 [反应OS](https://copy.sh/v86/?profile=reactos) —— 说 [视窗 2000](https://copy.sh/v86/?profile=windows2000) —— 说 [视窗 98](https://copy.sh/v86/?profile=windows98) —— 说 [视窗 95](https://copy.sh/v86/?profile=windows95) —— 说 [视窗 1.01](https://copy.sh/v86/?profile=windows1) —— 说 [MS-DOS 6.22号卫星](https://copy.sh/v86/?profile=msdos) —— 说 [打开BSD](https://copy.sh/v86/?profile=openbsd) —— 说 [奥伯伦](https://copy.sh/v86/?profile=oberon) —— 说 [科利布里奥斯](https://copy.sh/v86/?profile=kolibrios) —— 说 [缩写OS](https://copy.sh/v86?profile=skift) —— 说 [QNX 数据](https://copy.sh/v86/?profile=qnx)

## 文档

[如何运作](https://npmcn.com/package/%40aptre/v86/docs/how-it-works.md) —— 说 [联网](https://npmcn.com/package/%40aptre/v86/docs/networking.md) —— 说 [Alpine Linux 客机设置](https://npmcn.com/package/%40aptre/v86/tools/docker/alpine/) —— 说 [Arch Linux 客机设置](https://npmcn.com/package/%40aptre/v86/docs/archlinux.md) —— 说 [Windows NT 来宾设置](https://npmcn.com/package/%40aptre/v86/docs/windows-nt.md) —— 说 [Windows 9x 客机设置](https://npmcn.com/package/%40aptre/v86/docs/windows-9x.md) —— 说 [9p 文件系统](https://npmcn.com/package/%40aptre/v86/docs/filesystem.md) —— 说 [9p 上的 Linux rootfs 数据](https://npmcn.com/package/%40aptre/v86/docs/linux-9p-image.md) —— 说 [剖析](https://npmcn.com/package/%40aptre/v86/docs/profiling.md) —— 说 [CPU 编码](https://npmcn.com/package/%40aptre/v86/docs/cpu-idling.md)

## 兼容性

以下是v86中支持的操作系统概述:

-   Linux的工作相当出色. 64位内核不支持.
    -   [构建根](https://buildroot.org/) 可用于构建最小图像. [驼峰/眉毛-vm](https://github.com/humphd/browser-vm) 财务报告和审定财务报表 [darin755/浏览器建设根](https://github.com/Darin755/browser-buildroot) 有一些有用的脚本 用于构建一个.
    -   [SkiffOS 系统](https://github.com/skiffos/SkiffOS/tree/master/configs/browser/v86) (基于Buildroot)可以交叉编译自定义图像.
    -   Ubuntu等Debian衍生产品的工作达到了支持i386的最新版本 (16.04 LTS或18.04 LTS 对于一些变体).
    -   阿尔卑斯·利努作品. 图像可以从 Docker 文件中建出 [工具/码头/高山/](https://npmcn.com/package/%40aptre/v86/tools/docker/alpine/)。 。 。 .
    -   Arch Linux 32作品. 见 [阿尔克林努斯.md](https://npmcn.com/package/%40aptre/v86/docs/archlinux.md) 用来构建一个图像.
-   反应OS工作.
-   FreeDOS,Windows 1.01和MS-DOS运行非常顺利.
-   KolibriOS的工作原理.
-   海库工作.
-   Android-x86已经测试到4.4-r2.
-   Windows 1, 3.x, 95, 98, ME, NT 和 2000 运行合理.
    -   在Windows 2000和更高版本中,PC类型必须从ACPI PC改为标准PC
    -   有一些已知的靴子问题([250号](https://github.com/copy/v86/issues/250), (中文(简体) ), [433号](https://github.com/copy/v86/issues/433), (中文(简体) ), [507号](https://github.com/copy/v86/issues/507), (中文(简体) ), [555号](https://github.com/copy/v86/issues/555), (中文(简体) ), [620号](https://github.com/copy/v86/issues/620), (中文(简体) ), [645号](https://github.com/copy/v86/issues/645)(中文(简体) )
    -   见 [Windows 9x 客机设置](https://npmcn.com/package/%40aptre/v86/docs/windows-9x.md)
-   Windows XP, Vista 和 8 在某些条件下工作(见 [86号](https://github.com/copy/v86/issues/86), (中文(简体) ), [208号](https://github.com/copy/v86/issues/208)(中文(简体) )
    -   见 [Windows NT 来宾设置](https://npmcn.com/package/%40aptre/v86/docs/windows-nt.md)
-   许多爱好操作系统都有效.
-   9个前期作品.
-   9计划不起作用.
-   QNX工作顺利.
-   OS/2没有用.
-   FreeBSD的工作原理.
-   OpenBSD以特定的启动配置工作. 在那个 `boot>` 提示类型 `boot -c`,然后在 `UKC>` 提示 `disable mpbios` 财务报告和审定财务报表 `exit`。 。 。 .
-   NetBSD 只使用自定义内核工作, 参见 [350号](https://github.com/copy/v86/issues/350)。 。 。 .
-   静态OS工作(只有32位版本).
-   [缩写OS](https://skiftos.org/) 工作时.

您可以在此获取磁盘图像中的一些信息 : [https://github.com/影印本/图像](https://github.com/copy/images)。 。 。 .

## 如何建设,跑和嵌入?

你需要的就是: 爱丽丝

-   [包头](https://bun.sh/) (运行时间和软件包管理器)
-   Rust with the ham32-unknown-unknown-unknown target (用于WASM后端) 的 Rust (用于 WASM 后端)
-   与 Rust 兼容的 Cang 版本
-   进行测试:鼻、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克-克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克、克等

```bash
bun install        # install dependencies
bun run build      # production build (ESM + browser bundle in dist/)
bun run build:debug # debug build (with DEBUG=true)
bun run typecheck  # type-check with tsgo
bun run lint       # lint with eslint
bun run format     # format with prettier
bun run test       # run tests with vitest
```

见 [工具/挂载/测试图像/挂载文件](https://npmcn.com/package/%40aptre/v86/tools/docker/test-image/Dockerfile) 在Debian上设置完整设备或 [WSL 维基月球](https://docs.microsoft.com/en-us/windows/wsl/install)。 。 。 .

WASM 后端仍然以 `make` (需要Rust工具链). 运行 `make` 用于调试构建( e)`debug.html`)或(或) `make all` 用于优化的 建筑(`index.html`) (中文(简体) ). TypeScript/JavaScript 前端用包包构建 上面的命令.

ROM和磁盘图像是通过 XHR 装入的,所以如果您想要尝试 HTML 本地文件,确保从本地的网络服务器中为它们服务。 你用得着 `make run` 用于使用 Python 的 http 模块服务文件.

如果您只想将 v86 嵌入网页, 请检查 [实例](https://npmcn.com/package/%40aptre/v86/examples/)。对于基于捆绑器的设置,从 npm 安装: `bun add @aptre/v86`

### 或者使用 Docker 构建

-   如果安装了多克,可以在容器内运行整个系统.
-   见 `tools/docker/exec` 要找到此所需的 Docker 文件 .
-   你们可以跑 `docker build -f tools/docker/exec/Dockerfile -t v86:alpine-3.19 .` 从根目录生成插件图像.
-   那你可以随便跑一跑 `docker run -it -p 8000:8000 v86:alpine-3.19` 启动服务器.
-   检查 `localhost:8000` 用于主机服务器.

### 通过 Dev 容器运行

-   如果您正在使用一个支持Dev Containers的IDE,例如GitHub Codespaces,Visual Studio代码远程容器扩展,或者可能的其他例如Jetbrains' IntelliJ EIDO,您可以在Dev Container中设置开发环境.
-   遵循您开发环境的指示设置容器.
-   运行任务"Fetch图像",以下载图像进行测试.

## 测试

用于测试的磁盘图像不包含在本寄存器中. 你们可以 使用:

`curl --compressed --output-dir images/ --remote-name-all https://i.copy.sh/{linux.iso,linux3.iso,linux4.iso,buildroot-bzimage68.bin,TinyCore-11.0.iso,oberon.img,msdos.img,openbsd-floppy.img,kolibri.img,windows101.img,os8.img,freedos722.img,mobius-fd-release5.img,msdos622.img}`

运行集成测试 : `make tests`

运行所有测试 : `make jshint rustfmt kvm-unit-test nasmtests nasmtests-force-jit expect-tests jitpagingtests qemutests rust-test tests`

见 [测试/读取](https://npmcn.com/package/%40aptre/v86/tests/Readme.md) 更多信息.

## API 示例

-   [基础](https://npmcn.com/package/%40aptre/v86/examples/basic.html)
-   [程序上使用串行终端](https://npmcn.com/package/%40aptre/v86/examples/serial.html)
-   [卢阿语翻译](https://npmcn.com/package/%40aptre/v86/examples/lua.html)
-   [一个窗口中的两个实例](https://npmcn.com/package/%40aptre/v86/examples/two_instances.html)
-   [使用广播频道 API 在浏览器窗口/ Tabs 之间联网](https://npmcn.com/package/%40aptre/v86/examples/broadcast-network.html)
-   [TCP 终端( 基于牵线网)](https://npmcn.com/package/%40aptre/v86/examples/tcp_terminal.html)
-   [保存和恢复模拟器状态](https://npmcn.com/package/%40aptre/v86/examples/save_restore.html)

将v86用于自己的目的,和:

```javascript
var emulator = new V86({
    screen_container: document.getElementById("screen_container"),
    bios: {
        url: "../../bios/seabios.bin",
    },
    vga_bios: {
        url: "../../bios/vgabios.bin",
    },
    cdrom: {
        url: "../../images/linux.iso",
    },
    autostart: true,
});
```

见 [启动器.ts](https://npmcn.com/package/%40aptre/v86/src/browser/starter.ts) 为全API.

## 许可证

v86根据简化BSD许可证的规定分发,参见: [自由主义](https://npmcn.com/package/%40aptre/v86/LICENSE)。下列第三方依赖性包括在 使用自己的许可证储存:

-   [`lib/softfloat/softfloat.c`](https://npmcn.com/package/%40aptre/v86/lib/softfloat/softfloat.c)
-   [`lib/zstd/zstddeclib.c`](https://npmcn.com/package/%40aptre/v86/lib/zstd/zstddeclib.c)
-   [`tests/kvm-unit-tests/`](https://npmcn.com/package/%40aptre/v86/tests/kvm-unit-tests)
-   [`tests/qemutests/`](https://npmcn.com/package/%40aptre/v86/tests/qemutests)
-   [`src/floppy.js/`](https://npmcn.com/package/%40aptre/v86/src/floppy.js) 包含根据麻省理工学院许可证从qemu移植的部件,参见LICENSE. 麻省理工学院.

## 贷项

-   CPU 测试案例通过 [卡塔尔](https://wiki.qemu.org/Main_Page)
-   更多测试通过 [kvm 单位测试](https://www.linux-kvm.org/page/KVM-unit-tests)
-   [兹斯特德](https://github.com/facebook/zstd) 包含支持以更好地压缩状态图像
-   [伯克利软花板](http://www.jhauser.us/arithmetic/SoftFloat.html) 包含以精确模拟80位浮点数
-   [Jor1k项目](https://github.com/s-macke/jor1k) 用于 9p 、 文件系统和 uart 驱动程序
-   [赢取世界](https://winworldpc.com/) 一些旧操作系统的源
-   [OS/2博物馆](https://www.os2museum.com/) 一些旧操作系统的源
-   [存档OS](https://archiveos.org/) 多个操作系统的源

## 还有问题吗?

给我一个电子邮件 `copy@copy.sh`请在 GitHub 上报告错误 .

## 常见问题

### @aptre/v86 是什么？

x86 PC 模拟器和 x86- to-wasm JIT,在浏览器中运行

### 如何安装 @aptre/v86？

在项目目录运行 npm install @aptre/v86，或使用 pnpm add / yarn add / bun add。

### @aptre/v86 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @aptre/v86 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @aptre/v86 可以商用吗？

@aptre/v86 使用 BSD-2-Clause 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @aptre/v86 的下载量有多少？

根据 npm 官方下载统计，@aptre/v86 在 2026/10/07 – 2026/11/05 这 30 天内被下载 22,094 次，日均约 736 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @aptre/v86 还在维护吗？

最新版本 0\.6\.10 发布于 2026/10/12（26 天前）；至今共发布 12 个版本，其中过去 12 个月发布了 12 个；首次发布于 2026/03/27。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

