Представлен релиз пакета BusyBox 1.34 с реализацией набора стандартных утилит UNIX, оформленных в виде единого исполняемого файла и оптимизированных для минимального потребления системных ресурсов при размере комплекта менее 1 Мб. Первый выпуск новой ветки 1.34 позиционируется как нестабильный, полная стабилизация будет обеспечена в версии 1.34.1, которая ожидается примерно через месяц. Код проекта распространяется под лицензией GPLv2.
Модульный характер BusyBox даёт возможность сформировать один унифицированный исполняемый файл, содержащий в себе произвольный набор реализованных в пакете утилит (каждая утилита доступна в форме символической ссылки на данный файл). Размер, состав и функциональность коллекции утилит можно варьировать в зависимости от потребностей и возможностей встраиваемой платформы, для которой осуществляется сборка. Пакет самодостаточный, при статической сборке с uclibc для создания рабочей системы поверх ядра Linux требуется лишь создать несколько файлов устройств в директории /dev и подготовить файлы конфигурации. По сравнению с прошлым выпуском 1.33 потребление оперативной памяти типовой сборкой BusyBox 1.34 увеличилось на 9620 байт (с 1032724 до 1042344 байт).
BusyBox является основным инструментом в борьбе с нарушением GPL в прошивках. Организации Software Freedom Conservancy (SFC) и Software Freedom Law Center (SFLC) от лица разработчиков BusyBox как через суд, так и путём заключения внесудебных соглашений неоднократно успешно воздействовала на компании, не предоставляющие доступ к исходному коду GPL-программ. В то же время автор BusyBox всячески возражает против такой защиты – считая что она ломает ему бизнес.
В версии BusyBox 1.34 выделяются следующие изменения:
- Добавлена новая утилита ascii c интерактивной таблицей имён ASCII-символов.
- Добавлена новая утилита crc32 для подсчёта контрольных сумм.
- Во встроенном http-сервере реализована поддержка методов DELETE, PUT и OPTIONS.
- В udhcpc предоставлена возможность смены имени сетевого интерфейса по умолчанию.
- В реализации протоколов TLS появилась поддержка эллиптических кривых secp256r1 (P256)
- Продолжено развитие командных оболочек ash и hush. В hush обработка команды ^D приведена в соответствие с поведением ash и bash, реализована специфичная для bash конструкция $’str’, проведена оптимизация операций замены ${var/pattern/repl}.
- Внесена большая порция исправлений и улучшений в реализацию утилиты awk.
- В утилиты base32 и base64 добавлена опция “-i” для игнорирования некорректных символов.
- В утилитах bc и dc обработка переменных окружения BC_LINE_LENGTH и DC_LINE_LENGTH приближена к утилитам GNU.
- В утилиту blockdev добавлены опции –getra и –setra.
- В утилиты chattr и lsattr добавлена опция “-p”. В lsattr расширено число поддерживаемых флагов ФС ext2.
- В утилиту cp добавлены опции “-n” (запрет перезаписи) и “-t DIR” (задание целевого каталога).
- В cpio налажена работа конструкции “cpio -d -p A/B/C”.
- В утилиту df добавлена опция “-t TYPE” (ограничение вывода определённым типом ФС).
- В утилиту du добавлена опция -b (эквивалент ‘–apparent-size –block-size=1’).
- В утилиту env добавлена опция “-0” (завершение каждой строки символом с нулевым кодом).
- В утилиту free добавлена опция “-h” (вывод в читаемом виде).
- В утилиту ionice добавлена опция “-t” (игнорирование сбоев).
- В утилите login реализована поддержка переменной окружения LOGIN_TIMEOUT.
- В утилиту mv добавлены опции “-t” (определение целевого каталога для перемещения) и “-T” (обработка второго аргумента как файла).
- В утилиту shred добавлена опция “-s SIZE” (число очищаемых байт).
- В утилиту taskset добавлена опция “-a” (применение привязки к CPU для всех потоков процесса).
- В утилитах timeout, top, watch и ping реализована поддержка нецелых значений (NN.N).
- В утилиту uniq добавлена опция “-z” (использование символа с нулевым кодом в качестве разделителя).
- В утилиту unzip добавлена опция “-t” (проверка архива).
- В редакторе vi разрешено использование регулярных выражений в команде ‘:s’. Добавлен параметр expandtab. Улучшены реализации перемещения между параграфами, выбора диапазонов и отката изменений.
- В утилите xxd реализованы опции -i (вывод в стиле Си) и “-o DISPLAYOFFSET”.
- В утилите wget разрешена обработка кодов HTTP 307/308 для редиректа. Добавлена опция FEATURE_WGET_FTP для включения/отключения поддержки FTP.
- В утилите dd добавлена опция “iflag=count_bytes”.
- В утилите cut реализованы совместимые с инструментарием toybox опции “-O OUTSEP”, “-D” и “-F LIST”.