Release av en minimalistisk uppsättning systemverktyg BusyBox 1.35

Utgivningen av paketet BusyBox 1.35 presenteras med implementeringen av en uppsättning standard UNIX-verktyg, designade som en enda körbar fil och optimerad för minimal förbrukning av systemresurser med en inställd storlek på mindre än 1 MB. Den första utgåvan av den nya 1.35-grenen är positionerad som instabil; full stabilisering kommer att tillhandahållas i version 1.35.1, som förväntas om ungefär en månad. Projektkoden distribueras under GPLv2-licensen.

BusyBox modulära karaktär gör det möjligt att skapa en enhetlig körbar fil som innehåller en godtycklig uppsättning verktyg implementerade i paketet (varje verktyg är tillgängligt i form av en symbolisk länk till denna fil). Storleken, sammansättningen och funktionaliteten hos samlingen av verktyg kan varieras beroende på behoven och kapaciteten hos den inbäddade plattformen för vilken monteringen utförs. Paketet är fristående; när det byggs statiskt med uclibc, för att skapa ett fungerande system ovanpå Linux-kärnan, behöver du bara skapa flera enhetsfiler i /dev-katalogen och förbereda konfigurationsfiler. Jämfört med den tidigare versionen 1.34 ökade RAM-förbrukningen för den typiska BusyBox 1.35-enheten med 1726 byte (från 1042344 till 1044070 byte).

BusyBox är huvudverktyget i kampen mot GPL-överträdelser i firmware. Software Freedom Conservancy (SFC) och Software Freedom Law Center (SFLC), på uppdrag av BusyBox-utvecklarna, har upprepade gånger framgångsrikt påverkat företag som inte ger tillgång till källkoden för GPL-program, både genom domstolar och utanför -rättsöverenskommelser. Samtidigt protesterar författaren till BusyBox starkt mot ett sådant skydd – och tror att det förstör hans verksamhet.

Följande ändringar är markerade i BusyBox 1.35:

  • Sökverktyget implementerar alternativet "-samefile name" för att kontrollera om en fil använder samma inod som filen med det angivna namnet. Enhetlig kod för tidsjämförelse och tillagda alternativ "-amin", "-atime", "-cmin" och "-ctime" för att kontrollera åtkomsttid och filskapande.
  • Verktyget mktemp har lagt till ett "--tmpdir"-alternativ för att specificera baskatalogen i förhållande till vilka sökvägar associerade med temporära filer beräknas.
  • Alternativen "-ignore-devno" har lagts till i cpio-verktyget för att ignorera det verkliga enhetsnumret (0 skrivs alltid) och "-renumber-inodes" för att numrera om inoden innan den lagras i arkivet.
  • I awk-verktyget har uttrycket "printf %%" justerats.
  • Lade till ungefär ett dussin ändringar i libbb-biblioteket. Förbättrad kompatibilitet för realpath med dess motsvarighet från coreutils-uppsättningen.
  • Ett stort antal korrigeringar har föreslagits för kommandoskalen ask och hush, som syftar till att förbättra kompatibiliteten med andra skal. Ash har lagt till stöd för bash-liknande ERR-fällor, set -E och $FUNCNAME, och snabbare stränghämtning med uttrycket "${s:}". I aska och tyst har exekveringen av "${x//\*/|}"-operationer påskyndats.
  • Basnamnsverktyget implementerar alternativen "-a" för att skicka flera namn i ett anrop och "-s SUFFIX" för att ta bort efterföljande "SUFFIX"-tecken.
  • Lade till alternativet "-f" (forcera) för att blkdiscard-verktyget.
  • httpd har slutat skicka Last-Modified/ETag/Content-Length rubriker för sidor med fel.
  • httpd och telnetd ger möjlighet att ändra standardnätverksporten.
  • Fixade en sårbarhet i tar som gjorde att allt tillgängligt minne förbrukades vid bearbetning av arkiv med mycket långa filnamn.
  • Implementeringen av P256 och x25519 har omarbetats i TLS-koden.
  • Verktyget wget implementerar alternativet "--post-file" för att skicka filer och låter dig anpassa innehållet i Content-Type-huvudet för alternativen "--post-data" och "--post-file".
  • Timeout-verktyget stöder nu alternativet "-k KILL_SECS" för att skicka en SIGKILL-signal om kommandot inte slutförs inom ytterligare KILL_SECS sekunder.
  • Stöd för att ställa in netns-parametern för enheter har lagts till i ip-verktyget.
  • Verktyget cal implementerar alternativet "-m" för att visa den angivna månaden.
  • Datum- och pekverktygen gör det möjligt att ange en tidszonförskjutning i datum.
  • I vi-editorn har stöd för ~/.exrc-filen lagts till, och hanteringen av "-c" och EXINIT har ändrats.
  • I ed-verktyget bringas resultatet av exekvering av läs-/skrivkommandon i överensstämmelse med POSIX-1.2008-specifikationen. Lade till stöd för alternativet "-p".
  • Lade till alternativet "-n N" till cmp-verktyget för att begränsa jämförelsen med N byte.

Dessutom, för några dagar sedan, släpptes Toybox 0.8.6, en analog till BusyBox, utvecklad av en före detta BusyBox-underhållare och distribuerad under 0BSD-licensen. Huvudsyftet med Toybox är att ge tillverkare möjligheten att använda en minimalistisk uppsättning standardverktyg utan att öppna källkoden för modifierade komponenter. När det gäller kapacitet släpar Toybox fortfarande efter BusyBox, men 296 grundläggande kommandon har redan implementerats (217 helt och 83 delvis) av 374 planerade.

Bland innovationerna i Toybox 0.8.6 kan vi notera förbättringen av skript för att skapa systembilder, tillägget av kommandon sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace och hexdump. Implementerade alternativ "date -s", "pmap -p", "tail -F -s", "kill -0″, reboot/halt/poweroff -d", "tail -bytes -lines", "i2cdetect -q" , "hitta -quit -lname -ilname -d", "cut -d $'\n'", "cut -nb", "cpio -ignore-devno -renumber-inodes", "tar -selinux", "split -n", "grep -L".

Källa: opennet.ru

Lägg en kommentar