Самый медленный компьютер на Linux

в 12:50, , рубрики: avr, diy или сделай сам, linux, два чаю этому господину, Программинг микроконтроллеров

image
Часто люди, только купившие себе новенький восьмибитный микроконтроллер интересуются, как запустить на нём Linux. Но обычно они становятся лишь объектом насмешек. А на форумах по Linux'у порою проскакивают вопросы, мол какие нужны минимальные харрактеристики для запуска операционки. Самый частый ответ — 32 битная архитектура, MMU и как минимум 1 мб оперативной памяти. Мой проект ломает эти стереотипы. Компьютер основан на ATmega1284p. Я даже сделал ещё один на ATmega644a, и он тоже работал. Нет больше никакого процессора или других спрятанных частей. Всё это работает на версии ядра 2.6.34, и даже (если у вас есть на это время), грузит полноценную Ubuntu, с X сервером и Gnome.

Оперативная память

Да, LInux требует мегабайты оперативки и 32 битную архитектуру процессора с MMU. Тут всё это есть.
Мне пришлось использовать старинную тридцатипиновую планку SIMM типа. Для справки: такая память использовалась в 286'ых компьютерах.
Насколько она быстрая? Примерно 300 килобайт в секунду. Маловато, но всё же.

Хранилище файлов

Это для меня проблемой не было. С SD карточками легко работать по SPI, и именно этот метод я и использовал. Карточка на 1 гигабайт работает нормально, но для Ubuntu Jaunty, может хватить и 512 мегабайт. У ATmega нет хардварного SPI модуля, но я смог заставить карту работать. Довольно медленно -около 200 килобайт в секунду.
image

Процессор

Как уже говорилось раньше, нам нужна 32-битная архитектура и поддержка MMU. А AVR восьмибитный, и MMU естественно тоже не поддерживает. Я написал эмулятор ARM. ARM довольно похож на AVR, и написать эмулятор было не так уж и сложно, несмотря на то, что подобных проектов я не нашел.
image

Другие возможности

Компьютер связывается с внешним миром по serial порту. Сейчас я общаюсь при помощи minicom на моём компьютере, но я планирую подключить клавиатуру и символьный дисплей, чтобы сделать всё автономнее. Ещё у меня стоит два светодиода, которые показывают обращения к SD карте(один чтение, другой запись). Сам микроконтроллер со стандартных 20 разогнан до 24 мегагерц.
image

Насколько же всё это медленное?!

Два часа на базовую загрузку(init=/bin/bash). Ещё 4, чтобы войти в Ubuntu(exec init), и потом залогиниться. Запуск иксов ещё дольше. Эмулированная скорость около 6.5 килогерц. Как ни странно, но после загрузки, система даже порой юзабельна. Ответ на команду в терминале приходит примерно через минуту. SD карточка форматировалась день. Я думаю, что это самый медленный, дешёвый и легкособираемый компьютер на Linux'е.

Автор: ubunterro

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js