Релиз минималистичного набора системных утилит BusyBox 1.37

После почти двух лет разработки представлен релиз пакета BusyBox 1.37 с реализацией набора стандартных утилит UNIX, оформленных в виде единого исполняемого файла и оптимизированных для минимального потребления системных ресурсов при размере комплекта менее 1 Мб. Первый выпуск новой ветки 1.37 позиционируется как нестабильный, полная стабилизация будет обеспечена в версии 1.37.1, которая ожидается через несколько месяцев. Код проекта распространяется под лицензией GPLv2.

Модульный характер BusyBox даёт возможность сформировать один унифицированный исполняемый файл, содержащий в себе произвольный набор реализованных в пакете утилит (каждая утилита доступна в форме символической ссылки на данный файл). Размер, состав и функциональность коллекции утилит можно варьировать в зависимости от потребностей и возможностей встраиваемой платформы, для которой осуществляется сборка. Пакет самодостаточный, при статической сборке с uclibc для создания рабочей системы поверх ядра Linux требуется лишь создать несколько файлов устройств в директории /dev и подготовить файлы конфигурации. По сравнению с прошлым выпуском 1.36 потребление оперативной памяти типовой сборкой BusyBox 1.37 увеличилось на 1535 байт (с 1022792 до 1024327 байт).

BusyBox является основным инструментом в борьбе с нарушением GPL в прошивках. Организации Software Freedom Conservancy (SFC) и Software Freedom Law Center (SFLC) от лица разработчиков BusyBox как через суд, так и путём заключения внесудебных соглашений неоднократно успешно воздействовала на компании, не предоставляющие доступ к исходному коду GPL-программ. В то же время автор BusyBox всячески возражает против такой защиты – считая что она ломает ему бизнес.

Среди заметных изменений в BusyBox 1.37:

  • Добавлена реализация утилиты getfattr для показа расширенных атрибутов файлов.
  • В udhcpd реализована опциональная поддержка протокола BOOTP.
  • В утилиту hwclock добавлена возможность вывода и установки параметров RTC (Real-Time Clock). Например, для чтения “hwclock –param-get bsm”, а для изменения “hwclock -p bsm=1”.
  • В команду “ip link” добавлена поддержка настройки CAN-устройств с использованием интерфейса netlink (“ip link set type can”).
  • В утилите find реализована опция “-ok команда” для запуска команды с предварительным запросом у пользователя подтверждения данной операции.
  • Включена очередная порция исправлений для командных оболочек ash и hush, нацеленных на улучшение совместимости с другими оболочками. Добавлена поддержка автодополнения ввода имён функций и алиасов клавишей Tab. В hush добавлена встроенная реализация команды “false”.
  • В awk реализован флаг “-E” для чтения текста скрипта из файла.
  • В утилите od реализована опция “-B” (синоним “-t o2”) для вывода в виде восьмеричных 2-байтовых значений.
  • В утилите time в опции “-f FMT” разрешено экранирование символов при помощи последовательностей “escape” и “%%”.
  • У утилите top улучшено отображение больших PID-идентификаторов.
  • В readlink добавлена поддержка разделителя “–” и улучшена совместимость со стандартом POSIX в отношении применения опции “-n”.
  • В команду start-stop-daemo добавлены опции “-O/–output” (перенаправление вывода) и “-d DIR” (смена каталога по умолчанию).
  • В ntpd обеспечена совместимость клиента и сервера NTP с временем после 2038 года.
Release. Ссылка here.