A Linux az Intel 4004-en, az első kereskedelmi mikroprocesszoron fut

A Debian rootfs környezettel rendelkező Linux kernel sikeres elindítását az 1971-ben kifejlesztett 4 bites Intel 4004 processzor demonstrálta, amely az első kereskedelmi forgalomban kapható egyetlen chipen működő mikroprocesszor. A processzor mindössze 2300 tranzisztort tartalmaz, 46 utasítást támogat, és másodpercenként 60 ezer műveletet biztosít.

Mivel az Intel 4004 architektúra komoly korlátokkal rendelkezik, és csak 4 KB állandó memóriát képes kezelni, a Linux közvetlen futtatása helyett azt az ötletet használták, hogy írjanak egy emulátort a MIPS R3000 processzorra, amelyen a Linux futhat. A munkát nehezítette, hogy az Intel 4004-hez nincsenek és nem is hozhatók létre fordítók a C nyelvre, ezért az emulátort assemblerben kellett elkészíteni. Így a munka úgy volt megszervezve, hogy az emulátor közvetlenül az Intel 4004 lapkán indult el, amely viszont Linux kernelre épülő környezetet futtatott.

A MIPS-t választották a legjobb emulációs lehetőségnek, az Intel 4004 korlátain és a rendelkezésre álló memória méretén belül. Például egy ARM-emulátor létrehozását nehezítette az operandusok ebből eredő eltolódása, RISCV - zavaros címzési módok, x86 - nagy memóriafelhasználás az utasítások dekódolásához, PPC - az emuláció általános összetettsége kis memóriamérettel.

A programok valódi Intel 4004 rendszeren való futtatásához először egy egyszerű táblát alakítottak ki, amely egy Intel 4004 mikroprocesszorból, egy Intel 4201 órajelgenerátorból, egy Intel 4002-1 20 bájtos RAM chipből, egy Intel 4289 állandó memóriavezérlőből és egy Az állandó memóriát szimuláló ATMEGA48 mikrokontroller. A projekt fejlesztése során elkészült egy bonyolultabb tábla is, amely ezen felül tartalmazta az emulátorban futó Linux környezet befogadására alkalmas memóriát és támogatta a perzisztens memória szimulációját SD kártyával. Ezenkívül a kísérletek elvégzése és a modern rendszerek fejlesztésének egyszerűsítése érdekében az Intel 4004 chip emulátorát írták.

A Linux az Intel 4004-en, az első kereskedelmi mikroprocesszoron fut
A Linux az Intel 4004-en, az első kereskedelmi mikroprocesszoron fut

Az Intel 4004 alacsony teljesítménye miatt az emulátor nagyon lassúnak bizonyult - az emulált környezetben minden virtuális másodperc feldolgozása majdnem 4 órányi számítást igényelt egy Intel 4004 processzorral rendelkező valós rendszeren. Például egy tesztalkalmazás futtatása a Mandelbrot halmaz 13 x 40 felbontású rajzolása lebegőpontos számítások esetén 30 napot vett igénybe, egész aritmetika esetén - 9 órát.

Az optimalizálás után a Linux betöltése az előkészített konfigurációban több mint 8 napig tartott. A teljes betöltési videó rögzítésekor 120-szoros gyorsítást használtunk (a videó egy másodperce 2 perc emulált MIPS processzornak felel meg). A kísérletet megismételni kívánók számára a kártya specifikációja és kapcsolási rajza, a Linux rendszer képe, valamint a hozzá tartozó eszközök kódja, a MIPS R3000 és Intel 4004 emulátorok, bootloaderek és az MCS-04 busz analizátor megjelent.

Play Video


Forrás: opennet.ru

Hozzászólás