Новая версия минималистичного набора системных утилит BusyBox 1.22

01.01.2014 18:42

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

Модульный характер BusyBox даёт возможность сформировать один унифицированный исполняемый файл, содержащий в себе произвольный набор реализованных в пакете утилит (каждая утилита доступна в форме символической ссылки на данный файл). Размер, состав и функциональность коллекции утилит можно варьировать в зависимости от потребностей и возможностей встраиваемой платформы, для которой осуществляется сборка. Пакет самодостаточный, при статической сборке с uclibc для создания рабочей системы поверх ядра Linux требуется лишь создать несколько файлов-устройств в директории /dev и подготовить файлы конфигурации. По сравнению с прошлым выпуском 1.21.1 потребление оперативной памяти типовой сборкой BusyBox 1.22.0 увеличилось на 2 Кб (с 899603 до 901819 байт).

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

Среди заметных улучшений:

  • В syslogd добавлена возможность определения директории с логами через переменную окружения _PATH_LOG;
  • В утилите date появилась поддержка определения дат в форматах 'yyyy-mm-dd HH' и 'yyyy-mm-dd';
  • В ping обеспечена проверка доступности хоста при помощи SOCK_DGRAM при запуске без прав root;
  • В командные оболочки ash и hush добавлена поддержка истории работы;
  • В xz добавлена поддержка соединённых потоков .xz;
  • Во wget добавлена возможность задания таймаута;
  • В команду ip link добавлена поддержка VLAN;
  • В volume_id добавлена поддержка файловой системы F2FS;
  • В lsof налажена работа с символическими ссылками;
  • В swapon добавлена поддержка указания "pri=NNN" в fstab;
  • Улучшена реализация утилит sendmail, grep, awk, sed, bootchartd, bunzip2, unzip, dd, vi, find, httpd, less, traceroute, nc, ntpd, udhcp, ps, rpm, tar, fdisk, arp.