
Segurança 07 Fev
07 de fevereiro de 2025 5
Cada vez mais popular graças a projetos como o Steam Deck e a futura distribuição do SteamOS para o público, o Linux é um sistema muito versátil por ser completamente aberto e permitir experimentos bem peculiares. Mais um desses experimentos chamou atenção nesta semana: um jovem desenvolvedor conseguiu fazer com que uma distribuição Linux rodasse em um arquivo PDF, usando métodos bastante engenhosos.
O estudante do ensino médio e desenvolvedor Allen, também conhecido como Ading2210, já havia atraído os holofotes ao lançar o projeto DoomPDF que, como o nome indica, fazia com que o game original de DOOM fosse reproduzido em PDF. Baseado nesse trabalho, foi criado então o LinuxPDF, no qual uma distribuição Linux compacta é reproduzida nesse tipo de arquivo — o projeto possui apenas 6 MB, atestado do tamanho muito reduzido do sistema.
É provável que, ao ouvir falar de arquivos PDF, venha à mente que esse formato serve exclusivamente para documentos. No entanto, conforme explica Allen, trata-se de uma solução bem mais abrangente. "A especificação completa do Javascript nos PDFs foi implementada apenas pelo Adobe Acrobat, e contém algumas coisas ridículas como a habilidade de renderizar [objetos] 3D, realizar solicitações HTTP, e detectar todos os monitores conectados ao sistema do usuário", afirma o desenvolvedor.
portable distro format
— Ivan Torres (@pinguxx) February 7, 2025
LinuxPDF from the creator of doom.pdf
risc-v emulator
🦁 pic.twitter.com/NL2wtPi8wZ
No entanto, por questões de segurança, o Google Chrome, o Microsoft Edge e todos os navegadores baseados no motor Chromium desabilitam quase todas essas capacidades. Ainda assim, há algumas formas de contornar esse bloqueio, caminho usado pelo estudante para conseguir fazer com que uma distro Linux pudesse ser reproduzida.
A explicação demanda um conhecimento mais técnico, mas basicamente envolve usar uma versão diferente do Emscripten (compilador de código na linguagem C) para reproduzir um set de instruções de Javascript diferente. A partir daí, é implementado o TinyEMU, emulador de instruções em RISC-V que é empregado então para rodar o sistema dentro do arquivo.
Apesar de ser funcional, o projeto tem algumas limitações resultantes dos bloqueios do Chromium: os comandos precisam ser dados em um teclado virtual dentro do arquivo, e o desempenho do Linux acaba sendo "mais de 100 vezes mais lento" que o normal, já que o compilador Just-in-Time (JIT), que envia comandos diretamente ao processador para agilizar a execução de códigos, está desabilitado por medidas de segurança.
De toda forma, conseguir rodar um sistema operacional, mesmo que em uma versão simplificada, em um arquivo PDF é uma conquista e tanto. O projeto completo está disponível no GitHub de Ading2210 e pode tanto ser testado, desde que seja executado em um navegador baseado em Chromium, quanto modificado a partir dos códigos disponibilizados de forma aberta pelo desenvolvedor.
Celular mais rápido! Ranking TudoCelular com gráficos de todos os testes de desempenho
Celular com a melhor bateria! Ranking TudoCelular com todos os testes de autonomia
Nada de Black Fraude! Ferramenta do TudoCelular desvenda ofertas falsas
Microsoft destaca novos recursos na build 26100.1876 do Windows 11 24H2
Comentários