Repolode
copy

copy/v86

Эмулятор x86-ПК, работающий в браузере: он преобразует машинный код в WebAssembly на лету и загружает настоящие операционные системы.

Звёзды
23,609
Форки
1,924
Открытые issues
116
Последний коммит
3 дня назад

Что это?

v86 эмулирует совместимый с x86 процессор и набор компонентов ПК: видеокарту VGA, клавиатуру и мышь PS/2, контроллеры IDE и дискет, шину PCI, сетевые устройства NE2000 и virtio, а также звуковую карту SoundBlaster 16. Машинный код преобразуется в модули WebAssembly на лету, что обеспечивает приемлемую производительность в браузере.

Проект предназначен для запуска в браузере старых и любительских операционных систем. В документации перечислены работающие гостевые системы: различные дистрибутивы Linux, FreeDOS, MS-DOS, Windows 95–2000, ReactOS, Haiku и FreeBSD. Некоторые версии Windows XP и новее работают только при определённых условиях. Образы дисков загружаются по URL, а эмулятор можно встроить в веб-страницу с помощью libv86.js или npm-пакета v86.

У эмулятора есть JavaScript API для управления последовательной консолью, сохранения и восстановления состояния, а также настройки сетевого взаимодействия между экземплярами. Его также можно собрать локально с помощью Rust и Make — в отладочном или оптимизированном варианте.

Ключевые возможности

  • 01Эмулирует процессор x86 примерно на уровне Pentium 4 с поддержкой SSE3
  • 02Преобразует машинный код в WebAssembly на лету
  • 03Поддерживает VGA с расширениями SVGA и Bochs VBE, а также клавиатуру и мышь PS/2
  • 04Предлагает варианты сетевого подключения через virtio, NE2000 и модемное соединение
  • 05Поддерживает сохранение и восстановление состояния эмулятора
  • 06Позволяет встраивать эмулятор с помощью libv86.js или npm-пакета

Сценарии использования

  • Запускать ретро-операционные системы, например Windows 95 или MS-DOS, на веб-странице
  • Демонстрировать или изучать устройство ПК и процесс загрузки x86
  • Встраивать изолированную среду Linux или DOS в браузерный инструмент
  • Изучать эмуляцию процессоров и динамическую трансляцию двоичного кода в WebAssembly

Быстрый старт

  1. 1

    Установите npm-пакет

    npm install v86
  2. 2

    Встройте эмулятор в веб-страницу с помощью конструктора V86, как показано в примере API в README

Что важно знать

  • Гостевые операционные системы с 64-разрядной архитектурой не поддерживаются.
  • Многоядерная эмуляция не поддерживается.
  • Для сборки из исходного кода нужны Rust, clang, Java, Node.js и другие инструменты.
  • Некоторые операционные системы, например Plan 9 и OS/2, не работают.

Темы

Частые вопросы

Что такое v86?
Эмулятор x86-ПК, работающий в браузере: он преобразует машинный код в WebAssembly на лету и загружает настоящие операционные системы. v86 эмулирует совместимый с x86 процессор и набор компонентов ПК: видеокарту VGA, клавиатуру и мышь PS/2, контроллеры IDE и дискет, шину PCI, сетевые устройства NE2000 и virtio, а также звуковую карту SoundBlaster 16. Машинный код преобразуется в модули WebAssembly на лету, что обеспечивает приемлемую производительность в браузере.
v86 можно использовать бесплатно? Какая у него лицензия?
v86 распространяется с открытым исходным кодом под лицензией BSD-2-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
v86 всё ещё поддерживается?
Активно поддерживается. Последний коммит в v86 — 18 окт. 2026 г..
Для чего можно использовать v86?
Запускать ретро-операционные системы, например Windows 95 или MS-DOS, на веб-странице Демонстрировать или изучать устройство ПК и процесс загрузки x86 Встраивать изолированную среду Linux или DOS в браузерный инструмент Изучать эмуляцию процессоров и динамическую трансляцию двоичного кода в WebAssembly
Как установить v86?
Установите npm-пакет: npm install v86 Встройте эмулятор в веб-страницу с помощью конструктора V86, как показано в примере API в README
Где скачать v86?
Исходный код и инструкции по установке — на GitHub: https://github.com/copy/v86

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты