JSLinux
(bellard.org)- O JSLinux é uma lista de VMs que permite executar Linux e outros sistemas operacionais diretamente no navegador, mostrando também CPU, UI, VFsync e até arquivos de configuração
- Os itens executáveis são divididos em x86_64, x86 e riscv64, e incluem Alpine Linux, Buildroot, Fedora 33, Windows 2000 e FreeDOS
- O console do x86_64 Alpine Linux 3.23.2 inclui suporte a AVX-512 e APX, enquanto o x86 Alpine Linux 3.12.0 é oferecido separadamente em versões Console e X Window
- Ambientes gráficos ou X Window são oferecidos para Windows 2000, FreeDOS, Alpine Linux, Buildroot e Fedora 33; alguns menus do X Window são abertos com o botão direito do mouse
- O item riscv64 Fedora 33 traz um aviso de que o tempo de boot é mais longo, e o Windows 2000 tem um aviso de isenção separado vinculado, sem acesso VFsync
Lista de VMs executáveis no navegador
- O JSLinux oferece uma lista de sistemas emulados que executam Linux ou outros sistemas operacionais no navegador
- Cada item é composto por CPU, sistema operacional, interface de usuário, disponibilidade de acesso VFsync, link de início, arquivo de configuração e observações
- A tabela também mostra a disponibilidade de acesso ao VFsync e links de configuração relacionados ao TEMU
Itens executáveis por CPU e sistema operacional
-
x86_64
- Alpine Linux 3.23.2 Console
- Acesso VFsync disponível
- Arquivo de configuração: alpine-x86_64.cfg
- Inclui suporte a AVX-512 e APX
- Alpine Linux 3.23.2 Console
-
x86
- Alpine Linux 3.12.0 Console
- Acesso VFsync disponível
- Arquivo de configuração: alpine-x86.cfg
- Alpine Linux 3.12.0 X Window
- Acesso VFsync disponível
- Arquivo de configuração: alpine-x86-xwin.cfg
- Use o botão direito do mouse nos menus
- Windows 2000 Graphical
- Sem acesso VFsync
- Arquivo de configuração: win2k.cfg
- Um aviso de isenção está vinculado
- FreeDOS VGA Text
- Sem acesso VFsync
- Arquivo de configuração: freedos.cfg
- Alpine Linux 3.12.0 Console
-
riscv64
- Buildroot Linux Console
- Acesso VFsync disponível
- Arquivo de configuração: buildroot-riscv64.cfg
- Buildroot Linux X Window
- Acesso VFsync disponível
- Arquivo de configuração: buildroot-riscv64-xwin.cfg
- Use o botão direito do mouse nos menus
- Fedora 33 Linux Console
- Acesso VFsync disponível
- Arquivo de configuração: fedora33-riscv.cfg
- Há um aviso de que o tempo de boot é mais longo
- Fedora 33 Linux X Window
- Acesso VFsync disponível
- Arquivo de configuração: fedora33-riscv-xwin.cfg
- Há um aviso de que o tempo de boot é mais longo, e os menus usam o botão direito do mouse
- Buildroot Linux Console
2 comentários
Opiniões no Hacker News
Fabrice é realmente bom em criar software autossuficiente, e muitas vezes o resultado acaba ganhando vida própria
Um exemplo menos conhecido é que o emulador de terminal do JSLinux foi forkado algumas vezes e hoje é conhecido como xterm.js, tornando-se o emulador de terminal dominante para embutir na web
Agora ele está criando o verdadeiro sucessor do JSLinux, compilando o kernel e o espaço de usuário nativamente para Wasm, o que o torna muito mais rápido; para emulação de terminal, é claro, usa xterm.js
Se você gosta de demos cheias de bugs que talvez ainda não devessem ser compartilhadas, vale ver https://linux.tombl.dev, mas por enquanto há apenas um shell busybox, então é bom estar acostumado a usar
echo *em vez delsEu conhecia QEMU, ffmpeg, o trabalho relacionado a LTE e QuickJS, mas não sabia que xterm.js também tinha começado com ele
attempted to munmape um aviso do kernel como abaixoAparece um stack trace com coisas como
WARNING: CPU: 3 PID: 36 at kernel/exit.c:812 0x00000000,Comm: sh Not tainted 6.1.132, seguindo paravmlinux-NLTKI6YG.wasmeworker-MHWHWELT.jsParece que a maior parte foi reescrita, e provavelmente ficou melhor
https://github.com/xtermjs/xterm.js
https://github.com/chjj/term.js
Tentei em um MacBook, mas a entrada pelo teclado não era registrada
ps,cat,vieedtodos travamNão conheço bem o embedding do busybox, então não sei o que devo fazer
Fabrice é incrível. A quantidade de coisas que essa pessoa criou é realmente difícil de acreditar
Se eu tivesse criado apenas uma das coisas que ele fez, por exemplo apenas ffmpeg, QEMU ou tinyc, eu me orgulharia disso pelo resto da vida; ele, porém, simplesmente continua hackeando outras coisas legais
Celulares, sistemas operacionais, ambientes desktop, países, lojas de apps etc., tudo
Não há tantas máquinas virtuais que rodam no navegador
https://copy.sh/v86/
https://webvm.io/
https://bellard.org/jslinux/
https://jamesfriend.com.au/pce-js/ (https://github.com/jsdf/pce)
https://www.pcjs.org/ oferece suporte a muitos hardwares e sistemas operacionais (https://github.com/jeffpar/pcjs)
Para Mac OS, também há https://infinitemac.org/ (https://blog.persistent.info/2023/03/infinitemac-dot-org.htm...), https://jamesfriend.com.au/projects/basiliskii/BasiliskII-wo... e https://jamesfriend.com.au/pce-js/pce-js-apps/
https://amiga.oszx.co/
https://www.file-hunter.com/AMIGA/
https://www.file-hunter.com/MSX/ é MSX via WebMSX
Observando o extremo dos desenvolvedores absurdamente produtivos, isso cria um contraste interessante com dogmas como “uma função ou um arquivo nunca deve passar de x linhas”
quickjs.ctem 50 mil linhas e há funções com centenas de linhashttps://github.com/bellard/quickjs/blob/master/quickjs.c
Claro que abordagens diferentes fazem sentido dependendo do contexto
Eu também tenho uma memória de trabalho relativamente grande, então só mais tarde percebi que meus limites para tamanho de arquivos e funções eram muito maiores que os dos outros
Esse tipo de dogma é necessário quando várias pessoas precisam ler e escrever no mesmo arquivo
No começo intimida, mas com o editor certo é surpreendentemente fácil trabalhar nela. Só que muitos editores engasgam com arquivos tão grandes
O arquivo é muito grande, mas é organizado em alguma medida por significado; por exemplo, ao adicionar um novo método de iterador, o código relacionado fica perto, o que facilita o trabalho
Também depende da linguagem usada. Por exemplo, a JVM pode deixar de fazer inline de funções cujo número de instruções de bytecode passe de um determinado limite
Programadores que aplicam dogmas ao pé da letra podem ser prejudiciais
Kohei Tokunaga está criando a próxima geração dessa linhagem
https://ktock.github.io/container2wasm-demo/
Usa networking no navegador baseado em
fetchdo Emscripten ou um proxy WebSocket compatível com POSIXhttps://ktock.github.io/container2wasm-demo/amd64-debian-was...
https://github.com/container2wasm/container2wasm?tab=readme-...
Mexi no Windows 2000 pela primeira vez em 20 anos. Sei que a nostalgia pode embaçar a visão, mas com aquela UI eu voltaria agora mesmo
Foi realmente prazeroso ver uma barra de tarefas sem bagunça e um menu Iniciar simples, não abarrotado de recomendações inúteis e anúncios
Hoje é uma mistura de quatro gerações de toolkits de GUI, em que algumas interfaces seguem um estilo e outras seguem outro
“Windows 2000 Server named peak Microsoft. Readers say it's all been downhill since Clippy”
https://www.theregister.com/2025/04/11/windows_2000_best_mic...
https://news.ycombinator.com/item?id=43653421
Sinto que o open source, por natureza, alinha os interesses com os dos usuários e tem mecanismos para impedir a enshittification
Alguém sabe como Fabrice Bellard ganha dinheiro? A produção open source desse cara é realmente impressionante
É até difícil comparar se existe alguém em nível parecido. Imagino que a VMware tenha tentado contratá-lo, ou que o Google tenha tentado levá-lo para trabalhar com codecs de vídeo, V8, renderização do Chromium ou ffmpeg
Parece que a França produz um bom número de artistas de software ou contribuidores individuais extremamente talentosos, criativos e produtivos
Não sei se é algo francês, se vem do sistema educacional das Écoles ou se há outro motivo, mas chama a atenção
A tecnologia francesa tinha uma reputação meio parecida com a qualidade dos carros velhos da Renault, mas, na prática, não vi dessa forma. Na Renault e na Citroën, na verdade, acabei ficando impressionado
Em contraste, foi difícil trabalhar com engenheiros de software alemães, que tinham uma atitude muito forte de “se não foi feito por nós, não serve”. É apenas a minha generalização, claro
O problema do ecossistema tecnológico europeu é simples. Nós não somos bons em vender e otimizamos para eficiência de recursos. “Salário competitivo” muitas vezes acaba significando que, em hipótese alguma, se paga acima do preço de mercado
Os EUA otimizam para crescimento e aceitam salários mais altos, tentando amortizar o custo com o crescimento
Por fim, de onde eu venho, muita gente zomba dizendo que a imigração arruinou a França. Pode haver esse ponto de vista, mas também é verdade que a França atraiu fuga de cérebros de suas colônias e conseguiu pessoas extremamente competentes e produtivas
Meu orientador de mestrado também era da Costa do Marfim, e na Bootlin trabalhei com engenheiros de altíssimo nível cujos nomes não eram francófonos
Em https://barebox.org/webdemo, usam o JSLinux para permitir que usuários em potencial vejam a conveniência do shell do bootloader sem precisar gravá-lo em hardware real
É bom ver os vários forks mencionados aqui, e preciso conferir qual deles roda melhor o bareDOOM e se por acaso há algum em que o som funcione
O JSLinux serviu de inspiração na criação do Endor (https://endor.dev), e o trabalho dele com QEMU também vem servindo de base para muitos projetos de navegador relacionados a Wasm
A configuração de CORS está incorreta, então para funcionar normalmente é preciso acessar
https://bellard.org/jslinux/em vez do linkhttps://www.bellard.org/jslinux/.