Linux запустили на древнейшем Intel 4004 образца 1971 года — на загрузку ОС ушло более 8 дней
Ядро Linux с rootfs-окружением Debian успешно запущено на Intel 4004, первом коммерческом микропроцессоре, увидевшем свет в 1971 году. Этот 4-разрядный процессор, содержащий всего 2300 транзисторов, способен выполнять 60 тысяч операций в секунду и адресовать лишь 4 КБ памяти. Казалось бы, запустить на нём современную операционную систему невозможно.
Однако энтузиасты нашли выход, создав эмулятор процессора MIPS R3000 — платформы, совместимой с Linux. Выбор пал на MIPS как на оптимальный вариант, учитывая ограничения Intel 4004. Другие архитектуры, такие как ARM, RISCV, x86 и PPC, оказались либо слишком сложными для эмуляции, либо требовали больше памяти, чем мог предоставить 4004.
Сложность задачи заключалась в том, что для Intel 4004 не существует компиляторов языка Си. Поэтому эмулятор пришлось писать на ассемблере. В итоге на Intel 4004 запускался эмулятор MIPS R3000, который, в свою очередь, обеспечивал работу Linux.
Для экспериментов была разработана плата, включающая Intel 4004, тактовый генератор, память и контроллер. В дальнейшем её усовершенствовали, добавив память для Linux-окружения и поддержку SD-карт. Кроме того, был создан эмулятор Intel 4004 для упрощения разработки на современных системах.
Низкая производительность Intel 4004 стала причиной крайне медленной работы эмулятора. Каждая виртуальная секунда в эмулируемом окружении требовала почти 4 часов реального времени. Например, выполнение тестового приложения, отрисовывающего множество Мандельброта, заняло 30 дней с использованием вычислений с плавающей запятой и 9 часов с целочисленной арифметикой.
Несмотря на все трудности, загрузка Linux в этой конфигурации заняла более 8 дней. Полное видео загрузки было ускорено в 120 раз. Материалы проекта, включая спецификацию платы, образ Linux-системы, код эмуляторов и инструментария, опубликованы в открытом доступе для всех желающих повторить этот технологический подвиг.