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

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

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

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

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

  • Добавлена новая утилита tsort, которая выполняет топологическую сортировку.
  • Добавлена новая утилита tree для показа содержимого каталога в древовидном представлении.
  • Добавлены написанные на ассемблере и использующие аппаратное ускорение варианты SHA1 для систем x86, а также аппаратно ускоренный вариант SHA256.
  • В утилите ls реализована опция “-sh” (наглядная информация о размере).
  • В утилиту sort добавлена опция “-h” для сравнения чисел в читаемом представлении.
  • В sulogin улучшена совместимость с пакетом util-linux.
  • В утилите top налажено отображение больших PID/PPID
  • В утилите tree улучшена поддержка Unicode.
  • В утилите xargs реализована опция “-o” (переоткрытие stdin как /dev/tty для работы с интерактивными приложениями).
  • В редактор vi добавлена команда выхода ‘ZQ’ и улучшена обработка нажатия Backspace в режиме замены.
  • Модернизирован генератор псевдослучайных чисел.
  • В утилиту pkill добавлена опция “-e” для показа имени и PID завершаемого процесса.
  • В crond реализована возможность установки переменной окружения PATH в файлах crontab.
  • Устранены проблемы со сборкой на платформах, отличных от Linux.
  • Включена порция исправлений для командных оболочек ash и hush, нацеленных на улучшение совместимости с другими оболочками. В ash добавлена встроенная команда sleep.
  • В fdisk добавлена поддержка защищённых разделов EBBR (Embedded Base Boot Requirements).
Release. Ссылка here.