可以运行在浏览器的Windows 2000

Windows 2000 可以在浏览器里跑了,缺点就是速度慢。

点击这里在浏览器中运行 Windows 2000​​​​​​-

---------------------------------------------------------------------------------------------------------------------------------
可以运行在浏览器的Windows 2000_第1张图片

--------------------------------------------------------------------------------------------

JSLinux - 技术说明

历史

这个模拟器已经有很长的历史了。当前版本基于TinyEMU并使用emscripten编译为 Javascript 或 WASM 。

2011 年,我编写了 JSLinux 的初始版本,这是第一个运行 Linux 的 Javascript PC/x86 模拟器。我为 x86 助手和设备 重复使用了另一个模拟器 ( QEMU )的部分内容。

一段时间后(2015 年),我将其修改为使用asm.js Javascript 子集,以便在支持它的浏览器中速度更快。

2016 年,在编写了TinyEMU(最初是一个 RISC-V模拟器)后,我决定使用emscripten从其 C 代码制作一个 Javascript 版本。我添加了一个VirtIO 9P 文件系统,其灵感来自Sebastian Macke 的jor1k中 的文件系统,以便更轻松地使用远程文件系统以及导入或导出文件。

然后我发现将 VirtIO 设备重用于 x86 JS 模拟器很有趣,因此我将 JSLinux asm.js 代码转换为 C 代码,并使用emscripten将其转换回 Javascript !经过仔细调整,新版本现在比手工编码的 asm.js 版本更快。

下一步是运行 Linux 之外的另一个操作系统,例如 Windows NT。该模拟器的第一个版本在模拟的 Linux 系统中运行带有 QEMU 的 Windows NT。它仍然可用,因为 x86 模拟器支持 QEMU 使用的 x86 虚拟化扩展 (AMD SVM)。

当前版本的 JSLinux 通过模拟少数缺失的 PC 设备(PS/2 键盘和鼠标、IDE 磁盘、虚拟 VGA)来运行 Windows NT。

x86 CPU 仿真

模拟具有以下功能的 x86 CPU:

  • 奔腾级CPU
  • x87 位精确 80 位浮点数
  • PAE支持
  • CMOV指令
  • MMX 和 SSE2 支持
  • 具有嵌套页表支持的 AMD 虚拟机扩展 (SVM)
  • RDPMC支持读取指令计数

已知限制:

  • 访问内存时无段限制和权限检查
  • 无调试支持(DRx 寄存器)

模拟设备

  • 8259 可编程中断控制器
  • 8254 可编程中断定时器
  • 16450 UART(仅用于调试)
  • 实时时钟
  • PCI总线
  • VirtIO 控制台
  • VirtIO 9P 文件系统
  • VirIO网络
  • VirtIO块设备
  • VirIO输入
  • 简单的帧缓冲区
  • IDE 控制器(可选)
  • PS/2 键盘和鼠标(可选)
  • 虚拟 VGA 显示器(可选)

RISC-V CPU 仿真

使用 64 位 FPU 和压缩指令来模拟 32 位或 64 位 RISC-V CPU。

现在仅提供 RISC-V 64 位 Buildroot 和 Fedora 发行版。RISC-V 32 位映像仍然可用,但不再主动维护:

  • 带控制台的buildroot-riscv32。
  • 带有 X Window 的buildroot-riscv32 。

表现

在带有 Firefox 浏览器的典型台式电脑 (2017) 上,x86 模拟器的运行速度约为 100 MIPS。使用集成实用程序可以进行详细的基准测试vmtime

JavaScript 终端

它是原始 JSLinux 的改进版本。它有一个滚动条并支持 URL 高亮显示。

Linux发行版

它使用Alpine Linux 和Buildroot 发行版。为 vfsync、qemacs、tcc 添加了自定义包。Fluxbox窗口管理器提供可选的 X Window 支持 。

联网

模拟器内可以访问互联网。它使用 Benjamin Burns 提供的 websocket VPN(请参阅他的博客)。带宽上限为 40 kB/s,每个公共 IP 地址最多允许两个连接。请不要滥用该服务。

什么用途 ?

我这样做是为了好玩,只是因为 Javascript 引擎足够快,可以完成复杂的事情。实际用途可能是:

  • Javascript 引擎的基准测试(Javascript 引擎启动 Linux 需要多长时间?)以及新浏览器技术(asm.js、WASM)的使用。
  • 学习在不离开浏览器的情况下使用命令行 Unix 工具。
  • 浏览器内的安全文件访问 (vfsync)。
  • 运行旧的 PC 软件。

源代码

RISC-V 版本的源代码可在TinyEMU项目中获取。还提供预编译且易于安装的演示。

类似项目

还有其他几个 PC 或 Linux 模拟器可用。尤其:

  • jor1k:OpenRISC OR1K CPU 模拟器。
  • v86:PC 模拟器。
  • Angel:RISC-V CPU 模拟器。

你可能感兴趣的:(Windows,windows)