Bemutatásra került a BusyBox 1.35 kiadása, amely az UNIX standard segédprogramjainak együttesét tartalmazza, egyetlen végrehajtható fájlba foglalva és optimalizálva van a rendszererőforrások minimális fogyasztására, méretének kevesebb mint 1 MB-ra csökkentésével. Az új 1.35-ös ági első kiadás instabilnak minősül, a teljes stabilizálás az 1.35.1 verzióban várható, amely körülbelül egy hónap múlva érkezik. A projekt kódja GPLv2 licenc alatt kerül terjesztésre.
A BusyBox moduláris jellege lehetővé teszi egy egységes végrehajtható fájl létrehozását, amely bármilyen, a csomagban megvalósított segédprogramokból álló halmazt tartalmaz (minden segédprogram szimbolikus hivatkozás formájában érhető el ezen fájlra). A segédprogramok gyűjteményének méretét, összetételét és funkcióját a beágyazott platform szükségleteihez és képességeihez igazíthatjuk, amelyhez a gyűjtés megtörténik. A csomag önállóan működőképes, statikus összeszereléssel az uclibc-vel, hogy működő rendszert hozzunk létre a Linux kernel fölött, mindössze néhány eszközfájlt kell létrehozni a /dev könyvtárban, és előkészíteni a konfigurációs fájlokat. A 1.34-es korábbi kiadáshoz képest a BusyBox 1.35 átlagos memóriafogyasztása 1726 bájttal nőtt (1042344-ről 1044070 bájtra).
A BusyBox a GPL megsértése elleni küzdelem alapvető eszköze a firmware-ekben. A Software Freedom Conservancy (SFC) és a Software Freedom Law Center (SFLC) a BusyBox fejlesztőinek nevében bíróságon és peren kívüli megállapodások révén többször sikeresen hatott azokra a vállalatokra, amelyek nem biztosítanak hozzáférést a GPL programok forráskódjához. Ugyanakkor a BusyBox szerzője minden lehetséges módon ellenzi ezt a védelmet, mivel úgy véli, hogy az tönkreteszi az üzletét.
A BusyBox 1.35 verzióban a következő változások figyelhetők meg:
- A find segédprogramhoz hozzáadódott a «-samefile név» opció, amely ellenőrzi, hogy a megadott névvel rendelkező fájl ugyanazon inode-ot használja-e. Az idő összehasonlításához egységesített kód került bevezetésre, és új opciók «-amin», «-atime», «-cmin» és «-ctime» kerültek hozzáadásra a fájl hozzáférési és létrehozási idejének ellenőrzéséhez.
- A mktemp segédprogramhoz hozzáadódott a «—tmpdir» opció, amely lehetővé teszi az alapmappa megadását, amelyhez a ideiglenes fájlokkal kapcsolatos útvonalakat viszonyítjuk.
- A cpio segédprogramhoz új opciók kerültek bevezetésre: «—ignore-devno» a tényleges eszközszám figyelmen kívül hagyására (mindig 0-t ír ki) és «—renumber-inodes» az inode-ok újraszámozására a fájl archívumba helyezés előtt.
- Az awk segédprogramban a «printf %%» kifejezés működését helyreállították.
- Körülbelül tucatnyi változtatás került bevezetésre a libbb könyvtárba. A realpath kompatibilitása javult a coreutils analógjával.
- A nagyobb javítócsomagok javaslata ash és hush parancsértelmezőkben, a más terminálokkal való kompatibilitás javítására összpontosítva. Az ash támogatja a bash-szerű ERR trap, set -E és $FUNCNAME használatát, valamint felgyorsítja a karakterláncok kinyerését a "${s:}" kifejezés segítségével. Az ash és hush végrehajtási műveleteit a "${x//\*/|}" felgyorsították.
- A basename eszközben megvalósításra kerültek az "-a" opciók, amelyek lehetővé teszik több név átadását egy hívás során, és a "-s SUFFIX" opció a végső "SUFFIX" karakterek eltávolítására.
- A blkdiscard eszközhöz hozzáadódott az "-f" (force) opció.
- A httpd megszüntette a Last-Modified / ETag / Content-Length fejléc küldését hibás oldalak esetén.
- A httpd és a telnetd lehetőséget biztosít a hálózati alapértelmezett port módosítására.
- A tar-ban megszüntették azt a sebezhetőséget, amely miatt a rendszer a rendelkezésre álló memóriát teljesen felhasználta, ha nagyon hosszú fájlnevekkel rendelkező archívumokat dolgozott fel.
- A TLS kódban átdolgozták a P256 és x25519 megvalósítást.
- A wget eszközben megvalósításra került a "--post-file" opció fájlok küldésére, és lehetővé vált a Content-Type fejléc tartalmának testreszabása a "--post-data" és "--post-file" opciókhoz.
- A timeout eszközhöz hozzáadták a "-k KILL_SECS" opció támogatását, hogy SIGKILL jelet küldjön, ha a parancs nem fejeződik be a plusz KILL_SECS másodpercen belül.
- Az ip eszközbe hozzáadták a netns paraméter beállításának támogatását készülékekhez.
- A cal eszközben megvalósításra került az "-m" opció egy megadott hónap megjelenítésére.
- A date és touch eszközökben lehetővé vált az időzónakésési eltérés megadása a dátumokban.
- A vi szerkesztőbe hozzáadták a ~/.exrc fájl támogatását, módosították a "-c" és EXINIT feldolgozását.
- Az ed eszközben a read/write parancsok végrehajtásának eredményét összehangolták a POSIX-1.2008 specifikációval. Hozzáadták az "-p" opció támogatását.
- A cmp eszközhöz hozzáadták a "-n N" opciót a N bájtra való összehasonlítás korlátozására.
Továbbá, néhány nappal ezelőtt megjelent a Toybox 0.8.6, a BusyBox megfelelője, amelyet a BusyBox korábbi karbantartója fejlesztett és a 0BSD licenc alatt terjesztenek. A Toybox fő célja, hogy a gyártók számára lehetővé tegye egy minimalista standard segédprogramcsomag használatát az átkonvertált komponensek forráskódjának felfedése nélkül. A Toybox jelenlegi teljesítménye még elmarad a BusyBox-tól, de már 296 alapvető parancsot valósítottak meg (217 teljesen és 83 részben) a tervezett 374-ből.
A Toybox 0.8.6 újdonságai közül megemelhető a rendszerképek készítésére szolgáló szkriptek fejlesztése, valamint a sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace és hexdump parancsok hozzáadása. Megvalósították a következő opciókat: «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».
Forrás: opennet.ru
