浏览器里跑完整 IBM PC 模拟器
推荐指数 36.0 NO. 021 · 2026.07.22
发布2026/07/21Score141Comments13
为什么值得看
PCjs 是一个纯 JavaScript 实现的复古硬件模拟器,支持在浏览器中运行 70-80 年代的 IBM PC、小型机、可编程计算器和街机游戏。对做 WebAssembly 性能优化或复古计算保护的开发者有参考价值,其 CPU 指令级模拟和磁盘镜像加载方案可直接借鉴。
编辑判断
做 Web 端模拟器的团队通常直接用 Emscripten 把 C/C++ 模拟器编译成 WASM,PCjs 选择纯 JavaScript 手写指令集反而是一个异类。这个决策在 2012 年项目启动时合理,但到今天其性能天花板明显——运行 8088 尚可,386 级别就吃力了。
真正值得借鉴的是它的磁盘镜像懒加载和 ROM 版权处理机制:把大型软盘镜像切片按需 fetch,用 ArrayBuffer 模拟内存映射 I/O,这套方案对现在做浏览器端 IDE、云游戏 demo 的团队依然有用。如果你在做类似浏览器版 DOSBox 的项目,PCjs 的代码结构比 DOSBox-X 的 WASM 移植干净得多,适合当参考实现快速上手。
社区反馈
正面 13 条评论
核心争论:复古计算模拟的怀旧价值与当代技术
相关内容
PCE.js IBM PC/XT emulator running PCDOS 5 PCE.js 在浏览器中运行经典计算机,这是模拟的 286 IBM PC 兼容机,运行 PC DOS 5,可直接在浏览器体验复古游戏。 PCjs Machines 开源的 IBM PC 模拟器项目,提供多种诊断工具和经典软件如 Lotus 1-2-3 的浏览器运行版本,专注 x86 架构还原。 BrowserVM 高效的 X86-64 全系统模拟器 基于 JavaScript 和 WebAssembly 的 x86-64 全系统模拟器,可在浏览器中运行完整 Linux 系统,展示浏览器虚拟化技术演进。 webVM:完全在浏览器中运行虚拟机 深入拆解开源项目 webVM,将完整 Linux 虚拟机搬进浏览器,解析浏览器虚拟化底层实现原理与技术架构。
I know I could've done this at any time, but I cannot wait to sit my kids down in front of full-screen Oregon Trail and King's Quest experiences.
https://archive.org/details/MECC_A157_v11_4amCrack
Be cautious with this. My firstborn's first complete sentence was "King Graham fell" (from the sledding scene in King's Quest V).