SG.hu

4 nap alatt, de elindult a Linux egy 1971-es Intel 4004 chipen

Dmitry Grinberg hardverszaki megvalósította a lehetetlent: Linuxot indított el egy Intel 4004-en, a világ első kereskedelmi forgalomban kapható mikroprocesszorán.

A mindössze 2300 tranzisztorral és 740 kHz-es órajellel ketyegő 1971-es CPU mai mércével mérve hihetetlenül primitív. És lassú is: a Linux kernel bootolása 4,76 napot vett igénybe. Az eredetileg a Busicom 141-PF nevű japán számológéphez tervezett 4 bites 4004-es korlátozottan került felhasználásra az 1970-es évek kereskedelmi termékeiben, mielőtt a nagyobb teljesítményű Intel chipek, például a 8008-as és 8080-as, amelyek a korai személyi számítógépeket működtették, majd a 8086-os és 8088-as, amelyek az IBM PC-korszakot indították el, felváltották.

Persze maga a 4004 túlságosan korlátozott ahhoz, hogy közvetlenül Linuxot futtasson. Ehelyett Grinberg egy hasonlóan lenyűgöző megoldást hozott létre: egy emulátort, amely a 4004-en fut, és egy MIPS R3000 processzort emulál - a DECstation 2100 munkaállomásban használt architektúrát, amelyre a Linuxot eredetileg portolták. Ez az emulátor, valamint a minimális hardveremuláció lehetővé teszi, hogy egy lecsupaszított Debian Linux parancssorba bootoljon.

Grinbergtől nem idegenek a Linux valószínűtlen helyeken történő futtatásának bravúrjai. Ahogy a weboldalán kifejti: „2012-ben Linuxot futtattam egy 8 bites mikrokontrolleren (AVR), ezzel új világrekordot állítottam fel a Linuxot valaha is futtató legalacsonyabb teljesítményű gépek között”. Miután az elmúlt években mások javítottak ezen a rekordon, úgy döntött, hogy felülmúlja önmagát és másokat is azzal, hogy a legelső mikroprocesszort veszi célba.


Ahhoz, hogy a Linuxot a 4004-en működőképessé tegye, Grinbergnek számos kihívást kellett leküzdenie. A 4004 rendkívül korlátozott mennyiségű ROM-mal és RAM-mal rendelkezik, nincsenek megszakításai, és még az olyan alapvető logikai műveletek, mint az ÉS és a VAGY is hiányoznak belőle. Grinberg emulátora ügyesen használja a keresőtáblákat és más trükköket, hogy a maximális teljesítményt hozza ki a primitív CPU-ból. A végleges hardver a 4004-et használja (790 kHz-re túlhajtva) az Intel MCS-4 lapkakészletéből származó számos más korhű támogató chip mellett. Tartalmaz egy VFD kijelzőt a Linux kimenetének megjelenítésére, és képes soros kapcsolaton keresztül bemenetet fogadni. Az egész berendezés körülbelül 6 W teljesítményt fogyaszt.

Ahhoz, hogy mindezt összehozza, Grinberg egy egyedi áramköri lapot tervezett, amelyen nincsenek átvezetések (az áramköri lap egyik oldaláról a másikra vezető utak), és csak derékszögű nyomvonalak vannak a retró esztétika érdekében. A terv szerint falra szerelhető műalkotásként, amely napok vagy hetek alatt hajtja végre a Linux-parancsokat. Bár gyakorlati célja nincs, a Linux/4004 projekt az operációs rendszer rugalmasságát mutatja be és az emuláció határait feszegeti. Grinberg fontolgatja annak lehetőségét, hogy készleteket vagy teljesen összeszerelt lapokat kínáljon másoknak, akik a Linuxot a leglassabban szeretnék megtapasztalni, bár ez még nem eldöntött tény.

A projekt minden részlete - beleértve a tervrajzokat és a forráskódot is - elérhető Grinberg honlapján. Akit érdekel a régi számítástechnika vagy az extrém Linux implementációk, az nála megnézheti, hogy mi minden lehetséges sok okos mérnöki munkával és az 1970-es évek technológiájával.

Hozzászólások

A témához csak regisztrált és bejelentkezett látogatók szólhatnak hozzá!
Bejelentkezéshez klikk ide
(Regisztráció a fórum nyitóoldalán)
  • Adamyno #5
    Mondj hasznosabbat egy kód optimalizálásánál.

    Amikor a TV-ktől kezdve lassan a függonyon is Linux fut, akkor nagyon nem mindegy, hogy 100 GB RAM-ot kell mellé tenni vagy normális kód beéri kevesebb ritkaföldfémből származó erőforrással. Ezeket a projekteket érdemes jól eltenni, mert ebben pythonnak, javának nyoma nincs az biztos.
  • barret #4
    Azokat már biztos mindet megcsinálta,kizárólagosan ez maradt :)
  • Tetsuo #3
    Hasznosabb dolgot nem tudott volna csinálni?
  • duke #2
    A linux szar, windows tuti gyorsabb lenne . :))
  • Macropus Rufus #1
    ügyes :)