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

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

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

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

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

  • Добавлена утилита "bc" для произвольных математических вычислений. На базе нового кода "bc" переработана и существенно расширена утилита "dc" (стековые вычисления в обратной польской записи);
  • В утилиту ifupdown добавлена поддержка опции "source-directory" для размещения настроек в виде набора файлов в каталоге (например, /etc/network/interfaces.d);
  • В реализацию TLS добавлена поддержка алгоритма x25519 (RFC 7748), режима FEATURE_TLS_SHA1 и шифров ECDHE-ECDSA-AES-128-CBC-SHA, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 и TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256.
  • В командной оболочке ash обеспечена возможность встраивания shell-скриптов в исполняемые файлы. Налажен разбор выражений "${}";
  • В командной оболочке hush оптимизирован код для проверки наличия символов в строке, улучшена обработка выражений "${var#...}", "${var:+...}" и "${var/.../...}", работа "set -x" приближена к bash, обеспечена установка переменной окружения IFS, добавлена возможность запуска встроенных скриптов;
  • В lineedit добавлена поддержка автодополнения встроенных скриптов;
  • В libarchive добавлена функция для распаковки встроенных данных;
  • В команду busybox добавлена опция '--show SCRIPT' для отображения встроенных скриптов;
  • В утилиту awk добавлена поддержка отрицательных значений параметра "NF";
  • В утилиту cp добавлен режим "--reflink" (клонирование метаданных файла с созданием ссылки на уже имеющиеся данные без их фактического копирования);
  • Поведение fdisk приведено в соответствие с аналогичной утилитой из набора util-linux 2.31;
  • В утилиту find добавлены опции "-executable" и "-quit";
  • В процессе инициализации init решены проблемы с перезагрузкой в контейнерах;
  • В nbd-client добавлена поддержка нового варианта протокола и реализованы опции "-b", "-d", "-p", "-N";
  • В nslookup добавлена поддержка поиска доменов (опция search в resolv.conf);
  • В ntpd добавлена поддержка верификации сообщений при помощи хэшей MD5/SHA1, параметр MIN_FREQHOLD выставлен в значение 3, включён режим FEATURE_NTP_AUTH=y, минимальное значение G.FREQHOLD_cnt повышено с 8 до 10, реализована опция "-i SEC";
  • В утилиту uptime добавлена опция "-s" (показ даты загрузки системы);
  • В утилите free обеспечен показ доступной для использования памяти;
  • В udhcp добавлена поддержка опции 211 ("reboot time");
  • В chpasswd добавлен режим запуска в chroot;
  • В sendmail добавлена поддержка режима аутентификации "AUTH PLAIN", в дополнение к "AUTH LOGIN";
  • Проведена чистка реализации vi от дублирующегося кода;
  • В утилиту dd добавлена поддержка опции 'oflag=seek_bytes';
  • В утилиту nproc добавлены опции "--all --ignore=N".


01/01/2019 10:04:23
0

комментарии (0)