Представен е релиз на пакета BusyBox 1.34, който реализира набор от стандартни UNIX утилити, опаковани в един изпълним файл и оптимизирани за минимално потребление на системни ресурси с размер на пакета под 1 MB. Първият изход на новата версия 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 категорично се противопоставя на такава защита — смятайки, че тя нарушава бизнеса му.
В версия 1.34 на BusyBox са отбелязани следните промени:
- Добавена е нова утилита ascii с интерактивна таблица на имената на 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 (извеждане в стил C) и „-o DISPLAYOFFSET“.
- В утилитата wget е разрешена обработка на кодове HTTP 307/308 за пренасочване. Добавена е опция FEATURE_WGET_FTP за включване/изключване на поддръжка за FTP.
- В утилитата dd е добавена опция „iflag=count_bytes“.
- В утилитата cut са реализирани опции, съвместими с инструмента toybox: „-O OUTSEP“, „-D“ и „-F LIST“.
Източник: opennet.ru
