Sortie d'un ensemble minimaliste d'utilitaires système BusyBox 1.35

La version du package BusyBox 1.35 est présentée avec la mise en œuvre d'un ensemble d'utilitaires UNIX standard, conçus comme un fichier exécutable unique et optimisé pour une consommation minimale de ressources système avec une taille définie inférieure à 1 Mo. La première version de la nouvelle branche 1.35 se positionne comme instable ; une stabilisation complète sera assurée dans la version 1.35.1, attendue dans environ un mois. Le code du projet est distribué sous licence GPLv2.

La nature modulaire de BusyBox permet de créer un fichier exécutable unifié contenant un ensemble arbitraire d'utilitaires implémentés dans le package (chaque utilitaire est disponible sous la forme d'un lien symbolique vers ce fichier). La taille, la composition et la fonctionnalité de l'ensemble d'utilitaires peuvent varier en fonction des besoins et des capacités de la plate-forme embarquée pour laquelle l'assemblage est effectué. Le package est autonome ; lorsqu'il est construit de manière statique avec uclibc, pour créer un système fonctionnel au-dessus du noyau Linux, il vous suffit de créer plusieurs fichiers de périphérique dans le répertoire /dev et de préparer les fichiers de configuration. Par rapport à la version précédente 1.34, la consommation de RAM de l'assemblage typique de BusyBox 1.35 a augmenté de 1726 1042344 octets (de 1044070 XNUMX XNUMX à XNUMX XNUMX XNUMX octets).

BusyBox est le principal outil de lutte contre les violations de la GPL dans le firmware. Le Software Freedom Conservancy (SFC) et le Software Freedom Law Center (SFLC), au nom des développeurs de BusyBox, ont réussi à influencer à plusieurs reprises les entreprises qui ne donnent pas accès au code source des programmes GPL, tant devant les tribunaux qu'à l'extérieur. -les accords judiciaires. Dans le même temps, l'auteur de BusyBox s'oppose fermement à une telle protection, estimant qu'elle ruine son entreprise.

Les changements suivants sont mis en évidence dans BusyBox 1.35 :

  • L'utilitaire de recherche implémente l'option "-samefile name" pour vérifier si un fichier utilise le même inode que le fichier portant le nom spécifié. Code unifié pour la comparaison du temps et options ajoutées "-amin", "-atime", "-cmin" et "-ctime" pour vérifier l'heure d'accès et la création de fichiers.
  • L'utilitaire mktemp a ajouté une option "--tmpdir" pour spécifier le répertoire de base par rapport auquel les chemins associés aux fichiers temporaires sont calculés.
  • Les options « -ignore-devno » ont été ajoutées à l'utilitaire cpio pour ignorer le vrai numéro de périphérique (0 est toujours écrit) et « -renumber-inodes » pour renuméroter l'inode avant de le stocker dans l'archive.
  • Dans l'utilitaire awk, l'expression « printf %% » a été ajustée.
  • Ajout d'une douzaine de modifications à la bibliothèque libbb. Compatibilité améliorée de realpath avec son homologue de l'ensemble coreutils.
  • Un grand nombre de correctifs ont été proposés pour les shells de commande ash et hush, visant à améliorer la compatibilité avec d'autres shells. Ash a ajouté la prise en charge des pièges ERR de type bash, set -E et $FUNCNAME, ainsi qu'une récupération plus rapide des chaînes à l'aide de l'expression "${s:}". En cendre et silence, l'exécution des opérations "${x//\*/|}" a été accélérée.
  • L'utilitaire basename implémente les options "-a" pour transmettre plusieurs noms en un seul appel et "-s SUFFIX" pour supprimer les caractères "SUFFIX" de fin.
  • Ajout de l'option "-f" (force) à l'utilitaire blkdiscard.
  • httpd a cessé d'envoyer les en-têtes Last-Modified/ETag/Content-Length pour les pages contenant des erreurs.
  • httpd et telnetd offrent la possibilité de modifier le port réseau par défaut.
  • Correction d'une vulnérabilité dans tar qui entraînait la consommation de toute la mémoire disponible lors du traitement d'archives avec des noms de fichiers très longs.
  • L'implémentation de P256 et x25519 a été retravaillée dans le code TLS.
  • L'utilitaire wget implémente l'option "--post-file" pour l'envoi de fichiers et vous permet de personnaliser le contenu de l'en-tête Content-Type pour les options "--post-data" et "--post-file".
  • L'utilitaire de délai d'attente prend désormais en charge l'option "-k KILL_SECS" pour envoyer un signal SIGKILL si la commande ne se termine pas dans les secondes KILL_SECS supplémentaires.
  • La prise en charge de la définition du paramètre netns pour les appareils a été ajoutée à l'utilitaire ip.
  • L'utilitaire cal implémente l'option "-m" pour afficher le mois spécifié.
  • Les utilitaires de date et tactile permettent de spécifier un décalage de fuseau horaire dans les dates.
  • Dans l'éditeur vi, la prise en charge du fichier ~/.exrc a été ajoutée et la gestion de « -c » et EXINIT a été modifiée.
  • Dans l'utilitaire ed, le résultat de l'exécution des commandes de lecture/écriture est mis en conformité avec la spécification POSIX-1.2008. Ajout de la prise en charge de l'option "-p".
  • Ajout de l'option "-n N" à l'utilitaire cmp pour limiter la comparaison à N octets.

De plus, il y a quelques jours, Toybox 0.8.6 est sorti, un analogue de BusyBox, développé par un ancien mainteneur de BusyBox et distribué sous licence 0BSD. L'objectif principal de Toybox est de fournir aux fabricants la possibilité d'utiliser un ensemble minimaliste d'utilitaires standards sans ouvrir le code source des composants modifiés. En termes de capacités, Toybox est encore en retard sur BusyBox, mais 296 commandes de base ont déjà été implémentées (217 complètement et 83 partiellement) sur 374 prévues.

Parmi les innovations de Toybox 0.8.6 on peut noter l'amélioration des scripts de création d'images système, l'ajout des commandes sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace et hexdump. Options implémentées « 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".

Source: opennet.ru

Ajouter un commentaire