Релиз минималистичного набора системных утилит BusyBox 1.30
1 января 2019 года
Представлен релиз пакета 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".
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.