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

Introduit version du paquet Occupé Box 1.31 avec la mise en œuvre d'un ensemble d'utilitaires UNIX standards, 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.31 se positionne comme instable, une stabilisation complète sera assurée dans la version 1.31.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.30, la consommation de RAM de l'assemblage typique de BusyBox 1.31 a diminué de 86 octets (de 1008478 1008392 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, tous deux par l'intermédiaire de суд, et de cette façon des conclusions les accords à l'amiable ont réussi à influencer à plusieurs reprises les entreprises qui ne donnent pas accès au code source des programmes GPL. Parallèlement, l'auteur de BusyBox fait de son mieux pour objets contre une telle protection - estimant que cela ruine son entreprise.

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

  • Ajout de nouvelles commandes : ts (implémentation du client et du serveur pour le protocole TSP (Time-Stamp Protocol)) et i2ctransfer (création et envoi de messages I2C) ;
  • Ajout de la prise en charge des options DHCP pour udhcp 100 (informations de fuseau horaire) et 101 (nom de fuseau horaire dans la base de données TZ) pour IPv6 ;
  • Ajout de la prise en charge des liaisons de nom d'hôte statique pour les clients dans udhcpd ;
  • Les coquilles ash et hush implémentent les littéraux numériques "BASE#nnnn". L'implémentation de la commande ulimit a été rendue compatible bash, y compris les options « -i RLIMIT_SIGPENDING » et « -q RLIMIT_MSGQUEUE ». Ajout de la prise en charge de "wait -n". Ajout de variables EPOCH compatibles bash ;
  • Le shell hush implémente une variable "$-" qui répertorie les options du shell activées par défaut ;
  • Le code pour transmettre des valeurs par référence a été transféré vers bc depuis l'amont, la prise en charge des fonctions void a été ajoutée et la possibilité de travailler avec des valeurs ibase jusqu'à 36 ;
  • Dans brctl, toutes les commandes ont été converties pour fonctionner en utilisant le pseudo-FS /sys ;
  • Le code des utilitaires fsync et sync a été fusionné ;
  • La mise en œuvre de httpd a été améliorée. Traitement amélioré des en-têtes HTTP et travail en mode proxy. La liste des types MIME inclut SVG et JavaScript ;
  • L'option «-c» a été ajoutée à lossetup (double vérification forcée de la taille du fichier associé au périphérique de boucle), ainsi qu'une option d'analyse des partitions. mount et losetup fournissent une prise en charge pour travailler avec /dev/loop-control ;
  • Dans ntpd, la valeur SLEW_THRESHOLD a été augmentée de 0.125 à 0.5 ;
  • Ajout de la prise en charge de l'attribution de valeurs nulles à sysctl ;
  • Ajout de la prise en charge des valeurs fractionnaires dans l'option « -n SEC » à surveiller ;
  • Ajout de la possibilité d'exécuter mdev en tant que processus en arrière-plan ;
  • L'utilitaire wget implémente l'indicateur « -o » pour spécifier le fichier dans lequel écrire le journal. Ajout de notifications sur le début et la fin des téléchargements ;
  • Ajout de la prise en charge de la commande AYT IAC sur telnetd ;
  • Ajout de la commande 'dG' à vi (supprimer le contenu de la ligne actuelle jusqu'à la fin du fichier) ;
  • Ajout de l'option 'oflag=append' à la commande dd ;
  • L'indicateur '-H' a été ajouté à l'utilitaire principal pour permettre l'analyse des threads individuels.

Aussi, il y a deux semaines a eu lieu libération Coffre à jouets 0.8.1, un analogue de BusyBox, développé par l'ancien mainteneur de BusyBox et distribué sous licence BSD. 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. Selon les capacités de Toybox jusqu'à présent en retard de BusyBox, mais 188 commandes de base sur 220 prévues ont déjà été implémentées.

Parmi les innovations de Toybox 0.8.1 on peut noter :

  • Un niveau de fonctionnalité a été atteint, suffisant pour créer Android dans un environnement basé sur les utilitaires Toybox.
  • Les nouvelles commandes mcookie et devmem sont incluses et les commandes tar, gunzip et zcat réécrites sont déplacées de la branche test.
  • Une nouvelle implémentation de vi a été proposée pour test.
  • La commande find prend désormais en charge les options "-wholename/-iwholename".
    "-printf" et "-context" ;

  • Ajout de l'option "--exclude-dir" à grep ;
  • Echo prend désormais en charge l'option "-E".
  • Ajout du support "UUID" pour le montage.
  • La commande date prend désormais en compte le fuseau horaire spécifié dans la variable d'environnement TZ.
  • Ajout de la prise en charge des plages relatives (+N) à sed.
  • Lisibilité améliorée des sorties ps, top et iotop.

Source: opennet.ru

Ajouter un commentaire