KernelUNO – легковесная ОС для Arduino UNO с оболочкой, похожей на Linux

KernelUNO — это скетч Arduino из 546 строк кода, предоставляющий легковесную ОС для Arduino UNO с оболочкой, похожей на Linux, которая поддерживает команды, такие как ls, df, uname и другие.

Всё, что нужно — это Arduino UNO R3 или совместимая плата с микроконтроллером Microchip ATmega328P , USB-кабель для программирования и, опционально, несколько светодиодов и резисторов для тестирования команды gpio в терминале.

KernelUNO

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.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

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

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments