Repolode
copy

copy/v86

Um emulador de PC x86 que roda no navegador e traduz código de máquina para WebAssembly em tempo de execução para iniciar sistemas operacionais reais.

Estrelas
23,609
Forks
1,924
Issues abertas
116
Último commit
há 3 dias

O que é?

O v86 emula uma CPU compatível com x86 e um conjunto de componentes de hardware de PC, incluindo uma placa VGA, teclado e mouse PS/2, controladoras IDE e de disquete, um barramento PCI, dispositivos de rede NE2000 e virtio e uma placa de som SoundBlaster 16. O código de máquina é traduzido para módulos WebAssembly em tempo de execução para oferecer um desempenho razoável dentro de uma aba do navegador.

O projeto é voltado à execução de sistemas operacionais antigos e de hobby no navegador. A documentação lista sistemas convidados que funcionam, incluindo várias distribuições Linux, FreeDOS, MS-DOS, Windows 95 até 2000, ReactOS, Haiku e FreeBSD; algumas versões do Windows XP e posteriores funcionam apenas em certas condições. As imagens de disco são carregadas por URLs, e o emulador pode ser incorporado a uma página web usando libv86.js ou o pacote npm v86.

O emulador oferece uma API JavaScript para controlar o console serial, salvar e restaurar o estado e configurar a rede entre instâncias. Também é possível compilá-lo localmente com Rust e Make, gerando uma versão de depuração ou uma versão otimizada.

Recursos principais

  • 01Emula uma CPU x86 até aproximadamente o nível de um Pentium 4, com suporte a SSE3
  • 02Traduz código de máquina para WebAssembly em tempo de execução
  • 03Inclui VGA com extensões SVGA e Bochs VBE, além de teclado e mouse PS/2
  • 04Oferece opções de rede virtio, NE2000 e modem discado
  • 05Permite salvar e restaurar o estado do emulador
  • 06Pode ser incorporado usando libv86.js ou o pacote npm

Casos de uso

  • Executar sistemas operacionais retrô, como Windows 95 ou MS-DOS, em uma página web
  • Demonstrar ou ensinar como funcionam um PC e o processo de inicialização do x86
  • Incorporar um ambiente Linux ou DOS isolado em uma ferramenta baseada no navegador
  • Estudar emulação de CPU e tradução dinâmica de binários para WebAssembly

Início rápido

  1. 1

    Instale o pacote npm

    npm install v86
  2. 2

    Incorpore o emulador em uma página da web usando o construtor V86, conforme mostrado no exemplo da API no README

Antes de usar

  • Sistemas operacionais convidados de 64 bits não são compatíveis.
  • A emulação multinúcleo não é compatível.
  • Para compilar a partir do código-fonte, são necessários Rust, clang, Java e Node.js, além de outras ferramentas.
  • Alguns sistemas operacionais, como Plan 9 e OS/2, não funcionam.

Tópicos

Perguntas frequentes

O que é v86?
Um emulador de PC x86 que roda no navegador e traduz código de máquina para WebAssembly em tempo de execução para iniciar sistemas operacionais reais. O v86 emula uma CPU compatível com x86 e um conjunto de componentes de hardware de PC, incluindo uma placa VGA, teclado e mouse PS/2, controladoras IDE e de disquete, um barramento PCI, dispositivos de rede NE2000 e virtio e uma placa de som SoundBlaster 16. O código de máquina é traduzido para módulos WebAssembly em tempo de execução para oferecer um desempenho razoável dentro de uma aba do navegador.
v86 é gratuito? Qual é a licença?
v86 é open source sob a licença BSD-2-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
v86 ainda é mantido?
Manutenção ativa. O último commit de v86 foi em 18 de out. de 2026.
Para que posso usar v86?
Executar sistemas operacionais retrô, como Windows 95 ou MS-DOS, em uma página web Demonstrar ou ensinar como funcionam um PC e o processo de inicialização do x86 Incorporar um ambiente Linux ou DOS isolado em uma ferramenta baseada no navegador Estudar emulação de CPU e tradução dinâmica de binários para WebAssembly
Como instalar v86?
Instale o pacote npm: npm install v86 Incorpore o emulador em uma página da web usando o construtor V86, conforme mostrado no exemplo da API no README
Onde consigo v86?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/copy/v86

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados