Da Tetris a Doom, fino a Linux: quali saranno i prossimi passi?
Riassunto: All’inizio dello scorso mese, qualcuno ha sfruttato il supporto di JavaScript nel formato PDF per eseguire Tetris all’interno di quello che dovrebbe essere un normale documento di testo. Pochi giorni dopo, uno studente delle superiori ha migliorato questo hack facendo girare Doom all’interno di un file PDF. Lo stesso sviluppatore ha ora potenziato il codice per far girare l’intero sistema operativo Linux.
A poco più di un mese dal rilascio di una versione di Doom eseguibile dentro un PDF, lo studente e programmatore “Ading2210” è riuscito a emulare Linux all’interno del popolare formato di file. Sebbene le prestazioni siano limitate, il progetto ridefinisce le potenzialità degli strumenti JavaScript per PDF. Gli utenti possono provarlo qui utilizzando browser basati su Chromium come Chrome, Edge e Opera. Il codice sorgente è disponibile sulla pagina GitHub dello sviluppatore.
LinuxPDF funziona in un emulatore RISC-V basato su TinyEMU. Il suo funzionamento è molto simile a quello di DoomPDF di Ading2210. Ad esempio, i comandi ripetono il trucco introdotto dal precedente hack di Tetris PDF, riutilizzando il codice della porta di Doom. Gli utenti possono cliccare sui tasti virtuali sotto lo schermo principale, ma molti preferiranno probabilmente i controlli diretti della tastiera, che funzionano interpretando gli input in un campo di testo.
Anche se il formato PDF è stato principalmente progettato per mostrare testo e immagini, può anche eseguire codice JavaScript. Adobe Acrobat include l’intera specifica JavaScript, abilitando funzionalità come la renderizzazione 3D, il rilevamento del monitor e le richieste HTTP.
I PDF eseguiti nei browser utilizzano una versione più limitata, ma è sufficientemente valida per eseguire giochi e sistemi operativi. Ading2210 ha scoperto che una vecchia versione di Emscripten che punta ad asm.js invece che a WebAssembly può compilare codice C per essere eseguito all’interno del formato di file.
Come DoomPDF, anche l’emulazione di Linux soffre di prestazioni lente. L’avvio del kernel può richiedere fino a un intero minuto – circa 100 volte più lungo rispetto a un sistema Linux tradizionale. Secondo Ading2210, questo purtroppo non può essere risolto perché Chromium utilizza una versione di V8 che non supporta il compilatore JIT.
Il file system è di default a 32-bit. Tuttavia, gli utenti possono compilare una versione a 64-bit dal codice sorgente clonando il repository all’interno di un vero sistema Linux, modificando la linea “BITS” e scaricando la versione 1.39.20 di Emscripten. Sfortunatamente, far girare la versione a 64-bit raddoppia il deficit di prestazioni.
Gli utenti interessati ad un’applicazione Linux più pratica per hardware di fascia bassa possono provare il ChromeOS RMA Shim Bootloader di Ading2210. La collezione di script permette di eseguire una distro Debian completa su un Chromebook senza modificare il firmware. Il progetto supporta anche i dispositivi aziendali iscritti.
Messaggi simili:
- Doom Sfida l’Impossibile: Funziona nel Sistema di Tipi di TypeScript!
- Scopri Tutto: Le Ultimissime Notizie Che Non Puoi Perdere!
- BlueStacks Air: Rivoluziona il Gaming su Mac con il Nuovo Emulatore Android!
- PlayStation 3 Emulatore ora compatibile con dispositivi Arm, incluso Raspberry Pi 5!
- Scopri “Bouncing Beholder”, il platformer completo in soli 1024 byte!

Nicola Costanzo esplora il mondo della tecnologia e dell’innovazione. I suoi articoli illuminano le sfide digitali che plasmano il nostro futuro.