Uma toolchain de compilação que transforma código C e C++ em WebAssembly para execução em navegadores, Node.js e outros runtimes Wasm.
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
Instale o pacote npm
npm install v86 - 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
Uma implementação de FFmpeg em WebAssembly puro e JavaScript que permite gravar, converter e transmitir vídeo e áudio no navegador.
Framework Rust para criar aplicações web interativas no cliente, compiladas para WebAssembly, com uma macro semelhante a JSX para HTML.
Runtime WebAssembly e CLI para executar apps e código de agentes de IA em ambientes rápidos, leves e isolados.
Runtime independente de WebAssembly baseado no gerador de código Cranelift, com suporte a WASI e integração com aplicações em várias linguagens.
Uma linguagem e um compilador semelhantes a TypeScript que transformam um subconjunto tipado de TypeScript em módulos WebAssembly.