Hlavní obsah
IT pro Tebe

Linux běží přímo v PDF

Lukáš Erlebach
Foto: Freepik

Operační systém Linux

Když se řekne PDF, většina lidí si představí obyčejný statický soubor – text, obrázky, tabulky, maximálně interaktivní formuláře. Jenže tento formát umí mnohem víc. Už delší dobu podporuje JavaScript s vlastní standardní knihovnou, což mu dává překvapivé možnosti.

Reklama

Článek

V posledních letech vývojáři stále častěji experimentují s možnostmi, které PDF nabízí. Nedávno například Thomas Rinsma představil Tetris nebo dokonce Doom běžící přímo v souboru PDF. To už bylo dostatečně bizarní, ale nyní se posunul ještě dál. Podařilo se mu totiž v PDF spustit emulovaný Linux – což je něco, co by si většina lidí nikdy nedokázala představit.

Možná si říkáte, proč by to někdo dělal? Odpověď je jednoduchá: protože to jde. Tento experiment je fascinující ukázkou toho, jak lze obejít tradiční způsoby spouštění softwaru a jaké nečekané možnosti se skrývají ve formátech, které považujeme za nudné nebo neměnné. Spuštění operačního systému v dokumentu je sice spíše kuriozitou než praktickou záležitostí, ale ukazuje, jak se technologie neustále posouvá kupředu.

Jak se podařilo spustit Linux v PDF?

Klíčem k úspěchu byl emulátor TinyEMU RISC-V, který se Thomasu Rinsmovi podařilo upravit tak, aby běžel uvnitř PDF. Tento emulátor běžně slouží k běhu systémů založených na architektuře RISC-V, ale jeho verzi bylo nutné přizpůsobit velmi specifickým podmínkám.

Foto: Freepik

Línux v notebooku

Aby bylo možné TinyEMU spustit v PDF, bylo potřeba překompilovat jeho kód do asm.js, což je mezikrok mezi tradičním JavaScriptem a novějším WebAssembly (WASM). To se podařilo díky starší verzi nástroje Emscripten, který umožňuje překládání kódu napsaného v C/C++ do asm.js.

PDF soubory sice podporují JavaScript, ale běhové prostředí v prohlížečích je značně omezené – například prohlížeč Chrome má v PDF enginu vypnutý JIT kompilátor (Just-In-Time), což výrazně zpomaluje běh jakéhokoliv kódu. Výsledkem je, že Linux sice běží, ale velmi pomalu.

Grafický výstup a ovládání

Samotné zobrazení Linuxu v PDF bylo další technickou výzvou. Klasický výstup emulovaného systému (například konzole) se musel přizpůsobit prostředí PDF, kde neexistuje přímá podpora vykreslování pixelů jako v běžném okně prohlížeče.

Řešení? Každý řádek obrazovky se skládá z textových polí, jejichž obsah je nastaven na různé ASCII znaky. Tím se simuluje obrazovka s textovým výstupem. Uživatel tak vlastně vidí Linux běžící na jakési „textové matici“.

Ovládání je omezené, ale funkční. Vývojář implementoval jednoduchou virtuální klávesnici s několika tlačítky a textovým polem pro zadávání příkazů. Přestože je interakce pomalá a poněkud neohrabaná, umožňuje uživateli skutečně ovládat běžící systém.

Výkon: Největší překážka tohoto experimentu

Největší slabinou tohoto projektu je jeho extrémně nízký výkon. Spuštění linuxového jádra trvá v PDF přibližně 30 až 60 sekund, což je více než stokrát pomalejší, než kdyby běželo na běžném hardwaru nebo dokonce v tradičním emulátoru.

Důvodem je právě zmíněná absence JIT kompilace v prohlížečích. JavaScript v PDF je interpretován pomaleji než v klasickém webovém prostředí, což znamená, že i jednoduché operace zabírají mnohem více času. Praktická použitelnost takového Linuxu je proto velmi omezená.

Navzdory tomu jde o technicky velmi zajímavý experiment, který ukazuje, že PDF je mnohem mocnější formát, než si většina lidí uvědomuje.

Proč je tento experiment důležitý?

Na první pohled se může zdát, že běh Linuxu v PDF nemá žádné praktické využití. Ve skutečnosti však ukazuje několik důležitých aspektů:

  1. Schopnosti PDF – Formát, který považujeme za jednoduchý, umožňuje vykonávat i poměrně složité operace.
  2. Možnosti JavaScriptu – I bez WebAssembly lze v JavaScriptu spouštět náročné aplikace, i když s výraznými omezeními.
  3. Bezpečnostní otázky – Pokud lze v PDF spouštět kód, je namístě otázka bezpečnosti. Mohou se podobné triky zneužít k malwarovým útokům?
  4. Experimentování s emulací – Ukazuje, jak lze emulaci přizpůsobit netradičním podmínkám a spustit software i tam, kde by to nikdo nečekal.

Závěr: Linux v PDF jako kuriozita, ale i inspirace

Spuštění Linuxu v PDF je ukázkou programátorské kreativity a důvtipu. I když praktické využití je v současné době velmi omezené (kvůli výkonu), tento experiment otevírá zajímavé otázky o možnostech a budoucnosti formátu PDF.

Je možné, že podobné techniky najdou uplatnění v jiných oblastech – například při sandboxingu aplikací, vzdělávacích experimentech nebo interaktivních dokumentech s pokročilými funkcemi.

Zároveň tento projekt připomíná, že i zavedené technologie mohou překvapit. PDF, které mnozí považují za zastaralý a rigidní formát, se v rukou šikovných vývojářů stává nečekaně flexibilním prostředím, kde může běžet třeba i celý operační systém.

A kdo ví? Možná se v budoucnu setkáme s ještě bláznivějšími experimenty. Linux běžící v Excelu? Windows ve Wordu? Možnosti jsou nekonečné – stačí jen správně využít existující technologie.

Zdroj: Root.cz (odkaz)

Další články

Zaměstnanci tajně používají AI v práci

Umělá inteligence se pomalu, ale jistě stává neviditelným kolegou mnoha zaměstnanců. Ať už jde o psaní e-mailů, analýzu dat nebo tvorbu kódu, lidé čím dál...