Код
#новости

Разработчик запустил Linux на плате Arduino Uno

Энтузиаст установил новый антирекорд, найдя худший для загрузки Linux компьютер.

Энтузиаст из Вьетнама оптимизировал ядро Linux для запуска на Arduino Uno. Аппаратная платформа платы плохо подходит для полноценной операционной системы, поэтому Linux запускается более 15 часов. Практической пользы от проекта мало, и реализован он только в качестве челленджа.

Детали проекта

Плата Arduino Uno построена на базе микроконтроллера ATmega328p с 2 Кб оперативной памяти, с 32 Кб флеш-памяти и 2 Кб статической памяти с произвольным доступом (SRAM). Этих характеристик не хватает для запуска даже облегчённой версии Linux, поэтому пришлось прибегнуть к оптимизации.

Автор проекта портировал на ATmega328p код легковесного эмулятора RISC-V mini-rv32ima с возможностью запуска Linux. Код написан на чистом C без оболочки Arduino, чтобы увеличить производительность и избавиться от лишнего уровня абстракции.

К плате подключена SD-карта с помощью специального адаптера. К такому решению пришлось прибегнуть из-за того, что рабочее напряжение Arduino составляет 5 В, а SD-карты работают от 3,3 В и ниже. В описании проекта автор привёл распиновку для того, чтобы желающие могли повторить эксперимент.

Результат

Во время теста на Arduino Uno запускали Linux 6.1. С момента старта операционной системы до открытия командной оболочки проходит 15 часов 44 минуты. Это худший из известных результатов, который по праву можно считать новым антирекордом.

Командная оболочка Linux, запущенная на Arduino UNO
Изображение: raspiduino / GitHub

В видеоролике автор проекта показал скорость работы с Linux, запущенным на Arduino Uno. Через Serial Monitor ввели стандартную команду help. Несколько минут операционная система обрабатывала строку и ввела в консоль только два первых символа. После этого система зависла ещё на несколько минут и выдала сообщение, что команду не удалось найти.

Код проекта и все необходимые детали опубликованы в открытом GitHub-репозитории, а на YouTube доступны видеоролики без ускорения и склеек, доказывающие, что на запуск Linux ушло более 15 часов.

Прошлый антирекорд в 2012 году установил разработчики Дмитрий Гринберг. В своём проекте он использовал микроконтроллер ATmega644a с 16 Кб оперативной памяти и 128 Кб флеш-памяти. На таком устройстве с момента запуска Linux до перехода к командной строке проходило около 2 часов. Ещё 4 часа нужно было для полноценной загрузки Ubuntu.

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!


Онлайн-школа для детей Skillbox Kids
Учим детей программированию, созданию игр, сайтов и дизайну. Первое занятие бесплатно! Подробности — по клику.
Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована