Mai întâi Tetris, apoi Doom, acum Linux – Ce urmează?
Recapitulare: La începutul lunii trecute, cineva a folosit suportul JavaScript al formatului PDF pentru a rula Tetris în ceea ce ar trebui să fie în mod normal un document de text static. În mod previzibil, în câteva zile, un elev de liceu a modernizat hack -ul pentru a rula Doom într -un dosar PDF. Același dezvoltator a îmbunătățit acum codul pentru a rula întregul sistem de operare Linux.
Aproape la o lună după ce a dezvăluit un port de doom care rulează în interiorul unui PDF, elevul de liceu și programatorul „ADING2210” a emulat cu succes Linux în formatul popular de fișier. Deși performanța este limitată, proiectul redefinește ceea ce este posibil cu instrumentele JavaScript PDF. Utilizatorii îl pot încerca aici folosind browsere de crom precum Chrome, Edge și Opera. Codul sursă este disponibil pe pagina GitHub a dezvoltatorului.
LinuxPDF rulează într-un emulator RISC-V bazat pe Tinyemu. Lucrările sale interioare seamănă îndeaproape cu cele ale DOOMPDF ale ADING2210. De exemplu, intrările repetă trucul pionier de hack -ul Tetris PDF anterior, reutilizarea codului portului Doom. Utilizatorii pot face clic pe tastele virtuale de sub ecranul principal, dar cei mai mulți vor prefera probabil controalele directe ale tastaturii, care funcționează prin interpretarea intrărilor într -un câmp de text.
Deși formatul PDF a fost conceput în principal pentru a afișa text și imagini, acesta poate rula și codul JavaScript. Adobe Acrobat include întreaga specificație JavaScript, funcții de activare, cum ar fi redarea 3D, detectarea monitorului și solicitările HTTP.
PDF -urile care rulează în browsere folosesc o versiune mai limitată, dar este suficient de bun pentru a rula jocuri și sisteme de operare. ADING2210 a descoperit că o versiune veche de emscripten care vizează ASM.JS în loc de WebAssembly poate compila codul C pentru a rula în formatul fișierului.
La fel ca DOOMPDF, emulația Linux suferă de performanțe lente. Pornirea nucleului durează până la un minut complet – de aproximativ 100 de ori mai mult decât un sistem tradițional Linux. Potrivit ADING2210, acest lucru nu poate fi, din păcate, rezolvat, deoarece Chromium folosește o versiune de V8 care nu acceptă compilatorul JIT.
Sistemul de fișiere este în mod implicit pe 32 de biți. Cu toate acestea, utilizatorii pot construi o versiune pe 64 de biți din codul sursă prin clonarea depozitului într-un sistem Linux real, editarea liniei „BITS” și descărcarea versiunii Emscripten 1.39.20. Din păcate, rularea versiunii pe 64 de biți dublează deficitul de performanță.
Utilizatorii interesați de o aplicație Linux mai practică pentru hardware-ul low-end pot încerca Chromeos RMA Shim Bootloader de la Ading2210. Colecția de scripturi permite ca o distro debian completă să ruleze pe un Chromebook fără a modifica firmware -ul. Proiectul acceptă, de asemenea, dispozitivele de întreprindere înscrise.