KernelUNO — это скетч Arduino из 546 строк кода, предоставляющий легковесную ОС для Arduino UNO с оболочкой, похожей на Linux, которая поддерживает команды, такие как ls, df, uname и другие.
Всё, что нужно — это Arduino UNO R3 или совместимая плата с микроконтроллером Microchip ATmega328P , USB-кабель для программирования и, опционально, несколько светодиодов и резисторов для тестирования команды gpio в терминале.
KernelUNO предлагает следующие возможности:
- Виртуальная файловая система – создание файлов и каталогов в ОЗУ (/dev, /home)
- Управление аппаратной частью – работа с GPIO с настройкой режима выводов
- Мониторинг системы – использование памяти, время работы, сообщения ядра (dmesg)
- Интерактивная оболочка – выполнение команд в реальном времени с буферизацией ввода
- 23 встроенные команды
- Команды файловой системы – ls, cd, pwd, mkdir, touch, cat, echo [текст] > [файл], rm, info [имя]
- Аппаратные команды
- pinmode [вывод] [in/out] – установка режима вывода
- write [вывод] [high/low] – запись на вывод
- read [вывод] – чтение значения вывода
- gpio [вывод] [on/off/toggle] – управление GPIO
- gpio vixa [количество] – диско-режим для светодиодов (пасхалка)
- Системные команды – uptime, uname, dmesg, df, free, whoami (жестко привязано к root), clear, reboot, help, sh
Код можно получить на GitHub (лицензия BSD 3-Clause), и, поскольку это единственный скетч Arduino, его можно просто прошить на плату и начать работу. Большинство команд совпадают с теми, что используются в Linux, почти как в busybox, плюс аппаратные команды для управления GPIO.
Как отмечает Hackaday , постоянное хранилище отсутствует, поэтому всё работает в ОЗУ, что делает систему менее полезной, чем могла бы быть. Теоретически возможна установка внешней флеш-памяти или использование EEPROM, но на практике нужно учитывать, что микроконтроллер ATmega328 AVR имеет всего 2 КБ ОЗУ, 1 КБ EEPROM и 32 КБ флеш-памяти, и текущее использование памяти выглядит следующим образом:
- Программа: ~38% от 32 КБ флеш-памяти
- ОЗУ: ~85% от 2 КБ SRAM (оптимизировано)
- Файловая система: максимум 10 файлов/каталогов
- Буфер DMESG: 6 сообщений
Надежда ещё есть: в списке TODO указаны две функции — сохранение в EEPROM и управление ШИМ/аналоговыми сигналами. Код написан вручную, но Claude AI использовался только для документации.
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.

