![]() |
Licence Creative Commons by-nc-nd
(Paternité, pas d'utilisation commerciale, pas de modification) |
Le projet BusyBox, souvent appelé le "couteau suisse des GNU/Linux", combine un grand nombre d'utilitaires systèmes Unix/Linux en les réunissant en un seul exécutable portant le même nom que le projet. BusyBox intègre entre autres un shell (ash), un serveur HTTP, un serveur FTP, un serveur TFTP, un serveur DHCP, et bien d'autres.
BusyBox permet de réduire considérablement l'empreinte mémoire des utilitaires systèmes et des programmes : de 4 Ko à 1 Mo suivant le mode de compilation (bibliothèques statiques ou dynamiques) et le nombre d'utilitaires. Les systèmes embarqués sous GNU/Linux, aux ressources matérielles limitées, utilisent en très grande majorité BusyBox. Ce dernier est installé dans la plupart des "boxes" fournies par les fournisseurs d'accès à Internet, dans les logiciels embarqués pilotant les routeurs, dans les distributions dites "lives" (exécution du système d'exploitation sans installation) sur CD/DVD ou sur clé USB comme Knoppix.
C'est un outil incontournable dans le monde de l'embarqué. Par défaut, tous les utilitaires systèmes Unix/Linux les plus utilisés (bzip2, cp, date, echo, sed, ls, tar, which, ...) ainsi que beaucoup de logiciels serveurs (HTTP, FTP, TFTP, DHCP, ...) sont proposés à la compilation. Toutefois, il est possible de les choisir un à un à l'aide d'un menu intuitif pour qu'ils soient ou non inclus dans l'exécutable final.
BusyBox entre dans le cadre de la conception d'un système embarqué. C'est un élément du système d'exploitation. C'est pourquoi il est indispensable d'avoir un chargeur de démarrage, un noyau Linux et un système de fichiers fonctionnels pour utiliser BusyBox. Cependant, ce dernier peut être testé en "chrootant" le répertoire contenant l'ensemble des bibliothèques et l'exécutable BusyBox. En général BusyBox est cross-compilé sur un processeur x86 pour une architecture ARM ou MIPS.
Le Laboratoire de Physique de la Matière Condensée utilise une carte électronique embarquée pour piloter à distance un oscilloscope numérique sur une expérience scientifique de type RMN (Résonance Magnétique Nucléaire). Le chargeur de démarrage, le noyau Linux et l'ensemble du système de fichiers de la carte électronique ont été complètement ré-installés et personnalisés pour l'expérience scientifique. BusyBox est pleinement fonctionnel sur cette carte embarquée.
L'écrasante majorité des cartes pilotées par GNU/Linux et vendues dans le commerce contiennent BusyBox. Il est possible de concevoir sa propre carte embarquée et d'y inclure un chargeur de démarrage (bootloader), un noyau Linux, un système de fichiers minimaliste (les répertoires /etc et /dev) et BusyBox (à la suite de sa compilation sont créés automatiquement l'exécutable et les répertoires /bin, /lib, /sbin et /usr).
En outre, la quasi totalité des distributions GNU/Linux fournissent les binaires, ainsi que les sources de BusyBox.
BusyBox existe aussi pour le système Android (dans le "market" de Google).
GNU/Linux, Android, et toutes les plateformes matérielles supportées par gcc
L'auteur initial du projet est Bruce Perens (développeur et avocat). Les développeurs actifs sont Erik Andersen, Rob Landley, Denys Vlasenko et beaucoup d'autres.
Utilisé dans l'écrasante majorité de systèmes embarqués tournant sous GNU/Linux.
Quelques exemples connus par l'auteur et les relecteurs de la fiche.
Visiteurs de la fiche, si vous connaissez le produit et voulez bien partager votre expérience, utilisez les commentaires en bas de page pour ajouter une description de votre projet.
Voici le lien contenant une définition de l'ensemble des commandes principales contenues dans BusyBox : http://www.busybox.net/downloads/BusyBox.html
Il existe également une Foire Aux Questions (F.A.Q.) : http://www.busybox.net/FAQ.html
Un bref résumé "Busybox in a nutshell" a été rédigé par Pierre Ficheux, un des leaders francophones en programmation Linux embarqué : http://pficheux.free.fr/articles/lmf/hs24/busybox/bb_nutshell.pdf
L'URL suivant vous dirige vers un émulateur où vous pourrez tester BusyBox dans sa version 1.20.0 :
http://www.busybox.net/live_bbox/live_bbox.html
Tapez ensuite la commande : busybox | more
Vous verrez alors la version de BusyBox et l'ensemble des utilitaires compilés pour l'émulateur.
Tapez ensuite la commande ls -l /bin/ls
Vous verrez alors que cet exécutable est en vérité un lien symbolique vers busybox.
La procédure pour contribuer au projet est expliquée à la page : http://www.busybox.net/developer.html