{"id":13432872,"url":"https://github.com/copy/v86","last_synced_at":"2026-04-20T08:07:42.088Z","repository":{"id":11651302,"uuid":"14158237","full_name":"copy/v86","owner":"copy","description":"x86 PC emulator and x86-to-wasm JIT, running in the browser","archived":false,"fork":false,"pushed_at":"2026-04-12T04:41:27.000Z","size":16039,"stargazers_count":22451,"open_issues_count":138,"forks_count":1745,"subscribers_count":338,"default_branch":"master","last_synced_at":"2026-04-12T06:21:38.205Z","etag":null,"topics":["emulator","virtualization","wasm","x86"],"latest_commit_sha":null,"homepage":"https://copy.sh/v86/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/copy.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-11-06T00:12:12.000Z","updated_at":"2026-04-12T04:47:04.000Z","dependencies_parsed_at":"2023-09-26T01:22:58.486Z","dependency_job_id":"4db1c681-fc53-487a-be78-4e69af95af8d","html_url":"https://github.com/copy/v86","commit_stats":{"total_commits":4202,"total_committers":87,"mean_commits":"48.298850574712645","dds":0.3169919086149453,"last_synced_commit":"5b2eee5919c804384349e9de3e12d750a3c4ee0d"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/copy/v86","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copy%2Fv86","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copy%2Fv86/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copy%2Fv86/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copy%2Fv86/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/copy","download_url":"https://codeload.github.com/copy/v86/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copy%2Fv86/sbom","scorecard":{"id":304507,"data":{"date":"2025-08-11","repo":{"name":"github.com/copy/v86","commit":"51bf5a63dcc34f806cdc3c182c383d770e76e0cf"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.7,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/19 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/ci.yml:145","Warn: no topLevel permission defined: .github/workflows/ci.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact latest not signed: https://api.github.com/repos/copy/v86/releases/234233354","Warn: release artifact latest does not have provenance: https://api.github.com/repos/copy/v86/releases/234233354"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 2-Clause \"Simplified\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/copy/v86/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/copy/v86/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/copy/v86/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/copy/v86/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:74: update your workflow using https://app.stepsecurity.io/secureworkflow/copy/v86/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:90: update your workflow using https://app.stepsecurity.io/secureworkflow/copy/v86/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:125: update your workflow using https://app.stepsecurity.io/secureworkflow/copy/v86/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:149: update your workflow using https://app.stepsecurity.io/secureworkflow/copy/v86/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:156: update your workflow using https://app.stepsecurity.io/secureworkflow/copy/v86/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:163: update your workflow using https://app.stepsecurity.io/secureworkflow/copy/v86/ci.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:169: update your workflow using https://app.stepsecurity.io/secureworkflow/copy/v86/ci.yml/master?enable=pin","Warn: containerImage not pinned by hash: .devcontainer/Dockerfile:1: pin your Docker image by updating library/node:lts-bookworm to library/node:lts-bookworm@sha256:5cc527147c43e671934c3530e9f66863162db5f57ce1ed0f227a3bb57b93cfab","Warn: containerImage not pinned by hash: tools/docker/alpine/Dockerfile:1: pin your Docker image by updating docker.io/i386/alpine:3.21.0 to docker.io/i386/alpine:3.21.0@sha256:7b0f18085272db228a5b32fd67f4de1e9690bfae60990971bdb0a324347e2401","Warn: containerImage not pinned by hash: tools/docker/exec/Dockerfile:1","Warn: containerImage not pinned by hash: tools/docker/exec/Dockerfile:12: pin your Docker image by updating python:3.10.13-alpine3.19 to python:3.10.13-alpine3.19@sha256:d75c7712b6161e93efa287df5fceedeaeeb2ef773f44a6b71efc6e42fec4666d","Warn: containerImage not pinned by hash: tools/docker/test-image/Dockerfile:1: pin your Docker image by updating ubuntu:21.04 to ubuntu:21.04@sha256:ba394fabd516b39ccf8597ec656a9ddd7d0a2688ed8cb373ca7ac9b6fe67848f","Warn: npmCommand not pinned by hash: .devcontainer/Dockerfile:6","Warn: downloadThenRun not pinned by hash: .devcontainer/Dockerfile:7","Warn: downloadThenRun not pinned by hash: tools/docker/exec/Dockerfile:6","Warn: downloadThenRun not pinned by hash: tools/docker/test-image/Dockerfile:3-12","Warn: npmCommand not pinned by hash: .github/workflows/ci.yml:17","Info:   0 out of   9 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   5 containerImage dependencies pinned","Info:   0 out of   2 npmCommand dependencies pinned","Info:   0 out of   3 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/ci.yml:137"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 13 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T21:40:52.585Z","repository_id":11651302,"created_at":"2025-08-17T21:40:52.586Z","updated_at":"2025-08-17T21:40:52.586Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32038493,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emulator","virtualization","wasm","x86"],"created_at":"2024-07-31T02:01:17.858Z","updated_at":"2026-04-20T08:07:42.058Z","avatar_url":"https://github.com/copy.png","language":"JavaScript","readme":"[![Join the chat at https://gitter.im/copy/v86](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/copy/v86) or #v86 on [irc.libera.chat](https://libera.chat/)\n\nv86 emulates an x86-compatible CPU and hardware. Machine code is translated to\nWebAssembly modules at runtime in order to achieve decent performance. Here's a\nlist of emulated hardware:\n\n- An x86-compatible CPU. The instruction set is around Pentium 4 level,\n  including full SSE3 support. Some features are missing, in particular:\n  - Task gates, far calls in protected mode\n  - Some 16 bit protected mode features\n  - Single stepping (trap flag, debug registers)\n  - Some exceptions, especially floating point and SSE\n  - Multicore\n  - 64-bit extensions\n- A floating point unit (FPU). Calculations are done using the Berkeley\n  SoftFloat library and therefore should be precise (but slow). Trigonometric\n  and log functions are emulated using 64-bit floats and may be less precise.\n  Not all FPU exceptions are supported.\n- A floppy disk controller (8272A).\n- An 8042 Keyboard Controller, PS2. With mouse support.\n- An 8254 Programmable Interval Timer (PIT).\n- An 8259 Programmable Interrupt Controller (PIC).\n- Partial APIC support.\n- A CMOS Real Time Clock (RTC).\n- A generic VGA card with SVGA support and Bochs VBE Extensions.\n- A PCI bus. This one is partly incomplete and not used by every device.\n- An IDE disk controller.\n  - A built-in ISO 9660 CD-ROM generator.\n- An NE2000 (RTL8390) PCI network card.\n- Various virtio devices: Filesystem, network and balloon.\n- A SoundBlaster 16 sound card.\n\n## Demos\n\n[9front](https://copy.sh/v86/?profile=9front) —\n[Arch Linux](https://copy.sh/v86/?profile=archlinux) —\n[Android-x86 1.6-r2](https://copy.sh/v86?profile=android) —\n[Android-x86 4.4-r2](https://copy.sh/v86?profile=android4) —\n[BasicLinux](https://copy.sh/v86/?profile=basiclinux) —\n[Buildroot Linux](https://copy.sh/v86/?profile=buildroot) —\n[Damn Small Linux](https://copy.sh/v86/?profile=dsl) —\n[ELKS](https://copy.sh/v86/?profile=elks) —\n[FreeDOS](https://copy.sh/v86/?profile=freedos) —\n[FreeBSD](https://copy.sh/v86/?profile=freebsd) —\n[FiwixOS](https://copy.sh/v86/?profile=fiwix) —\n[Haiku](https://copy.sh/v86/?profile=haiku) —\n[SkiffOS](https://copy.sh/v86/?profile=copy/skiffos) —\n[ReactOS](https://copy.sh/v86/?profile=reactos) —\n[Windows 2000](https://copy.sh/v86/?profile=windows2000) —\n[Windows 98](https://copy.sh/v86/?profile=windows98) —\n[Windows 95](https://copy.sh/v86/?profile=windows95) —\n[Windows 1.01](https://copy.sh/v86/?profile=windows1) —\n[MS-DOS 6.22](https://copy.sh/v86/?profile=msdos) —\n[OpenBSD](https://copy.sh/v86/?profile=openbsd) —\n[Oberon](https://copy.sh/v86/?profile=oberon) —\n[KolibriOS](https://copy.sh/v86/?profile=kolibrios) —\n[SkiftOS](https://copy.sh/v86?profile=skift) —\n[QNX](https://copy.sh/v86/?profile=qnx)\n\n## Documentation\n\n[How it works](docs/how-it-works.md) —\n[Networking](docs/networking.md) —\n[Alpine Linux guest setup](tools/docker/alpine/) —\n[Arch Linux guest setup](docs/archlinux.md) —\n[Windows NT guest setup](docs/windows-nt.md) —\n[Windows 9x guest setup](docs/windows-9x.md) —\n[9p filesystem](docs/filesystem.md) —\n[Linux rootfs on 9p](docs/linux-9p-image.md) —\n[Profiling](docs/profiling.md) —\n[CPU Idling](docs/cpu-idling.md)\n\n## Compatibility\n\nHere's an overview of the operating systems supported in v86:\n\n- Linux works pretty well. 64-bit kernels are not supported.\n  - [Buildroot](https://buildroot.org/) can be used to build a minimal image.\n    [humphd/browser-vm](https://github.com/humphd/browser-vm) and\n    [darin755/browser-buildroot](https://github.com/Darin755/browser-buildroot) have some useful scripts for building one.\n  - [SkiffOS](https://github.com/skiffos/SkiffOS/tree/master/configs/browser/v86) (based on Buildroot) can cross-compile a custom image.\n  - Ubuntu and other Debian derivatives works up to the latest version that supported i386 (16.04 LTS or 18.04 LTS for some variants).\n  - Alpine Linux works. An image can be built from a Dockerfile, see [tools/docker/alpine/](tools/docker/alpine/).\n  - Arch Linux 32 works. See [archlinux.md](docs/archlinux.md) for building an image.\n- ReactOS works.\n- FreeDOS, Windows 1.01 and MS-DOS run very well.\n- KolibriOS works.\n- Haiku works.\n- Android-x86 has been tested up to 4.4-r2.\n- Windows 1, 3.x, 95, 98, ME, NT and 2000 work reasonably well.\n  - In Windows 2000 and higher the PC type has to be changed from ACPI PC to Standard PC\n  - There are some known boot issues ([#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))\n  - See [Windows 9x guest setup](docs/windows-9x.md)\n- Windows XP, Vista and 8 work under certain conditions (see [#86](https://github.com/copy/v86/issues/86), [#208](https://github.com/copy/v86/issues/208))\n  - See [Windows NT guest setup](docs/windows-nt.md)\n- Many hobby operating systems work.\n- 9front works.\n- Plan 9 doesn't work.\n- QNX works.\n- OS/2 doesn't work.\n- FreeBSD works.\n- OpenBSD works with a specific boot configuration. At the `boot\u003e` prompt type\n  `boot -c`, then at the `UKC\u003e` prompt `disable mpbios` and `exit`.\n- NetBSD works only with a custom kernel, see [#350](https://github.com/copy/v86/issues/350).\n- SerenityOS works (only 32-bit versions).\n- [SkiftOS](https://skiftos.org/) works.\n\nYou can get some information on the disk images here: https://github.com/copy/images.\n\n## How to build, run and embed?\n\nYou need:\n\n- make\n- Rust with the wasm32-unknown-unknown target\n- A version of clang compatible with Rust\n- java (for Closure Compiler, not necessary when using `debug.html`)\n- nodejs (a recent version is required, v16.11.1 is known to be working)\n- To run tests: nasm, gdb, qemu-system, gcc, libc-i386 and rustfmt\n\nSee [tools/docker/test-image/Dockerfile](tools/docker/test-image/Dockerfile)\nfor a full setup on Debian or\n[WSL](https://docs.microsoft.com/en-us/windows/wsl/install).\n\n- Run `make` to build the debug build (at `debug.html`).\n- Run `make all` to build the optimized build (at `index.html`).\n- ROM and disk images are loaded via XHR, so if you want to try out `index.html`\n  locally, make sure to serve it from a local webserver. You can use `make run`\n  to serve the files using Python's http module.\n- If you only want to embed v86 in a webpage you can use `libv86.js`. For usage,\n  check out the [examples](examples/). You can download it from the [release section](https://github.com/copy/v86/releases).\n- For bundler-based setups (Vite/React/Next/Webpack), there is also an official npm package:\nhttps://www.npmjs.com/package/v86\n\n  This package was originally maintained by [@giulioz](https://github.com/giulioz) (bundler-optimized fork) and was made \"official\" for this repo by [@basicer](https://github.com/basicer) with the author's permission.\n  It is published automatically from this repository via GitHub Actions ([.github/workflows/ci.yml](.github/workflows/ci.yml), Upload release job) on pushes to `master` and uses `npm publish --provenance`.\n  \n  Install: `npm install v86`\n\n### Alternatively, to build using Docker\n\n- If you have Docker installed, you can run the whole system inside a container.\n- See `tools/docker/exec` to find the Dockerfile required for this.\n- You can run `docker build -f tools/docker/exec/Dockerfile -t v86:alpine-3.19 .` from the root directory to generate docker image.\n- Then you can simply run `docker run -it -p 8000:8000 v86:alpine-3.19` to start the server.\n- Check `localhost:8000` for hosted server.\n\n### Running via Dev Container\n\n- If you are using an IDE that supports Dev Containers, such as GitHub Codespaces, the Visual Studio Code Remote Container extension, or possibly others such as Jetbrains' IntelliJ IDEA, you can setup the development environment in a Dev Container.\n- Follow the instructions from your development environment to setup the container.\n- Run the Task \"Fetch images\" in order to download images for testing.\n\n## Testing\n\nThe disk images for testing are not included in this repository. You can\ndownload them directly from the website using:\n\n`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}`\n\nRun integration tests: `make tests`\n\nRun all tests: `make jshint rustfmt kvm-unit-test nasmtests nasmtests-force-jit expect-tests jitpagingtests qemutests rust-test tests`\n\nSee [tests/Readme.md](tests/Readme.md) for more information.\n\n## API examples\n\n- [Basic](examples/basic.html)\n- [Programatically using the serial terminal](examples/serial.html)\n- [A Lua interpreter](examples/lua.html)\n- [Two instances in one window](examples/two_instances.html)\n- [Networking between browser windows/tabs using the Broadcast Channel API](examples/broadcast-network.html)\n- [TCP Terminal (fetch-based networking)](examples/tcp_terminal.html)\n- [Saving and restoring emulator state](examples/save_restore.html)\n\nUsing v86 for your own purposes is as easy as:\n\n```javascript\nvar emulator = new V86({\n    screen_container: document.getElementById(\"screen_container\"),\n    bios: {\n        url: \"../../bios/seabios.bin\",\n    },\n    vga_bios: {\n        url: \"../../bios/vgabios.bin\",\n    },\n    cdrom: {\n        url: \"../../images/linux.iso\",\n    },\n    autostart: true,\n});\n```\n\nSee [starter.js](src/browser/starter.js).\n\n## License\n\nv86 is distributed under the terms of the Simplified BSD License, see\n[LICENSE](LICENSE). The following third-party dependencies are included in the\nrepository under their own licenses:\n\n- [`lib/softfloat/softfloat.c`](lib/softfloat/softfloat.c)\n- [`lib/zstd/zstddeclib.c`](lib/zstd/zstddeclib.c)\n- [`tests/kvm-unit-tests/`](tests/kvm-unit-tests)\n- [`tests/qemutests/`](tests/qemutests)\n- [`src/floppy.js/`](src/floppy.js) contains parts ported from qemu under the MIT license, see LICENSE.MIT.\n\n## Credits\n\n- CPU test cases via [QEMU](https://wiki.qemu.org/Main_Page)\n- More tests via [kvm-unit-tests](https://www.linux-kvm.org/page/KVM-unit-tests)\n- [zstd](https://github.com/facebook/zstd) support is included for better compression of state images\n- [Berkeley SoftFloat](http://www.jhauser.us/arithmetic/SoftFloat.html) is included to precisely emulate 80-bit floating point numbers\n- [The jor1k project](https://github.com/s-macke/jor1k) for 9p, filesystem and uart drivers\n- [WinWorld](https://winworldpc.com/) sources of some old operating systems\n- [OS/2 Museum](https://www.os2museum.com/) sources of some old operating systems\n- [ArchiveOS](https://archiveos.org/) sources of several operating systems\n\n## More questions?\n\nShoot me an email to `copy@copy.sh`. Please report bugs on GitHub.\n","funding_links":[],"categories":["JavaScript","Rust","Misc","By Language","Demo/Inspiration/Interesting","硬件_其他","emulator","wasm","OS","Operating Systems"],"sub_categories":["JavaScript","网络服务_其他"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcopy%2Fv86","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcopy%2Fv86","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcopy%2Fv86/lists"}