Linux läuft innerhalb eines PDF-Dokuments

Linux läuft innerhalb eines PDF-Dokuments

Linux läuft sogar in einem PDF.

Linux läuft sogar in einem PDF.

LinuxPDF

Ein High-School-Schüler hat ein kleines Linux-System in ein PDF-Dokument geschmuggelt, das einige herkömmliche Dokumentenbetrachter sogar ausführen können. Möglich macht das JavaScript und eine RISC-Emulation.

PDF-Dokumente umfassen nicht nur Texte und Grafiken, sie dürfen auch Programmcode in der Programmiersprache JavaScript enthalten. Den wiederum führen dann die PDF-Betrachter beim Öffnen des Dokuments aus. Die Möglichkeiten für Entwickler sind dabei erstaunlich weitreichend, was sich auch ein findiger Schüler namens Allen zunutze gemacht hat.

Zunächst knöpfte er sich den in C implementierten RISC-V-Emulator TinyEMU vor und wandelte dessen Quellcode mithilfe des Werkzeugs Emscripten in JavaScript-Code um. Da aktuelle Emscripten-Versionen nur noch Webassembly-Code generieren, musste er auf eine ältere Version des Tools zurückgreifen.

Den in JavaScript vorliegenden RISC-V-Emulator bettete Allen schließlich in das PDF ein, wo er wiederum ein minimales Linux-System ausführt. Die Grafikausgabe erfolgt in Form von ASCII-Zeichen in ein großes Textfeld. Punkte simulieren dabei die Pixel auf einem Schwarzweißbildschirm. Die Eingaben nimmt eine virtuelle Tastatur entgegen.

Durch die RISC-V-Emulation und JavaScript läuft das Linux-System extrem langsam, bereits der Bootvorgang dauert mehrere Sekunden. Wer es selbst ausprobieren möchte, kann das fertige PDF auf GitHub herunterladen und beispielsweise in Chromium öffnen. In Firefox gelingt die Ausführung hingegen (noch) nicht.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben