Апаратний хакер Дмитро Грінберг нещодавно досяг того, що може здатися неможливим: завантажив Linux на Intel 4004, першому в світі комерційному мікропроцесорі. Маючи лише 2300 транзисторів і оригінальну тактову частоту 740 кГц, ЦП 1971 року є неймовірно примітивним за сучасними стандартами. І це повільно — для завантаження ядра Linux потрібно приблизно 4,76 дня.
Додаткова інформація
37-річна платформа Amiga отримує оновлення ядра Linux, AmigaOS SDK
Спочатку розроблений для японського калькулятора під назвою Busicom 141-PF, 4-розрядний калькулятор 4004 знайшов обмежене використання в комерційних продуктах 1970-х років, перш ніж його замінили більш потужні чіпи Intel, такі як 8008 і 8080, які використовували перші персональні комп’ютери, а потім 8086 і 8088, які започаткували еру IBM PC.
Якщо ви скептично ставитеся до можливостей цього досягнення з необробленим 4004, ви маєте рацію: сам 4004 надто обмежений, щоб запускати Linux безпосередньо. Натомість Грінберг створив не менш вражаюче рішення: емулятор, який працює на 4004 і емулює процесор MIPS R3000 — архітектуру, яка використовується в робочій станції DECstation 2100, на яку спочатку було перенесено Linux. Цей емулятор разом із мінімальною апаратною емуляцією дозволяє завантажувати урізаний Debian Linux із командного рядка.
Грінбергу не чужі подвиги запуску Linux у малоймовірних місцях. Як він пояснює на своєму веб-сайті: «У 2012 році я запустив справжній Linux на 8-розрядному мікроконтролері (AVR), встановивши новий світовий рекорд серед найнижчих машин, які будь-коли запускали Linux». Після того як інші покращили цей рекорд за останні роки, він вирішив перевершити себе та інших, націлившись на перший мікропроцесор.
Довге, повільне завантаження
Щоб запрацювати Linux на 4004, Грінбергу довелося подолати численні труднощі. 4004 має надзвичайно обмежений ROM та RAM, не має переривань і не має навіть основних логічних операцій, таких як І та АБО. Емулятор Грінберга вміло використовує таблиці пошуку та інші трюки, щоб вичавити максимальну продуктивність із примітивного ЦП.
Останнє апаратне забезпечення використовує 4004 (розігнаний до 790 кГц) разом із кількома іншими чіпами з підтримкою правильних періодів із чіпсета Intel MCS-4. Він містить VFD-дисплей для відображення вихідних даних Linux і може приймати вхідні дані через послідовне з’єднання. Вся установка споживає близько 6 Вт електроенергії.
Додаткова інформація
Linux у реальному часі офіційно є частиною ядра після десятиліть дискусій
Щоб об’єднати все разом, Грінберг розробив спеціальну друковану плату без отворів (шляхів від одного боку плати до іншої) і лише під прямим кутом для ретро-естетики. Він призначений для кріплення на стіні як витвір мистецтва, який повільно виконує команди Linux протягом днів або тижнів.
Хоча проект Linux/4004 не має практичної мети, він демонструє гнучкість Linux і розширює можливості емуляції. Грінберг розглядає можливість пропонувати комплекти або повністю зібрані плати для тих, хто хоче відчути найповільніший Linux, хоча це ще не визначено.
Вся інформація про проект, включаючи схеми та вихідний код, доступна на веб-сайті Грінберга. Для тих, хто цікавиться старовинними обчисленнями чи екстремальними реалізаціями Linux, це захоплюючий погляд на те, що можливо завдяки технологіям 1970-х років і багатьом розумним інженерам.