Release van de minimalistische set systeemhulpmiddelen BusyBox 1.35

De release van het pakket BusyBox 1.35 is gepresenteerd, met een implementatie van een set standaard UNIX-hulpmiddelen, gepresenteerd in de vorm van één uitvoerbaar bestand en geoptimaliseerd voor minimaal verbruik van systeembronnen bij een pakketgrootte van minder dan 1 MB. De eerste release van de nieuwe tak 1.35 wordt gepositioneerd als instabiel; volledige stabilisatie zal worden gegarandeerd in versie 1.35.1, die naar verwachting over ongeveer een maand zal verschijnen. De code van het project wordt verspreid onder de GPLv2-licentie.

De modulaire aard van BusyBox maakt het mogelijk om één uniforme uitvoerbare bestand te vormen, dat een willekeurige set van in het pakket geïmplementeerde hulpmiddelen bevat (elke tool is beschikbaar in de vorm van een symbolische link naar dit bestand). De grootte, samenstelling en functionaliteit van de collectie hulpmiddelen kunnen variëren afhankelijk van de behoeften en mogelijkheden van het ingebedde platform waarvoor de build wordt gemaakt. Het pakket is zelfvoorzienend; bij een statische build met uclibc zijn slechts enkele apparaatsbestanden in de directory \/dev vereist en moeten configuratiebestanden worden voorbereid om een werkend systeem bovenop de Linux-kernel te creëren. In vergelijking met de vorige release 1.34 is het geheugengebruik van de typische build van BusyBox 1.35 gestegen met 1726 bytes (van 1042344 naar 1044070 bytes).

BusyBox is een essentieel hulpmiddel in de strijd tegen schendingen van de GPL in firmware. Organisaties als de Software Freedom Conservancy (SFC) en het Software Freedom Law Center (SFLC) hebben namens de ontwikkelaars van BusyBox zowel via de rechtbank als door middel van buitengerechtelijke overeenkomsten herhaaldelijk met succes invloed uitgeoefend op bedrijven die geen toegang bieden tot de broncode van GPL-software. Tegelijkertijd verzet de auteur van BusyBox zich tegen dergelijke bescherming, omdat hij vindt dat het zijn bedrijf schaadt.

In versie BusyBox 1.35 zijn de volgende wijzigingen aangebracht:

  • In de find-tool is de optie «-samefile bestandsnaam» geïmplementeerd om te controleren of een bestand hetzelfde inode gebruikt als het bestand met de opgegeven naam. De code voor het vergelijken van tijden is uniform gemaakt en er zijn opties «-amin», «-atime», «-cmin» en «-ctime» toegevoegd voor het controleren van toegangstijden en creatietijden van bestanden.
  • In de mktemp-tool is de optie «—tmpdir» toegevoegd om een basisdirectory op te geven, waarvanuit de paden van tijdelijke bestanden worden berekend.
  • In de cpio-tool zijn de opties "—ignore-devno" toegevoegd om het werkelijke apparaatsnummer te negeren (altijd geschreven als 0) en "—renumber-inodes" voor het hernoemen van inodes voordat ze in het archief worden geplaatst.
  • In de awk-tool is het gebruik van de expressie "printf %%" geoptimaliseerd.
  • Ongeveer een dozijn wijzigingen zijn aangebracht in de libbb-bibliotheek. De compatibiliteit van realpath met de analoge functie uit de coreutils-set is verbeterd.
  • Er is een grote hoeveelheid correcties voorgesteld in de commando-shells ash en hush, gericht op het verbeteren van de compatibiliteit met andere shells. In ash is ondersteuning voor bash-achtige ERR traps, set -E en $FUNCNAME toegevoegd, en de uitvoering van strings is versneld met de expressie "${s:}". In ash en hush is de uitvoering van de operaties "${x//\*\/|}" versneld.
  • In de basename-tool zijn de opties "-a" voor het doorgeven van meerdere namen bij één oproep en "-s SUFFIX" voor het verwijderen van eindtekens "SUFFIX" geïmplementeerd.
  • In de blkdiscard-tool is de optie "-f" (force) toegevoegd.
  • In httpd is het versturen van de headers Last-Modified / ETag / Content-Length voor foutpagina's stopgezet.
  • In httpd en telnetd is de mogelijkheid om de standaard netwerkpoort te wijzigen toegevoegd.
  • In tar is een kwetsbaarheid verholpen die leidde tot het uitputten van al het beschikbare geheugen bij het verwerken van archieven met zeer lange bestandsnamen.
  • In de TLS-code is de implementatie van P256 en x25519 herzien.
  • In de wget-tool is de optie "—post-file" geïmplementeerd voor het verzenden van bestanden en is het mogelijk gemaakt om de inhoud van de Content-Type header voor de opties "—post-data" en "—post-file" aan te passen.
  • In de timeout-tool is ondersteuning voor de optie "-k KILL_SECS" toegevoegd om het SIGKILL-signaal te verzenden als de opdracht niet binnen de aanvullende KILL_SECS-seconden is beëindigd.
  • In de ip-tool is ondersteuning toegevoegd voor het instellen van de netns-parameter voor apparaten.
  • In de cal-tool is de optie "-m" geïmplementeerd om de opgegeven maand weer te geven.
  • In de tools date en touch is het mogelijk gemaakt om een tijdzone-offset op te geven in datums.
  • In de vi-editor is ondersteuning voor het bestand ~ / .exrc toegevoegd, is de verwerking van "-c" en EXINIT gewijzigd.
  • In de ed-tool is de uitvoer van de read / write-opdrachten in overeenstemming gebracht met de POSIX-1.2008-specificatie. De optie "-p" is toegevoegd.
  • In de cmp-tool is de optie "-n N" toegevoegd om de vergelijking te beperken tot N bytes.

Bovendien is enkele dagen geleden de release van Toybox 0.8.6 aangekondigd, de tegenhanger van BusyBox, ontwikkeld door de voormalige maintainer van BusyBox en verspreid onder de 0BSD-licentie. Het belangrijkste doel van Toybox is om fabrikanten in staat te stellen een minimalistische set standaardhulpmiddelen te gebruiken zonder de broncode van gemodificeerde componenten te openen. Wat betreft functionaliteit blijft Toybox voorlopig achter bij BusyBox, maar er zijn al 296 basiscommando's (217 compleet en 83 gedeeltelijk) gerealiseerd van de geplande 374.

Van de vernieuwingen in Toybox 0.8.6 kunnen we de verbeteringen van scripts voor het maken van systeemafbeeldingen, de toevoeging van de commando's sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace en hexdump opmerken. De opties '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' zijn geïmplementeerd.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster