Von : Max Jäger

Aktualisiert am :

Linux im PDF: Entdecken Sie das Minimalsystem, das direkt in Ihrem Dokument läuft!

Startseite » Unterhaltung » Linux im PDF: Entdecken Sie das Minimalsystem, das direkt in Ihrem Dokument läuft!

Doom kann auf fast allem laufen, sogar in einem PDF – warum also nicht auch Linux? Das überlegte sich ein findiger Entwickler und integrierte ein minimalistisches System in einen PDF-RISC-V-Emulator.

Es ist bekannt, dass das Videospiel „Doom“ auf fast jeder Plattform spielbar ist – vielleicht mit Ausnahme einer Scheibe Salami, aber selbst das könnte noch kommen. Jetzt hat ein Entwickler es geschafft, den Linux-Kernel in eine PDF-Datei zu packen – nicht nur als lesbaren Quellcode, sondern als lauffähiges Betriebssystem.


Der Anstoß für dieses Projekt kam von der Doom-Implementierung in einem PDF, die Mitte Januar bekannt wurde. Der Entwickler ading2210 erklärt, dass LinuxPDF auf einer ähnlichen Basis funktioniert. Der Kern liegt dabei in JavaScript, das in PDFs genutzt werden kann. Die Unterstützung in modernen Webbrowsern wie Chrome und Firefox ist jedoch eingeschränkt, da sie aus Sicherheitsgründen nur einen Teil der verfügbaren APIs zulassen. Trotzdem reicht dies aus, um jede gewünschte Berechnung durchzuführen, allerdings mit eingeschränktem Input und Output.

Eine ältere Version von Emscripten (ein Compiler von LLVM zu Web) ermöglicht es, das Ergebnis als „asm.js“ statt als WebAssembly zu exportieren. Damit konnte ading2210 eine angepasste Version des TinyEMU-RISC-V-Emulators in „asm.js“ umwandeln, die innerhalb eines PDF-Dokuments läuft.

Für die Darstellung der Ein- und Ausgabe nutzt ading2210 wiederverwendeten Code aus DoomPDF. Jede Zeile der Pixel wird durch ein eigenes Textfeld repräsentiert, das durch zahlreiche ASCII-Zeichen erzeugt wird. Zur Eingabe dient eine virtuelle Tastatur, am einfachsten ist es, das dafür vorgesehene Textfeld zu verwenden.

Siehe auch  Indiana Jones kehrt zurück: Ein episches Abenteuer erwartet die Fans!

Als Hauptproblem nennt ading2210 die Leistung des Emulators. Der Linux-Kernel benötige 30 bis 60 Sekunden zum Hochfahren, was mehr als hundertmal langsamer ist als üblich. Daran könne auch nichts geändert werden, da in der aktuellen Version der JavaScript-Engine V8 in der Chrome-PDF-Komponente der Just-in-Time-Compiler deaktiviert ist, was die Geschwindigkeit stark beeinträchtigt.

Der Entwickler ading2210 stellt fest, dass als Wurzeldateisystem sowohl 32-Bit- als auch 64-Bit-Versionen möglich sind. Standardmäßig wird das 32-Bit-Buildroot-System gestartet, das aus den TinyEMU-Beispielen stammt. Es gibt auch ein 64-Bit-Alpine-Linuxsystem, das jedoch nur mit halber Geschwindigkeit läuft, weshalb es normalerweise nicht verwendet wird. Interessierte können die Quellen im GitHub-Projekt forken und bearbeiten, es steht unter der GPLv3-Lizenz. Dort lässt sich auch das LinuxPDF direkt ausprobieren.

Ähnliche Artikel

Bewerten Sie den Artikel
Teilen Sie diesen Artikel :

Schreibe einen Kommentar