Autrefois présents mais inconnus du grand public, les systèmes embarqués ont aujourd’hui envahi notre quotidien et les logiciels libres y ont une place prépondérante, en particulier le système d’exploitation Linux. Le noyau Linux est présent dans le système Android de Google utilisé dans plus d’un milliard de téléphones mobiles. Le système d’exploitation Linux (dans sa version « embarquée ») est omniprésent sur les boîtiers d’accès à Internet et à la télévision numérique (la fameuse « set-top box »).
Dernièrement, ce même Linux a envahi l’industrie automobile et anime les systèmes dénommés IVI (In Vehicle Infotainment) incluant entre-autres la navigation, la diffusion multimédia dans l’habitacle ou l’assistance à la conduite.
La construction de tels systèmes est très éloignée de l’utilisation habituelle de Linux dans l’industrie qui est basée sur des « distributions » fournies par des éditeurs commerciaux (Red Hat, SuSE, etc.) ou des communautés (Debian, Ubuntu, etc.). Sur un PC classique la mémoire – et le disque dur – ont des capacités quasiment illimitées et même si l’on a la volonté de maîtriser les consommations d’espace et d’énergie, les contraintes sont bien moindres que dans le domaine des systèmes embarqués.
L’utilisation d’une distribution générique incluant des milliers de composants binaires n’est souvent pas acceptable pour une industrie ayant de gros besoins à la fois d’optimisation, de traçabilité et bien entendu de sécurité. Outre cela, les systèmes embarqués utilisent souvent des architectures différentes de celles des PC (entre-autres ARM, et non Intel x86) et l’utilisation directe d’une distribution binaire n’est pas envisageable. Cette tendance ne fera que s’amplifier avec le développement prévu de l’ « Internet des objets » qui est basé sur des systèmes embarqués.
De plus en plus de projets utilisent des outils nommés «build systems » (outils de construction) permettant de produire – à partir des sources des composants – un système Linux optimisé sur la base de spécifications strictes tant au niveau de l’espace utilisé que de la sécurité de fonctionnement.
Le projet Yocto est aujourd’hui le plus fréquent car porté par les leaders de l’industrie du matériel et du logiciel dont Intel, Mentor Graphics, TI, NXP/Freescale, Wind River. Yocto est un outil modulaire fonctionnant en couches logicielles que l’on assemble en fonction des besoins en cible matérielle, interfaces homme machine ou applications métier.
Le projet Buildroot a la même approche mais il est plus simple d’accès. Porté par une communauté plus modeste (et non financée par des géants de l’industrie), il permet de mettre en place un « firmware » basé sur une distribution Linux allégée.