# copy/v86

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/copy-v86).**

23,160 stars · 1,848 forks · JavaScript · BSD-2-Clause

## Links

- GitHub: https://github.com/copy/v86
- Homepage: https://copy.sh/v86/
- awesome-repositories: https://awesome-repositories.com/repository/copy-v86.md

## Topics

`emulator` `virtualization` `wasm` `x86`

## Description

v86 is a browser-based virtual machine and x86 hardware simulator that allows 16-bit and 32-bit operating systems to run directly within a web page. It functions as an x86 emulator for WebAssembly, simulating CPUs, memory, and storage devices to execute legacy software without original native hardware.

The project utilizes a WebAssembly just-in-time compiler to translate x86 machine code into WebAssembly modules for high-performance execution in the browser.

The system covers hardware emulation and lifecycle management, including the ability to boot from disk images, configure virtual hardware resources, and capture or restore complete machine states. It also includes networking and storage capabilities, such as proxy-based network routing, inter-instance communication, and host-guest file transfers. Additionally, the project provides observability tools for inspecting processor registers and capturing network traffic.

## Tags

### DevOps & Infrastructure

- [X86 Legacy Emulation](https://awesome-repositories.com/f/devops-infrastructure/execution-environments/legacy-runtime-simulators/legacy-environment-simulators/x86-legacy-emulation.md) — Simulates legacy x86 processor modes and BIOS environments to run 16-bit and 32-bit operating systems in a browser.
- [Emulated Network Connectivity](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure/networking-connectivity/emulated-network-connectivity.md) — Connects an emulated environment to a network via proxies or relays to enable seamless data transmission. ([source](https://copy.sh/v86))
- [Emulator Save State Management](https://awesome-repositories.com/f/devops-infrastructure/sandbox-lifecycle-management/snapshot-capture-and-restoration-managers/emulator-save-state-management.md) — Captures the current system condition and memory dumps to save the state of the emulated machine. ([source](https://copy.sh/v86/))

### Operating Systems & Systems Programming

- [x86 Binary Emulators](https://awesome-repositories.com/f/operating-systems-systems-programming/x86-binary-emulators.md) — Runs 16-bit and 32-bit x86 compatible operating systems directly within a web browser.
- [Browser-Based Hardware Emulation](https://awesome-repositories.com/f/operating-systems-systems-programming/browser-based-hardware-emulation.md) — Implements a full x86 hardware simulator including CPU and memory layouts directly in the browser.
- [Disk and Mount Management](https://awesome-repositories.com/f/operating-systems-systems-programming/disk-and-mount-management.md) — Attaches bootable media and storage images to the system to enable operating system loading. ([source](https://copy.sh/v86))
- [Hardware Component Simulation](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-component-simulation.md) — Simulates CPUs, memory, and storage devices to execute legacy x86 software without original native hardware.
- [Operating System Emulation](https://awesome-repositories.com/f/operating-systems-systems-programming/operating-system-emulation.md) — Executes 16-bit and 32-bit compatible operating systems using a virtualized x86 architecture. ([source](https://copy.sh/v86))
- [Operating System Virtualization](https://awesome-repositories.com/f/operating-systems-systems-programming/operating-system-virtualization.md) — Provides a virtualized environment to load disk images and run complete guest operating systems in a browser tab.
- [Browser-Based Virtualization Platforms](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/virtualization-platforms/virtualization-technologies/virtual-machines/linux-provisioning/browser-based-virtualization-platforms.md) — Provides a virtualized environment for booting disk images and managing hardware directly in a web page.
- [Hardware Resource Allocation](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/system-resource-management/hardware-resource-allocation.md) — Configures virtual hardware resources including memory capacity, video memory, and audio settings. ([source](https://copy.sh/v86/))
- [Virtual Disk Image Booting](https://awesome-repositories.com/f/operating-systems-systems-programming/virtual-disk-image-booting.md) — Boots guest operating systems from floppy, CD-ROM, or hard disk images using BIOS and kernel files. ([source](https://copy.sh/v86/))
- [Disk Image Layout Mappings](https://awesome-repositories.com/f/operating-systems-systems-programming/virtual-filesystem-mappings/disk-image-layout-mappings.md) — Maps binary disk images into emulated memory spaces for guest OS storage access.
- [Legacy System Preservation](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/legacy-system-preservation.md) — Enables the execution of legacy operating systems and software in modern browsers for preservation.
- [Virtual Hardware Customization](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/virtualization-platforms/virtualization-technologies/hardware-emulators/virtual-hardware-customization.md) — Defines emulated memory size, video memory, and boot order to match target hardware requirements. ([source](https://copy.sh/v86))
- [Guest-Host File Access](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/virtualization-platforms/virtualization-technologies/virtual-machines/guest-host-file-access.md) — Provides mechanisms to move files between the host browser environment and the emulated guest disk.

### Data & Databases

- [Virtual Storage Managers](https://awesome-repositories.com/f/data-databases/fault-tolerant-storage/virtual-storage-managers.md) — Manages virtual disk volumes and image persistence to provide a stable data environment for the guest OS. ([source](https://copy.sh/v86/debug.html))

### Programming Languages & Runtimes

- [x86-to-Wasm Translation](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/compiler-optimizations/just-in-time-compilation/x86-to-wasm-translation.md) — Implements a just-in-time compiler that translates x86 machine code into WebAssembly for high-performance browser execution.
- [x86-to-Wasm JIT Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/jit-compilation-engines/webassembly-jit-compilers/x86-to-wasm-jit-compilation.md) — Uses a JIT compiler to translate x86 instructions into WebAssembly for near-native performance in the browser.

### Development Tools & Productivity

- [VM Lifecycle Controls](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/workflow-execution/vm-lifecycle-controls.md) — Provides controls to pause, reset, or resume the emulated machine from a specific point in time. ([source](https://copy.sh/v86/debug.html))

### Networking & Communication

- [Network Traffic Routing](https://awesome-repositories.com/f/networking-communication/network-traffic-routing.md) — Directs guest network traffic through custom paths using proxy types and virtual devices. ([source](https://copy.sh/v86/))
- [Proxy Tunnels](https://awesome-repositories.com/f/networking-communication/proxy-tunnels.md) — Routes emulated guest network traffic through host-side proxies to provide internet connectivity.

### Software Engineering & Architecture

- [Machine State Serialization](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/persistence-and-serialization/state-serialization/state-snapshots/machine-state-serialization.md) — Serializes the entire CPU and memory state into a data blob for saving and restoring execution.
- [Machine State Restoration](https://awesome-repositories.com/f/software-engineering-architecture/plugin-version-management/machine-state-restoration.md) — Captures current machine status and reloads it later to resume execution from the exact same point. ([source](https://cdn.jsdelivr.net/gh/copy/v86@master/README.md))

### System Administration & Monitoring

- [Processor State Inspection](https://awesome-repositories.com/f/system-administration-monitoring/runtime-state-inspection/processor-state-inspection.md) — Allows for the inspection of processor registers and page tables to analyze the internal condition of the emulated system. ([source](https://copy.sh/v86/debug.html))
