Logiciels Libres et Systèmes Embarqués


6.2. Synthèse de l'évaluation

Cette section est la synthèse de l'évaluation effectuée en annexe (chapitre A).

6.2.1. Bibliothèques C

Presque tous les programmes de base sous Unix sont écrits en C, il faut donc au minimum une bibliothèque C pour les compiler. Cette dernière regroupe l'ensemble des fonctions systèmes telles que printf ou ioctl. La plupart des distributions Linux pour station de travail utilisent la bibliothèque C GlibC [19], cependant elle est très mal adaptée pour le domaine de l'embarqué.

J'ai évalué plusieurs bibliothèques C afin de choisir celle qui conviendrait le mieux. La taille est évidemment un critère très important, mais il ne faut pas négliger la compatibilité avec les logiciels déjà existants. Enfin, le nombre de fonctionnalités présentes, comme par exemple le support des threads ou des fonctions mathématiques, est aussi un critère de choix. Le tableau suivant présente les résultats obtenus :

Tableau 6.1. Evaluation des différentes bibliothèques C

 taillefonctionnalité et compatibilitéclassement
µClibC++1
GlibC-++2
DietLibC++-3
KlibC+++--4


J'ai donc utilisé µClibC comme bibliothèque C. Cependant, je conseille tout de même de garder la GlibC au cas où certaines applications utiliseraient des fonctionnalités trop spécifiques. Dans ce cas de figure, on pourrait envisager de compiler ces applications en statique (voir section 6.5.1.3). Si jamais l'utilisation de la GlibC en version partagée était indispensable, il suffirait de préciser où est installée la GlibC dans la variable d'environnement LD_LIBRARY_PATH, avant de lancer les applications liées à cette bibliothèque. On évite ainsi les conflits avec la µClibC.

6.2.2. Collections d'outils

Une collection d'outils est un ensemble de commandes telles que cp, mv et ls. La plupart des distributions Linux pour station de travail utilisent le projet CoreUtils de GNU en tant que collection d'outils, cependant elle est très mal adaptée pour le domaine de l'embarqué.

J'ai évalué plusieurs collections d'outils afin de choisir la meilleure. Le critère le plus important est sans hésiter le nombre de commandes par rapport à la taille de la collection. Bien évidemment, la compatibilité avec les commandes GNU et le nombre de fonctionnalités présentes sont aussi des critères importants. Le tableau suivant présente les résultats obtenus :

Tableau 6.2. Evaluation des différentes collections d'outils

rapport nb cmd/ taillefonctionnalité et compatibilitéclassementfinal
BusyBox maximal++++1
BusyBox défaut++-2
EmbUtils+--3
Heirloom--++4
CoreUtils---+++5
Système K----6


J'ai donc utilisé BusyBox [20] comme collection d'outils.