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

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

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

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

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

  • Добавлено приложение svok для обеспечения совместимости с daemontools;
  • Включено приложение tc для манипуляции настройками управления трафиком;
  • В команду cp добавлена опция »-T» (целевой путь рассматривается как файл, а не каталог);
  • В команду less добавлены опции »-F» (выход после отображения содержимого, если вывод укладывается в один экран) и »-R» (вывод в неизменном виде escape-последовательностей ANSI);
  • Приложения cal и mv переведены на работу в режиме NOEXEC;
  • В командные оболочки ash и hush внесены многочисленные исправления, направленные на улучшение совместимости. В hush добавлена новая встроенная команда «command» и опция «hush -s»;
  • Производительность bzip2 увеличена приблизительно на 1%;
  • В df на 32-разрядных системах обеспечена поддержка разделов, превышающих 4TB;
  • В ftpd добавлена опция »-A» для отключения всех типов аутентификации;
  • В ftpgetput добавлена поддержка режима EPSV (похожий на PASV режим для IPv6);
  • В команде patch реализован режим »--dry-run»;
  • В утилите ping добавлена опция »-A», включающая адаптивный режим выбора интервала отправки пакетов;
  • В команды realpath и readlink добавлена опция »-f» (раскрытие симлинков) для совместимости с coreutils;
  • В команде sort реализован режим с оптимизацией, нацеленной на минимальное потребление памяти (FEATURE_SORT_OPTIMIZE_MEMORY).
  • В udhcpc6 добавлена поддержка делегирование префиксов IPv6;
  • В команду wget добавлена поддержка режима EPSV и URI «ftps://»;
  • В «ip link» добавлена поддержка команды«add TYPE vrf»;
  • В системе сборки налажена возможность сборки в несколько потоков.
  • В chrt добавлена поддержка атрибутов процессов SCHED_BATCH и SCHED_IDLE.

© OpenNet