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

представлений реліз пакету BusyBox 1.32 з реалізацією набору стандартних утиліт UNIX, оформлених у вигляді єдиного файлу, що виконується, і оптимізованих для мінімального споживання системних ресурсів при розмірі комплекту менше 1 Мб. Перший випуск нової гілки 1.32 позиціонується як нестабільний, повна стабілізація буде забезпечена у версії 1.32.1, яка очікується приблизно за місяць. Код проекту розповсюджується під ліцензією GPLv2.

Модульний характер BusyBox дає можливість сформувати один уніфікований файл, що містить у собі довільний набір реалізованих у пакеті утиліт (кожна утиліта доступна у формі символічного посилання на даний файл). Розмір, склад та функціональність колекції утиліт можна варіювати в залежності від потреб та можливостей вбудовуваної платформи, для якої здійснюється складання. Пакет самодостатній, при статичній збірці з uclibc для створення робочої системи поверх ядра Linux потрібно лише створити кілька файлів пристроїв у директорії /dev та підготувати файли конфігурації. Порівняно з минулим випуском 1.31 споживання оперативної пам'яті типовим складанням BusyBox 1.32 збільшилося на 3590 байт (з 1011750 до 1015340 байт).

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

У версії BusyBox 1.32 виділяються такі зміни:

  • Додана нова команда мене для запуску скіптів із заданого файлу Mimfile (чимось нагадує урізану утиліту make);
  • В утиліті find додана опція "-empty" для перевірки порожніх файлів;
  • В утиліті wget розширено ліміт на число перенаправлень та реалізовано підтримку перевірки сертифікатів TLS при збооці з ENABLE_FEATURE_WGET_OPENSSL;
  • У grep додана коректна підтримка списку шаблонів (pattern_list) та додана опція «-R» (рекурсивна обробка вмісту каталогу);
  • Вирішено проблеми, що виявляються при складанні Clang 9 і усунуті попередження компілятора;
  • Запропоновано велику порцію виправлень у командних оболонках ash і hush, націлених на поліпшення сумісності з іншими оболонками. У ash та hush додана можливість автодоповнення вбудованих команд табуляцією. У ash стабілізовано нові вбудовані команди.
  • В утиліті fdisk з'явилася підтримка розділів HFS та HFS+;
  • У init покращена обробка стану гонки при надходженні сигналів;
  • В утиліту наочного моніторингу за параметрами системи nmeter додано формат виведення «%NT» (вирівняний час із нулями);
  • У taskset додана можливість обробки та виведення списку CPU (опція "-c");
  • У tar змінено поведінку опції "-a", яка замість включення стиснення "lzma" тепер пов'язана з автовизначенням розширення файлу;
  • У udhcpc6 додана підтримка режиму «без громадянства» для DHCPv6 (сервер віддає лише параметри мережі без призначення адреси);
  • У nslookup забезпечено обробку відповідей без записів RR і додано підтримку записів SRV;
  • У brctl додані нові команди showmacs і showstp;
  • У dhcpc додана підтримка параметра "relay server";
  • У syslogd додано налаштування для відображення часу з мілісекундною точністю;
  • У httpd при роботі в режимі NOMMU дозволено встановлення іншого домашнього каталогу та забезпечено роботу опції '-h' при запуску фонового процесу;
  • У xargs налагоджено обробку аргументів, укладених у лапки, та забезпечено коректну поведінку опції «-n»;
  • Виправлені недоробки в утилітах grep, top, dc, gzip, awk, bc, ntpd, pidof, stat, telnet, tftp, whois, unzip, chgrp, httpd, vi, route.

Крім того, минулого місяця відбувся реліз Toybox 0.8.3, аналога BusyBox, що розвивається колишнім мейнтейнером BusyBox та поширюваного під ліцензією BSD. Основним призначенням Toybox є надання виробникам можливості використання мінімалістичного набору стандартних утиліт без відкриття вихідних текстів модифікованих компонентів. За можливостями Toybox поки що відстає від BusyBox, але вже реалізовано 272 базові команди (204 повністю і 68 частково) з 343 запланованих.

З нововведень Toybox 0.8.3 можна відзначити:

  • Додані нові команди rtcwake, blkdiscard, getopt та readelf;
  • У «make root» забезпечено можливість створення робочого завантажувального оточення лише на основі ядра Linux та утиліт Toybox, яке може бути завантажене за допомогою власного init-скрипту;
  • Додано початкову підтримку модулів з окремими реалізаціями утиліт, які не входять до основного складу ToyBox;
  • Командний інтерпретатор toysh доведений до готовності на 80% (поки відсутня підтримка функцій, історії, керування терміналом, job-завдань, $((math)), шаблонів);
  • Додано підтримку додаткових опцій у різні утиліти, включаючи patch, cal, cp, mv, lsattr, chattr, ls, id, netcat та setsid.

Джерело: opennet.ru

Додати коментар або відгук