Релиз минималистичного набора системных утилит BusyBox 1.27
После шести месяцев разработки состоялся стабильный релиз пакета BusyBox 1.27.1 (версия 1.27.0 была отнесена к категории нестабильных) с реализацией набора стандартных утилит UNIX, оформленных в виде единого исполняемого файла и оптимизированных для минимального потребления системных ресурсов при размере комплекта менее 1 Мб. Код проекта распространяется под лицензией GPLv2.
Модульный характер BusyBox дает возможность сформировать один унифицированный исполняемый файл, содержащий в себе произвольный набор реализованных в пакете утилит (каждая утилита доступна в форме символической ссылки на данный файл). Размер, состав и функциональность коллекции утилит можно варьировать в зависимости от потребностей и возможностей встраиваемой платформы, для которой осуществляется сборка. Пакет самодостаточный, при статической сборке с uclibc для создания рабочей системы поверх ядра Linux требуется лишь создать несколько файлов устройств в директории /dev и подготовить файлы конфигурации. По сравнению с прошлым выпуском 1.26 потребление оперативной памяти типовой сборкой BusyBox 1.27 увеличилось на 1346 байт (с 925769 до 927115 байт). BusyBox является основным инструментом в борьбе с нарушением GPL в прошивках. Организации Software Freedom Conservancy (SFC) и Software Freedom Law Center (SFLC) от лица разработчиков BusyBox как через суд, так и путем заключения внесудебных соглашений неоднократно успешно воздействовала на компании, не предоставляющие доступ к исходному коду GPL-программ. В тоже время автор BusyBox всячески возражает против такой защиты - считая что она ломает ему бизнес. Для производителей, которые не желают открывать исходные тексты модифицированных компонентов, в рамках проекта Toybox развивается аналог BusyBox, распространяемый под лицензией BSD (2 clause). По возможностям Toybox пока отстает от BusyBox.
В версии BusyBox 1.27 выделяются следующие изменения:
- Добавлены новые утилиты: link, setpriv, factor, fallocate, fsfreeze, nproc, nl, partprobe, shred, w (аналог "who -H"), xxd, lsscsi, paste;
- В ftpd добавлен режим анонимного входа, включаемый опцией "-a ANON_USER". При выполнении команды ls обеспечен вывод каталогов в начале списка;
- В iproute добавлена поддержка фильтрации по параметру scope;
- В modprobe обеспечено чтение индекса modules.builtin;
- Включены по умолчанию опции сборки: DPKG=y, DPKG_DEB=y, FEATURE_USERNAME_COMPLETION=y, INSMOD=y и RMMOD=y;
- Добавлен скрипт make_single_applets.sh для проверки обособленной сборки утилит;
- В gzip, bzip2 и lzop добавлена опция "-k";
- В cryptpw добавлена поддержка задания раундов в поле с солью ("rounds=NNNNNNN$");
- В httpd добавлена защита от атака, нацеленных на исчерпание доступной памяти;
- В iplink добавлена настройка "set promisc on|off";
- В ip обеспечена возможность выбора отдельных IP-алиасов;
- В iproute добавлена поддержка опции advmss;
- В pgrep добавлена опция "-a";
- Утилиты runsv и sv обновлены для соответствия версии runit 2.1.2;
- В sendmail добавлена возможность указания символа "+" в поле с адресом получателя;
- В time обеспечена возможность установки формата вывода (-f FMT), добавлены опции "-a" и "-o FILE";
- В утилите wget добавлена опция "-S" (--server-response).