Après près de deux ans de développement, la version du paquet BusyBox 1.37 est publiée, comprenant un ensemble d'outils UNIX standard, regroupés dans un seul fichier exécutable et optimisés pour une consommation minimale des ressources système, le tout pour une taille inférieure à 1 Mo. Le premier lancement de la nouvelle branche 1.37 est considéré comme instable, une stabilisation complète sera assurée dans la version 1.37.1, attendue dans quelques mois. Le code du projet est distribué sous la licence GPLv2.
La nature modulaire de BusyBox permet de créer un fichier exécutable unifié, contenant un ensemble arbitraire des outils implémentés dans le paquet (chaque outil est accessible sous la forme d'un lien symbolique vers ce fichier). La taille, la composition et la fonctionnalité de la collection d'outils peuvent être variées en fonction des besoins et des capacités de la plateforme embarquée pour laquelle la compilation est effectuée. Le paquet est autonome, avec une compilation statique utilisant uclibc pour créer un système fonctionnel au-dessus du noyau Linux, il suffit de créer quelques fichiers de périphériques dans le répertoire /dev et de préparer les fichiers de configuration. Comparé à la version précédente 1.36, la consommation de mémoire vive pour la compilation standard de BusyBox 1.37 a augmenté de 1535 octets (de 1022792 à 1024327 octets).
BusyBox est un outil principal dans la lutte contre les violations de la GPL dans les firmwares. Les organisations Software Freedom Conservancy (SFC) et Software Freedom Law Center (SFLC) ont, au nom des développeurs de BusyBox, à plusieurs reprises exercé des pressions réussies sur les entreprises qui ne fournissent pas d'accès au code source des programmes sous GPL, que ce soit par voie judiciaire ou par des accords extrajudiciaires. En même temps, l'auteur de BusyBox s'oppose vivement à cette protection, considérant qu'elle nuit à son entreprise.
Parmi les changements notables dans BusyBox 1.37 :
- Ajout de l'implémentation de l'outil getfattr pour afficher les attributs étendus des fichiers.
- Dans udhcpd, prise en charge optionnelle du protocole BOOTP.
- Dans l'outil hwclock, ajout de la possibilité d'afficher et de régler les paramètres RTC (Real-Time Clock). Par exemple, pour lire « hwclock —param-get bsm », et pour modifier « hwclock -p bsm=1 ».
- Dans la commande « ip link », ajout de la prise en charge de la configuration des dispositifs CAN en utilisant l'interface netlink (« ip link set type can »).
- L'utilitaire find a implémenté l'option « -ok commande » pour exécuter une commande après avoir demandé une confirmation à l'utilisateur pour cette opération.
- Une nouvelle série de corrections a été ajoutée pour les shells ash et hush, visant à améliorer la compatibilité avec d'autres shells. La prise en charge de l'auto-complétion pour les noms de fonctions et d'alias avec la touche Tab a été ajoutée. Une implémentation intégrée de la commande « false » a été ajoutée dans hush.
- Un nouveau drapeau « -E » a été implémenté dans awk pour lire le texte du script à partir d'un fichier.
- L'utilitaire od a implémenté l'option « -B » (alias de « -t o2 ») pour afficher des valeurs de 2 octets en octal.
- Dans l'utilitaire time, l'option « -f FMT » permet désormais d'échapper des caractères à l'aide de séquences « \escape » et « %% ».
- L'utilitaire top a amélioré l'affichage des identifiants PID de grande taille.
- Dans readlink, un support pour le séparateur « — » a été ajouté et la compatibilité avec la norme POSIX a été améliorée concernant l'application de l'option « -n ».
- Des options « -O/—output » (redirection de sortie) et « -d DIR » (changement de répertoire par défaut) ont été ajoutées à la commande start-stop-daemon.
- La compatibilité entre le client et de serveurs NTP avec le temps après 2038 a été assurée.
Source : opennet.ru
