Assim é possível executar o Windows 95 em um ESP32-S3 graças ao Tiny386.

Última atualização: 17/11/2025
autor: Isaac
  • O Tiny386 emula um i386 no ESP32-S3 e inicializa. Windows 95 com vídeo, rede e som.
  • Desempenho modesto: Bota Aproximadamente 4 minutos; funciona com Bloco de Notas, Paciência e Internet Explorer.
  • Código em C99 (aproximadamente 6 mil linhas de código), licença BSD-3; demonstração em WebAssembly disponível.
  • Suporte atual para JC3248W535; possível portabilidade para outros microcontroladores.

Windows 95 no ESP32-S3

O que parecia uma piada de fórum até pouco tempo atrás tornou-se realidade: Inicialização do Windows 95 em um ESP32-S3 Graças a um emulador x86 minimalista chamado Tiny386, em um pequeno kit de desenvolvimento com uma tela sensível ao toque de 3,5 polegadas, o sistema da Microsoft inicia, leva alguns minutos e funciona com dificuldades, mas abre o Bloco de Notas, permite jogar Paciência e até mesmo carregar um site antigo pela rede.

O responsável é o desenvolvedor He Chunhui (hchunhui), que construiu um Emulador i386 do zero no C99 e o adaptou para o microcontrolador da Espressif. O mais notável não é apenas que funcione, mas, de acordo com informações publicadas no GitHub, Hackster/Hackaday e em mídias especializadas, esta é provavelmente a primeira vez que alguém conseguiu executar o Windows em um microcontrolador da Espressif. Hardwares ESP32, após marcos anteriores como a inicialização de Linux 5.0 em outras placas ESP32 e uma imagem Linux 6.3 no Olimex ESP32-S3-DevKit-LiPo.

O que é Tiny386 e quem está por trás dele?

Tiny386 é, essencialmente, Um PC x86 virtual, escrito em C99 e projetado para ser portátil.Seu núcleo é um emulador de CPU. Intel i386 “simples e burro” — nas palavras do próprio autor — com um objetivo muito claro: executar o máximo possível de software de 16 e 32 bits sem sobrecarregá-lo com enorme complexidade.

A CPU virtual implementa o conjunto de instruções 80386 e adiciona Instruções para os processadores 486 e 586 onde são necessários para inicializar kernels Linux modernos e sistemas Windows contemporâneos daquela época. O kernel tem cerca de 6.000 linhas de código (LOC), o que é surpreendente considerando o que ele é capaz de lidar, e opcionalmente inclui Emulação de FPU x87 para softwares que necessitam disso.

Como qualquer projeto jovem, há lacunas a preencher. Na verdade, Funcionalidades como depuração, atribuição de tarefas de hardware e certas verificações de permissão estão ausentes.Ainda assim, a premissa permanece válida: para a maioria dos softwares clássicos de DOS/Windows 3.x/95 e até mesmo para inicializar um sistema Linux moderno, a implementação atual é adequada para a tarefa.

Como emular um PC i386 em um ESP32-S3

Para apreciar o mérito, vale a pena lembrar o que era um 80386: um Processador x86 de 32 bits com pipeline de seis estágios e MMU Integrado, lançado em meados da década de 80. Foi a base de toda uma era de PCs pessoais. laptops e até mesmo servidores, com modos reais e protegidos que marcaram a evolução do software.

Do lado oposto, o ESP32-S3 Trata-se de um microcontrolador atual e de baixo custo com dois núcleos Tensilica Xtensa LX7 a 240 MHz, conectividade Wi-Fi/Bluetooth e consumo de energia muito baixo. Embora a comparação não seja direta (a emulação sempre tem uma desvantagem), o poder bruto deste SoC e o suporte para memória PSRAM externa o tornam um forte concorrente. Elas permitem simular uma máquina 386 funcional. Com recursos básicos de gráficos, rede e som, tudo integrado ao próprio microfone.

O segredo está numa abordagem pragmática: a CPU é emulada de forma simples, As instruções essenciais foram adicionadas. que estavam ausentes em casos modernos, e o restante da experiência do PC é construído sobre periféricos virtuais já testados em outros projetos. Essa mistura de minimalismo e reciclagem inteligente é o que torna possível que o sistema inicialize o Windows 95 sem travar.

Periféricos e firmware emulados

Para completar o ecossistema de PCs, o Tiny386 utiliza código de TinyEMU e QEMU a fim de emular os componentes clássicos de uma máquina ISA do início da década de 90. BIOS O VGABIOS, por sua vez, vem do projeto SeaBIOS, que facilita a inicialização de sistemas sem depender de ROMs proprietárias.

A lista de periféricos suportados inclui componentes muito familiares para qualquer pessoa que já tenha mexido com emulação de PC clássico: controladores de interrupção, temporizadores, teclado, vídeo, disco, rede e áudio. Em detalhes:

  • Controlador de interrupção 8259 (PIC) e temporizador 8254 (PIT), essenciais para o sincronismo do sistema.
  • 8042 e controlador de teclado RTC CMOS Para relógio e configurações básicas.
  • VGA ISA com Bosch VBE para oferecer modos de vídeo compatíveis.
  • Controlador de disco IDE para armazenamento.
  • A placa de rede NE2000 ISA é uma veterana, amplamente utilizada e fácil de emular.
  • DMA ISA 8257, alto-falante para PC, Adlib OPL2 e Sound Blaster 16 para áudio.
  Eco de microfone ou som robótico: causas e soluções comprovadas

Graças a este catálogo, o sistema não só exibe gráficos e inicializa um ambiente Windows com uma interface, mas também Possui conectividade de rede. e pode reproduzir som com o Drivers adequado, o que completa a experiência do "PC antigo" de uma forma surpreendentemente completa.

Hardware de referência: JC3248W535 com ESP32-S3

A manifestação que capturou a atenção de todos percorre o Guia JC3248W535É uma placa de desenvolvimento com um ESP32-S3 e um LCD touchscreen de 3,5 polegadas. Este kit de desenvolvimento pode ser encontrado por cerca de US$ 25 a US$ 30 em sites como o AliExpress e, pelo que vimos, inclui tudo o que você precisa para jogar jogos de "pocket PC dos anos 90".

Um detalhe importante: a porta USB-C desta placa-mãe parece ter sido projetada para programação e refinadonão como um hospedeiro periférico USB padrão do ESP32-S3. Mesmo assim, com o periférico USB OTG do chip, pode-se imaginar uma configuração com um Hub USB ao qual você pode conectar um teclado e um mouse, criando um mini-386 com entrada por fio direta.

Atualmente, o apoio oficial ao projeto concentra-se nesta placa específica, e o autor indica que ESP32-S3 apenas Possui suporte nativo. A arquitetura do emulador, no entanto, prioriza a portabilidade: com um esforço razoável, ele poderia ser adaptado para outros microcontroladores e plataformas, abrindo caminho para mais formatos e telas.

Desempenho e experiência do usuário

A pergunta que todos fazem: como vai? A resposta curta é: “Funciona, com paciência.Na versão de demonstração pública, a inicialização completa do Windows 95 leva cerca de 4 minutos. Uma vez carregado, o sistema é lento, mas administrável: você pode abrir o Bloco de Notas, jogar Paciência e até mesmo iniciar o Internet Explorer.

A conectividade de rede está implementada, então o emulador pode Carregar sites básicosA demonstração mostra como abrir o info.cern.ch, o primeiro site da história, o que adiciona um toque delicioso de nostalgia à cena do Windows 95 rodando em um microchip que custava menos de 30 euros.

Em termos de desempenho, é compreensível que o sistema seja levado ao limite: a emulação adiciona sobrecarga e o ESP32-S3 não possui aceleração gráfica de nível de PC. Apesar disso, A sensação geral é de "usabilidade no limite". Não se trata apenas de um simples "o vídeo inicia e trava". Se você reproduzir o vídeo em velocidade dupla — uma dica popular entre aqueles que já o viram — ele se torna muito mais suportável.

Como curiosidade, o Tiny386 pode executar doomAquele clássico teste de "se não roda Doom, não presta". E graças aos dispositivos de som virtualizados (alto-falante do PC, Adlib OPL2 e SB16), o aspecto de áudio também é coberto o máximo possível dentro das limitações de hardware.

Sistemas operacionais e software suportados

O catálogo, que já foi apresentado em vídeo, inclui Windows 3.1 / 3.2 (com a variante chinesa do 3.1) e Windows 95. Além disso, o autor enfatiza que o Tiny386 “Deve executar a maioria dos softwares de 16/32 bits.”, e que com a expansão das instruções 486/586 é possível inicializar tanto kernels Linux relativamente modernos quanto o Windows NT da época.

Um detalhe muito interessante é que o Tiny386 é capaz de iniciar o kernel do Linux diretamentesem precisar acessar uma BIOS tradicional, o que simplifica alguns fluxos de trabalho de teste. Para explorar sem montar hardware, o projeto também oferece uma demonstração em WebAssembly que inicia o Windows 3.2 no navegador e menciona alternativas como FreeDOS ou JSLinux para aqueles que desejam comparar experiências de emulação na web.

No campo dos aplicativos, além do já mencionado Doom, os programas básicos do Windows 95 (Bloco de Notas, Paciência e Internet ExplorerEssas soluções se mostraram eficazes, com as óbvias limitações de desempenho. Isso é evidência suficiente para concluir que a integração entre os módulos de gráficos, entrada/saída e rede é razoavelmente boa.

  Tudo sobre arquivos temporários no Windows: o que são, para que servem e como excluí-los corretamente.

Como as entradas e portas são tratadas

Na placa JC3248W535, o uso de periféricos físicos é condicionado por USB-C para programaçãoPara superar esse obstáculo, na implementação atual, o teclado e o mouse podem ser redirecionamento via Wi-Fi em direção ao emulador, oferecendo controle sem a necessidade de portas dedicadas no kit de desenvolvimento.

Olhando para o futuro, não seria surpreendente ver construções que tirem proveito do ESP32-S3 USB OTG como um host, permitindo a criação de um hub para conectar teclados e mouses convencionais. Esse avanço facilitaria muito a interação sem depender de telas sensíveis ao toque ou soluções de entrada remota.

Recursos de licença, código e teste

O projeto foi publicado sob Licença BSD de 3 cláusulasIsso incentiva sua reutilização e portabilidade. O código-fonte completo está disponível no repositório do GitHub. instruções básicas de compilaçãodocumentação dos arquivos de configuração e, para quem tem pressa, imagens pré-compiladas Pronto para ser gravado.

Além da documentação técnica, existe um demonstração no navegador (GitHub Pages) que permite ter uma ideia de como o Windows 3.2 inicializa e como o sistema responde, sem a necessidade de qualquer hardware. Quem quiser se aprofundar também pode encontrar informações e discussões em sites como Hackster.io e Hackaday.io, e em comunidades como /r/hardware, onde essas façanhas tecnológicas retrô frequentemente geram conversas animadas.

Veículos de comunicação como CNX Software e Tom's Hardware noticiaram o desenvolvimento, destacando detalhes como o lista de periféricos emuladosA dependência do SeaBIOS para BIOS/VGABIOS e o estado atual de suporte para a placa JC3248W535. De fato, parte da disseminação se deu graças ao impulso da comunidade — graças a dicas como a de Zoobab —, o que explica a rapidez com que o projeto ascendeu à vanguarda do cenário maker.

Do Linux no AVR ao Windows 95 no ESP32-S3

Para colocar as coisas em perspectiva, aqueles que se lembram das tentativas de Inicializando o Linux em microcontroladores de 8 bits (como o AVR) não sabe quanto tempo isso pode levar. Comparado a isso, ver um ESP32-S3 emulando um 386 rodando Windows 95 parece "rápido" e, certamente, muito mais prático.

Conquistas anteriores também foram observadas no ecossistema ESP32: Linux 5.0 em placas ESP32 e, mais recentemente, uma imagem do Linux 6.3 no Olimex ESP32‑S3‑DevKit‑LiPoMas a chegada do Windows a esta família de microcomputadores marca um ponto de virada na exploração de limites, devido à peculiaridade do objetivo e à exigência de executar um ambiente gráfico clássico.

Limitações atuais e oportunidades de melhoria

A lista "ainda não" inclui o depurador integradoA sobrecarga de hardware e certas verificações de permissão, além dos inevitáveis ​​gargalos de desempenho inerentes à emulação pura, também são desvantagens. Outra desvantagem é que, por enquanto, o suporte oficial se limita ao JC3248W535Isso limita a variedade de telas e acessórios disponíveis como padrão.

Do lado positivo, a abordagem do Tiny386 é tão direta que existem Espaço livre para otimizaçãoMelhorias na memória externa (latências da PSRAM), ajustes na emulação da CPU, resolução de possíveis problemas críticos em periféricos gráficos ou de disco e utilização do USB OTG para aprimorar a experiência com dispositivos reais. Cada detalhe conta quando o orçamento do ciclo de desenvolvimento é tão limitado.

Preservação, educação e diversão retrô

Além da premissa do "porque podemos", projetos como este têm um valor educacional e de preservação significativo. Com o Tiny386, desenvolvedores e professores Eles conseguem reproduzir ambientes x86 históricos sem o hardware original, que está cada vez mais escasso e frágil, e fazem isso em uma plataforma ultrabarata e de baixo consumo de energia.

Para a comunidade, isso abre as portas para testar software antigo, documentando o comportamento de sistemas legados e organizando workshops onde é explicado, com exemplos tangíveis, como os modos real e protegido do 386 condicionaram o projeto de OS tais como o Windows 3.x/95 e a evolução do Linux.

Há também um aspecto cultural que não deve ser subestimado: é paradoxal — e muito curioso — que para “nos sentirmos poderosos” hoje em dia tenhamos que emular uma CPU dos anos 80 Em um microfone moderno, quando carregamos em nossos bolsos celulares milhares de vezes mais capazes do que os PCs originais, esse contraste ajuda a entender o quanto avançamos e por que a emulação é uma ferramenta tão poderosa.

  Pasta de downloads não abre no Windows 11: causas e soluções definitivas

Arquitetura interna: modos, memória e BIOS

Os modos combinados reais do i386 real e protegido, paginação e uma MMU que lançou as bases para o memória virtual Em PCs, o Tiny386 replica os aspectos críticos desse comportamento para fazer com que os sistemas operacionais se sintam "em casa", combinando a emulação da CPU com um conjunto de periféricos que respondem onde o software espera os bons e velhos sinais ISA.

Um pilar aqui é BIOS marítimoO BIOS e o VGABIOS utilizados são provenientes desta fonte. Isso garante a compatibilidade com rotinas de inicialização amplamente suportadas e evita a dependência de ROMs fechadas. Ao mesmo tempo, quando necessário, o emulador pode ignorar o BIOS e carregar o kernel do Linux diretamente, um atalho muito útil para testes.

Portabilidade e ecossistema

Por ter sido escrito em C99 e com um núcleo de CPU tão conciso, transportar Tiny386 Para outras plataformas, a tarefa torna-se simples: basta implementar a camada de E/S e adaptar a integração com o visor, a entrada e o armazenamento. O próprio autor destaca a portabilidade como o maior ponto forte do projeto.

Isso não só beneficia aqueles que desejam levar o projeto para outros micro ou SBCs, como também facilita o trabalho de terceiros. adicionar periféricosExperimente otimizações ou até mesmo crie interfaces específicas (por exemplo, para executar diretamente diferentes imagens do Windows ou distribuições retrô de DOS/Linux).

O que foi demonstrado até agora

A “prova de vida” do Windows 95 com Inicialização em aproximadamente 4 minutos É a principal atração, mas não a única. O Windows 3.1/3.2, a navegação básica na web (incluindo info.cern.ch), aplicativos do sistema e softwares icônicos como Doom também foram apresentados.

Em paralelo, existe um Demonstração de WebAssembly Ele inicia o Windows 3.2 no navegador, uma ótima maneira de experimentar a emulação sem soldar ou gravar nada. E para os mais experientes em tecnologia, o repositório oferece configurações e uma imagem pré-compilada para começar a usar o JC3248W535 com o mínimo de esforço.

Comparação com outras experiências no ESP32

agendar tarefas no linux com cron e at

Comparado a outras demonstrações como Linux no ESP32 "sem hardware", o salto para Windows 95 emulado Isso acrescenta um interesse especial: força a reprodução de uma pilha de drivers e gráficos mais caprichosa, e o enfrentamento de expectativas de interface que não existiam em uma inicialização por console.

A experiência com o Olimex ESP32‑S3‑DevKit‑LiPo e Linux 6.3 Isso demonstra que o ecossistema ESP32-S3 ainda tem espaço para surpreender. O Tiny386 expande essa fronteira para o território do Windows, fechando um ciclo que parecia reservado para placas de desenvolvimento mais poderosas, como o Raspberry Pi.

No final das contas, o que fica claro é que, com um pouco de engenhosidade, um microfone de baixo custo Ele pode se tornar uma máquina retrô bastante convincente, capaz de inicializar sistemas completos e nos dar uma verdadeira aula sobre a arquitetura de computadores dos anos 90.

Vista em seu conjunto, a história do Tiny386 engloba diversas conquistas: emulação i386 concisaOs principais periféricos estão bem integrados, a BIOS é de código aberto, a portabilidade foi projetada desde o início e há uma demonstração que, embora lenta, ensina o que importa: que o Windows 95 e o Linux podem ser executados em um ESP32-S3 com fidelidade mais do que decente.

E sim, há um certo encanto poético no fato de que, para reviver a "magia" do Windows 95 em 2025, não precisaremos usar um Pentium antigo, mas sim... um emulador de 6.000 linhas E um kit de desenvolvimento com tela sensível ao toque que cabe no seu bolso. A computação às vezes é muito mais divertida quando a nostalgia se mistura com a engenhosidade.

Tutorial da CLI do Arduino
Artigo relacionado:
Tutorial completo do Arduino CLI: instalação, uso e dicas