ru24.pro
Досуг
Сентябрь
2024
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
23
24
25
26
27
28
29
30

Linux заработал на процессоре Intel 4004: запуск системы занимает 8 часов

0

Пользователь Дмитрий Гринберг провел интересный эксперимент. Он попытался запустить операционную систему Linux с rootfs-окружением Debian на системе с процессором Intel 4004, и у него получилось. Данный чип, релиз которой состоялся в далёком 1971 году, стал первым коммерчески доступным однокристалльным микропроцессором. Это 4-разрядный процессор с 2300 транзисторами. Он поддерживает всего 46 инструкций и способен выполнять 60 000 операций в секунду.

Напрямую из-за возможности Intel 4004 адресовать всего 4К постоянной памяти запустить Linux нельзя, поэтому автору эксперимента пришлось писать эмулятор процессора MIPS R3000, на котором может работать данная операционная система. Ещё одна загвоздка заключалась в отсутствии компилятора языка Си для чипа из 1971-го года. Данная проблема была решена использованием ассемблера.

Что касается аппаратной части, Гринберг создал простейшую плату, состоявшую из компонентов 1970-х годов. Помимо самого процессора, потребовались тактовый генератор Intel 4201, чип оперативной памяти Intel 4002-1, размером 20 байтов, контроллер постоянной памяти Intel 4289 и микроконтроллер ATMEGA48, симулирующего постоянную память. Оказалось, что «древние» комплектующие — удовольствие не из дешёвых. Конечно, пришлось использовать и более современные компоненты. Среди таковых SD-карта в качестве постоянной памяти.

В итоге получилось ну очень медленное устройство. Каждая виртуальная секунда в системе эмуляции занимала четыре часа реального времени. Например, на выполнение тестового приложения для отрисовки множества Мандельброта с разрешением 13 x 40 при использовании вычислений с плавающей запятой системе с процессором Intel 4004 потребовалось целых 30(!) дней.

Проведённая оптимизация позволила запускать операционную систему Linux за восемь часов. Опубликованное автором этого необычного эксперимента видео в целях экономии времени пользователей ускорено в 120 раз.