- JSLinux, que permite executar Linux e outros sistemas operacionais diretamente no navegador, agora também oferece suporte à arquitetura x86_64
- Também foram adicionados suportes a AVX2, AVX-512 e APX, tornando-o atualmente o único emulador público de sistema completo x86 com suporte a APX
- Baseado em Alpine Linux 3.23.2, inclui extensões de instruções AVX-512 e Intel APX
- Além dos sistemas existentes baseados em x86 e RISC-V, agora também pode ser executado em ambiente de 64 bits
- Cada sistema oferece uma interface de console ou X Window, e alguns suportam acesso a arquivos por meio de VFsync
- Com o avanço das tecnologias de virtualização baseadas em navegador, ficou ainda mais fácil experimentar sistemas operacionais e montar ambientes de teste
Visão geral do JSLinux
- JSLinux é um emulador baseado na web que permite executar Linux e outros sistemas operacionais dentro do navegador
- O usuário pode executar máquinas virtuais em uma página web sem instalação separada
- É possível escolher entre várias arquiteturas de CPU e configurações de sistema operacional
Lista de sistemas compatíveis
- x86_64: versão de console do Alpine Linux 3.23.2 disponível
- x86: suporte a vários sistemas, como Alpine Linux 3.12.0, Windows 2000 e FreeDOS
- riscv64: suporte a Buildroot Linux e Fedora 33
- Cada sistema oferece um link de inicialização e pode ser configurado por meio de um arquivo de configuração TEMU
- Alguns sistemas podem se integrar a sistemas de arquivos externos por meio de VFsync
- Todas as configurações são desenvolvidas e mantidas por Fabrice Bellard
3 comentários
O criador Fabrice Bellard merece ser elogiado toda vez que sai um texto relacionado (nascido em 1972)
Em 1987, aos 15 anos, desenvolveu o compactador executável LZEXE em assembly
Em 2000, desenvolveu o FFMPEG e, no mesmo ano, criou um compilador C com menos de 4 KB, vencendo a IOCCC
Em 2005, apresentou o QEMU
Em 2011, lançou o JSLinux e continua evoluindo-o até hoje
"Fique milionário e se aposente"
O suporte a x86 de 64 bits foi anunciado em janeiro, e a atualização desta vez traz suporte a AVX2, AVX-512 e APX.
Comentários no Hacker News
O que eu mais quero fazer é usar um motor Linux em WASM para rodar um SO virtual diretamente no navegador e executar um agente de programação
Acho que seria muito interessante conectá-lo a um agente que saiba lidar com Bash e ferramentas Linux, como Claude Code ou Codex CLI
Considero o navegador o melhor ambiente de sandbox. Se desse para rodar um loop de agente sobre Linux em WebAssembly, seria um truque incrível
Já experimentei antes com a demo do v86, mas ainda não cheguei à parte de conectar um agente. Dá para enviar comandos Linux por uma caixa de texto
Mas o desempenho ainda deixa um pouco a desejar, então não fui muito a fundo
A demo da stack completa está em vitedemo.browserpod.io, e um trabalho anterior pode ser visto em webvm.io
Por curiosidade, rodei o benchmark Primes no Chrome de um Mac Mini M1 para cada ambiente: x86_64, x86 e riscv64
O RISC-V teve uma eficiência de emulação muito melhor do que x86 — build mais rápida, código menor e execução mais rápida
Mas as versões do gcc eram diferentes em cada caso (15.2.0 vs 9.3.0 vs 7.3.0), então não é uma comparação totalmente justa
Código de referência
Fugindo um pouco do assunto, foi muito bom ver a interface do Windows 2000 de novo. As UIs de hoje me parecem realmente horríveis
Infelizmente, o código-fonte da camada de emulação para x86 de 64 bits e as configurações de build não foram divulgados
Se você quiser uma versão mais open source, vale olhar o container2wasm
Fico me perguntando se o JSLinux ainda é um interpretador ou se agora faz compilação JIT
Ou talvez o JIT dos engines de JS tenha ficado tão bom que essa distinção já não faça mais sentido
Parece haver um problema de DNS. Queria saber se deixei passar alguma coisa
Impressiona que ele suporte até AVX512. Quero muito tentar adicionar isso também ao QEMU
A propósito, os patches relacionados a APX estão aqui
O trabalho do Fabrice Bellard sempre impressiona
Com o suporte a x86_64, abre-se a possibilidade de rodar distribuições Linux modernas no navegador
No mês passado, adaptei o x86_64 JSLinux para conseguir rodar TempleOS — ring0.holyc.xyz
Roda mais rápido do que a minha demo. Mesmo sem JIT, parece mágica de verdade
Usei a imagem x86_64 Alpine do JSLinux no Chrome por 4 horas
Baixei código com git, compilei pacotes grandes e até rodei testes, e ficou totalmente estável
É 50 vezes mais lento do que nativo, mas ainda assim é impressionante ver uma VM tão robusta rodando dentro do navegador