Frigivelse af et minimalistisk sæt af systemværktøjer BusyBox 1.35

Udgivelsen af ​​BusyBox 1.35-pakken præsenteres med implementeringen af ​​et sæt standard UNIX-værktøjer, designet som en enkelt eksekverbar fil og optimeret til minimalt forbrug af systemressourcer med en indstillet størrelse på mindre end 1 MB. Den første udgivelse af den nye gren 1.35 er positioneret som ustabil, fuld stabilisering vil blive leveret i version 1.35.1, som forventes om cirka en måned. Projektkoden distribueres under GPLv2-licensen.

Den modulære karakter af BusyBox gør det muligt at oprette én samlet eksekverbar fil, der indeholder et vilkårligt sæt af hjælpeprogrammer implementeret i pakken (hvert hjælpeprogram er tilgængeligt i form af et symbolsk link til denne fil). Størrelsen, sammensætningen og funktionaliteten af ​​samlingen af ​​hjælpeprogrammer kan varieres afhængigt af behovene og mulighederne for den indlejrede platform, som samlingen udføres for. Pakken er selvstændig; når den er bygget statisk med uclibc, for at skabe et fungerende system oven på Linux-kernen, behøver du kun at oprette flere enhedsfiler i /dev-mappen og forberede konfigurationsfiler. Sammenlignet med den tidligere udgivelse 1.34 steg RAM-forbruget af den typiske BusyBox 1.35-samling med 1726 bytes (fra 1042344 til 1044070 bytes).

BusyBox er hovedværktøjet i kampen mod GPL-overtrædelser i firmware. Software Freedom Conservancy (SFC) og Software Freedom Law Center (SFLC) har på vegne af BusyBox-udviklerne gentagne gange med succes påvirket virksomheder, der ikke giver adgang til kildekoden til GPL-programmer, både gennem domstolene og uden for -retsaftaler. Samtidig protesterer forfatteren af ​​BusyBox på det kraftigste mod en sådan beskyttelse - og mener, at det ødelægger hans forretning.

Følgende ændringer er fremhævet i BusyBox 1.35:

  • Find-værktøjet implementerer muligheden "-samefile name" for at kontrollere, om en fil bruger den samme inode som filen med det angivne navn. Samlet kode til tidssammenligning og tilføjede muligheder "-amin", "-atime", "-cmin" og "-ctime" for at kontrollere adgangstid og filoprettelse.
  • Mktemp-værktøjet har tilføjet en "--tmpdir" mulighed for at specificere basisbiblioteket i forhold til hvilke stier, der er forbundet med midlertidige filer, beregnes.
  • Indstillingerne "-ignore-devno" er blevet tilføjet til cpio-værktøjet for at ignorere det rigtige enhedsnummer (0 skrives altid) og "-renumber-inodes" for at omnummerere inoden, før den gemmes i arkivet.
  • I awk-værktøjet er udtrykket "printf %%" blevet justeret.
  • Tilføjet omkring et dusin ændringer til libbb-biblioteket. Forbedret kompatibilitet af realpath med dens modstykke fra coreutils-sættet.
  • Et stort antal rettelser er blevet foreslået til aske- og hush-kommandoskallerne, med det formål at forbedre kompatibiliteten med andre skaller. Ash har tilføjet understøttelse af bash-lignende ERR-fælder, sæt -E og $FUNCNAME og hurtigere strenggenfinding ved hjælp af "${s:}"-udtrykket. I ash and hush er udførelsen af ​​"${x//\*/|}"-operationer blevet fremskyndet.
  • Basename-værktøjet implementerer mulighederne "-a" for at sende flere navne i et opkald og "-s SUFFIX" for at fjerne efterfølgende "SUFFIX"-tegn.
  • Tilføjet "-f" (force) mulighed for at blkdiscard hjælpeprogrammet.
  • httpd er holdt op med at sende Last-Modified/ETag/Content-Length headers for sider med fejl.
  • httpd og telnetd giver mulighed for at ændre standardnetværksporten.
  • Rettede en sårbarhed i tar, der gjorde, at al tilgængelig hukommelse blev forbrugt ved behandling af arkiver med meget lange filnavne.
  • Implementeringen af ​​P256 og x25519 er blevet omarbejdet i TLS-koden.
  • Wget-værktøjet implementerer "--post-file"-indstillingen til at sende filer og giver dig mulighed for at tilpasse indholdet af Content-Type-headeren til "--post-data" og "--post-file" mulighederne.
  • Timeout-værktøjet understøtter nu "-k KILL_SECS"-indstillingen til at sende et SIGKILL-signal, hvis kommandoen ikke fuldføres inden for de yderligere KILL_SECS-sekunder.
  • Understøttelse af indstilling af netns-parameteren for enheder er blevet tilføjet til ip-værktøjet.
  • Cal-værktøjet implementerer "-m"-indstillingen for at vise den angivne måned.
  • Dato- og berøringsværktøjerne gør det muligt at angive en tidszoneforskydning i datoer.
  • I vi-editoren er understøttelse af ~/.exrc-filen tilføjet, og håndteringen af ​​"-c" og EXINIT er blevet ændret.
  • I ed-værktøjet bringes resultatet af udførelse af læse-/skrivekommandoer i overensstemmelse med POSIX-1.2008-specifikationen. Tilføjet understøttelse af "-p"-indstillingen.
  • Tilføjet "-n N" mulighed til cmp-værktøjet for at begrænse sammenligning til N bytes.

Derudover blev Toybox 0.8.6 frigivet for et par dage siden, en analog af BusyBox, udviklet af en tidligere BusyBox-vedligeholder og distribueret under 0BSD-licensen. Hovedformålet med Toybox er at give producenterne mulighed for at bruge et minimalistisk sæt standardværktøjer uden at åbne kildekoden for modificerede komponenter. Med hensyn til muligheder halter Toybox stadig efter BusyBox, men 296 grundlæggende kommandoer er allerede implementeret (217 fuldstændigt og 83 delvist) ud af 374 planlagte.

Blandt innovationerne i Toybox 0.8.6 kan vi bemærke forbedringen af ​​scripts til oprettelse af systembilleder, tilføjelsen af ​​kommandoer sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace og hexdump. Implementerede muligheder "date -s", "pmap -p", "tail -F -s", "kill -0", genstart/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".

Kilde: opennet.ru

Tilføj en kommentar