Byl vydán balíček BusyBox 1.35, který implementuje sadu standardních nástrojů UNIX zformovaných do jediného spustitelného souboru a optimalizovaných pro minimální spotřebu systémových zdrojů při velikosti soupravy menší než 1 MB. První vydání nové větve 1.35 je označeno jako nestabilní, plné zajištění stability bude poskytováno ve verzi 1.35.1, která se očekává přibližně za měsíc. Kód projektu je distribuován pod licencí GPLv2.
Modulární charakter BusyBox umožňuje vytvořit jeden sjednocený spustitelný soubor, který obsahuje libovolnou sadu implementovaných nástrojů z balíčku (každý nástroj je dostupný ve formě symbolického odkazu na tento soubor). Velikost, obsah a funkčnost sbírky nástrojů lze variabilizovat podle potřeb a možností vestavěné platformy, pro kterou se provádí sestavení. Balíček je soběstačný, při statickém sestavení s uClibc je pro vytvoření funkčního systému nad jádrem Linux třeba pouze vytvořit několik zařízení v adresáři /dev a připravit konfigurační soubory. Ve srovnání s předchozím vydáním 1.34 vzrostla spotřeba operační paměti typovým sestavením BusyBox 1.35 o 1726 bajtů (z 1042344 na 1044070 bajtů).
BusyBox je základním nástrojem v boji proti porušování GPL v firmwarech. Organizace Software Freedom Conservancy (SFC) a Software Freedom Law Center (SFLC) jménem vývojářů BusyBox úspěšně zasahovaly proti společnostem, které neposkytují přístup k zdrojovému kódu GPL programů, jak prostřednictvím soudní cesty, tak uzavřením mimo soudních dohod. Zároveň autor BusyBox vehementně odporuje takové ochraně – považuje ji za porušení svého podnikání.
Ve verzi BusyBox 1.35 se zvýrazňují následující změny:
- V nástroji find byla implementována volba „-samefile jméno“ pro kontrolu, zda soubor používá stejný inode jako soubor s uvedeným jménem. Kód pro porovnávání času byl sjednocen a byly přidány volby „-amin“, „-atime“, „-cmin“ a „-ctime“ pro kontrolu času přístupu a vytvoření souboru.
- Do nástroje mktemp byla přidána volba „—tmpdir“ pro určení základního adresáře, vůči kterému se počítají cesty související s dočasnými soubory.
- Do nástroje cpio byly přidány volby „—ignore-devno“ pro ignorování skutečného čísla zařízení (vždy se zapisuje 0) a „—renumber-inodes“ pro přenumerování inode před vložením do archivu.
- V nástroji awk byla nastavena funkčnost výrazu „printf %%“.
- Bylo přidáno přibližně deset změn do knihovny libbb. Byla vylepšena kompatibilita realpath s analogem z balíčku coreutils.
- Bylo navrženo velké množství oprav v příkazových shellech ash a hush, zaměřených na zlepšení kompatibility s jinými shelly. Do ash byla přidána podpora bash-podobných ERR trap, set -E a $FUNCNAME, a také byla zrychlena extrakce řetězců pomocí výrazu "${s:}". V ash a hush bylo zrychleno provádění operací "${x///*/|}".
- V nástroji basename byly implementovány možnosti "-a" pro předávání několika názvů při jednom volání a "-s SUFFIX" pro odstranění koncových znaků "SUFFIX".
- Do nástroje blkdiscard byla přidána možnost "-f" (force).
- V httpd bylo zastaveno odesílání hlaviček Last-Modified / ETag / Content-Length pro chybové stránky.
- V httpd a telnetd byla přidána možnost změny výchozího síťového portu.
- V tar byla odstraněna zranitelnost, která vedla k vyčerpání veškeré dostupné paměti při zpracování archivů s velmi dlouhými názvy souborů.
- V kódu TLS byla přepracována implementace P256 a x25519.
- V nástroji wget byla implementována možnost "—post-file" pro odesílání souborů a bylo povoleno nastavovat obsah hlavičky Content-Type pro možnosti "—post-data" a "—post-file".
- Do nástroje timeout byla přidána podpora volby "-k KILL_SECS" pro odeslání signálu SIGKILL, pokud příkaz neskončil do dalších KILL_SECS sekund.
- Do nástroje ip byla přidána podpora pro nastavení parametru netns pro zařízení.
- V nástroji cal byla implementována možnost "-m" pro zobrazení zvoleného měsíce.
- V nástrojích date a touch bylo povoleno zadání offsetu časového pásma v datech.
- V editoru vi byla přidána podpora pro soubor ~/exrc, byla změněna manipulace s "-c" a EXINIT.
- V nástroji ed byl výsledek provádění příkazů read/write uveden do souladu se specifikací POSIX-1.2008. Byla přidána podpora možnosti "-p".
- Do nástroje cmp byla přidána možnost "-n N" pro omezení porovnání na N bajtů.
Kromě toho před několika dny byl vydán Toybox 0.8.6, ekvivalent BusyBox, vyvíjený bývalým udržovatelem BusyBox a distribuovaný pod licencí 0BSD. Hlavním účelem Toyboxu je poskytnout výrobcům možnost využít minimalistickou sadu standardních nástrojů bez otevření zdrojových kódů modifikovaných komponent. Po funkcích Toybox zatím zaostává za BusyBox, ale již implementovalo 296 základních příkazů (217 zcela a 83 částečně) z 374 plánovaných.
Mezi novinkami Toybox 0.8.6 stojí za zmínku vylepšení skriptů pro vytváření systémových obrazů, přidání příkazů sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace a hexdump. Byly implementovány možnosti „date -s“, „pmap -p“, „tail -F -s“, „kill -0“, reboot/halt/poweroff -d, „tail —bytes —lines“, „i2cdetect -q“, „find -quit -lname -ilname -d“, „cut -d $’\n'“, „cut -nb“, „cpio —ignore-devno —renumber-inodes“, „tar —selinux“, „split -n“, „grep -L“.
Zdroj: opennet.ru
