Linux bežal na CPU z minulého storočia
Linux je jeden z najznámejších operačných systémov pre počítače. Jeho pôvod siaha až do roku 1991, vďaka čomu potrebuje na spustenie minimálne 32-bitový procesor a niekoľko megabajtov RAM. Jeden zanietený programátor a hardvérový nadšenec Dmitry Grinberg však tento operačný systém spustil na procesore, ktorý je o 20 rokov starší ako samotný Linux.
Grinberg venoval nesmierne množstvo času a energie na to, aby naštartoval Linux na procesore Intel 4004. Jedná sa o vôbec prvý mikroprocesor od spoločnosti Intel, ktorý vydali v roku 1971. Napriek tomu, že bol procesor pôvodne navrhnutý pre stolné kalkulačky, mladého muža z amerického Austinu to nezastavilo.
Na spustenie čakal takmer päť dní
Štvorbitový Intel 4004 nepodporuje žiadne logické operácie. Priame spustenie takého náročného operačného systému ako je Linux predstavuje kvôli vekovej zaostalosti značný problém. Dmitry musel byť preto vynaliezavý a našiel spôsob, ako tento výrazný nedostatok obísť.
K Intel 4004 sa Grinberg rozhodol emulovať schopnejší procesor MIPS R3000. Ide o 32-bitový procesor z konca 80. rokov minulého storočia. CPU R3000 síce nie je o nič mladší, no umožňuje spustiť Linux a zároveň je dostačujúco jednoduchý na to, aby sa vošiel do adresovateľnej pamäte na 4004 (tá má rozpätie 4kB).
Zavedením novšieho procesora tak Grinberg preklenul rozdiel medzi hardvérom a softvérom. Dá sa povedať, že vznikol určitý druh symbiózy. Program bežiaci na Intel 4004 teda číta dáta Linuxu z SD karty a spracováva ich tak, ako by bol procesorom R3000, pre ktorý je kód preložený.
Zavádzanie Linuxu spočiatku trvalo niečo cez deväť dní. Grinberg odstránil z Linuxu podporu pre pár nepotrebných funkcii, čim znížil veľkosť jadra Linuxu na približne 2,5 MB. Po optimalizácii emulačného kódu sa mu podarilo skrátiť čas spúšťania operačného systému na 4,76 dňa.
Dmitry si dokonca vlastnoručne vyrobil riadiacu dosku s displejom a sériovou linkou, ktorá odovzdáva informácie o momentálnom stave bootovania Linuxu. U bootovania to samozrejme nezostalo. Grinberg sa pokúšal aj o zadávanie bežných príkazov, no aj vypísanie adresára trvalo CPU asi 16 hodín.
Tento nevídaný úspech zdieľal Dmitry prostredníctvom videa. V ňom je zachytená priam až neznesiteľne dlhá doba čakania na vykonanie akýchkoľvek príkazov. Pre technologických záujemcov, ktorí sa chcú dozvedieť viac zhrnul Grinberg všetky podrobné informácie vo svojom blogovom príspevku.