09.08.2020

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


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

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

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

В версии BusyBox 1.32 выделяются следующие изменения:

  • Добавлена новая команда mim для запуска скиптов из заданного файла Mimfile (чем-то напоминает урезанную утилиту make);
  • В утилите find добавлена опция «-empty» для проверки пустых файлов;
  • В утилите wget расширен лимит на число перенаправлений и реализована поддержка проверки сертификатов TLS при сбооке с ENABLE_FEATURE_WGET_OPENSSL;
  • В grep добавлена корректная поддержка списка шаблонов (pattern_list) и добавлена опция «-R» (рекурсивная обрабтка содержимого каталога);
  • Решены проблемы, проявляющиеся при сборке в Clang 9 и устранены предупреждения компилятора;
  • Предложена большая порция исправлений в командных оболочках ash и hush, нацеленных на улучшение совместимости с другими оболочками. В ash и hush добавлена возможность автодополнения встроенных команд табуляцией. В ash стабилизированы новые встроенные команды.
  • В утилите fdisk появилась поддержка разделов HFS и HFS+;
  • В init улучшена обработка состояния гонки при поступлении сигналов;
  • В утилиту наглядного мониторинга за параметрами системы nmeter добавлен формат вывода «%NT» (выровненное время с нулями);
  • В taskset добавлена возможность обработки и вывода списка CPU (опция «-c»);
  • В tar изменено поведение опции «-a», которая вместо включения сжатия «lzma» теперь связана с автоопределением по расширению файла;
  • В udhcpc6 добавлена поддержка режима «stateless» для DHCPv6 (сервер отдаёт лишь параметры сети, без назначения адреса);
  • В nslookup обеспечена обработка ответов без записей RR и добавлена поддержка записей SRV;
  • В brctl добавлены новые команды «showmacs» и «showstp»;
  • В dhcpc добавлена поддержка параметра»relay server»;
  • В syslogd добавлена настройка для отображения времени с миллисекундной точностью;
  • В httpd при работе в режиме NOMMU разрешена установка иного домашнего каталога и обеспечена работа опции ‘-h’ при запуске фонового процесса;
  • В xargs налажена обработка аргументов, заключённых в кавычки, и обеспечено корректное поведение опции «-n»;
  • Исправлены недоработки в утилитах grep, top, dc, gzip, awk, bc, ntpd, pidof, stat, telnet, tftp, whois, unzip, chgrp, httpd, vi, route.

Кроме того, в прошлом месяце состоялся релиз Toybox 0.8.3, аналога BusyBox, развиваемого бывшим мэйнтейнером BusyBox и распространяемого под лицензией BSD. Основным назначением Toybox является предоставление производителям возможности использования минималистичного набора стандартных утилит без открытия исходных текстов модифицированных компонентов. По возможностям Toybox пока отстаёт от BusyBox, но уже реализовано 272 базовых команд (204 полностью и 68 частично) из 343 запланированных.

Из новшеств Toybox 0.8.3 можно отметить:

  • Добавлены новые команды rtcwake, blkdiscard, getopt и readelf;
  • В «make root» обеспечена возможность создание рабочего загрузочного окружения только на основе ядра Linux и утилит Toybox, которое может быть загружено при помощи собственного init-скрипта;
  • Добавлена начальная поддержка модулей с отдельными реализациями утилит, не входящими в основной состав ToyBox;
  • Командный интерпретатор toysh доведён до готовности на 80% (пока отсутствует поддержка функций, истории, управления терминалом, job-заданий, $((math)), шаблонов);
  • Добавлена поддержка дополнительных опций в различные утилиты, включая patch, cal, cp, mv, lsattr, chattr, ls, id, netcat и setsid.

Источник: https://www.opennet.ru/opennews/art.shtml?num=53242

Добавить комментарий