Présentation

Article interactif

1 - INTRODUCTION AU LOGICIEL LIBRE, LE PROJET GNU

  • 1.1 - What’s GNU ? Gnu’s Not Unix
  • 1.2 - Licences GPL et LGPL
  • 1.3 - Linux ou GNU/Linux ?

2 - LINUX COMME SYSTÈME EMBARQUÉ

  • 2.1 - Contraintes des systèmes embarqués propriétaires
  • 2.2 - Avantages du logiciel libre
  • 2.3 - Inconvénients
  • 2.4 - Pourquoi Linux est-il adapté aux applications embarquées ?

3 - CHOIX DU MATÉRIEL

4 - ARCHITECTURE D’UN SYSTÈME LINUX EMBARQUÉ

5 - EXEMPLES DE DISTRIBUTIONS

6 - TEMPS RÉEL

7 - CONCLUSION

Article de référence | Réf : H1570 v2

Architecture d’un système Linux embarqué
Linux embarqué

Auteur(s) : Pierre FICHEUX

Relu et validé le 05 janv. 2021

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Version en anglais En anglais

RÉSUMÉ

Linux est un système d'exploitation multitâche de la famille UNIX. Développé initialement sur processeur de type Intel, il est maintenant devenu le support de nombreuses architectures. Réputé pour son interopérabilité, Linux est un logiciel libre, rapidement placé en concurrence avec les solutions Microsoft. Au début des années 2000, il est pressenti par de nombreux développeurs comme solution embarquée, de par sa fiabilité, la disponibilité de son code source et son coût de redistribution nul. La connaissance du système Linux est désormais une nécessité pour les entreprises des domaines concernés par les versions embarquées, qu'ils soient fabricants de matériel électronique, éditeurs de logiciels, ou de solutions d'exploitation.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

ABSTRACT

Embedded Linux

Linux is a multitasking exploitation system from the UNIX family. Initially developed on intel-type processors, it has now become the support for a large number of architectures. Renowned for its interoperability, Linux is a free software which was rapidly put into place in order to compete with the solutions provided by Microsoft. At the beginning of the 2000s, due to its reliability, the availability of its source code and cost-free redistribution it was anticipated by many developers as an embedded solution. A sound knowledge of the Linux system has thus become necessary for companies working in fields involving the use of embedded versions, be they electronics manufacturers, sofware editors or operation solution providers.

Auteur(s)

  • Pierre FICHEUX : Ingénieur Arts et Métiers - Directeur technique chez Smile ECS (), enseignant et responsable de la majeure GISTRE (Génie Informatique des Systèmes Temps Réel et Embarqués) à l’EPITA (Paris).

INTRODUCTION

Lorsque Linus Torvalds, alors jeune étudiant de l’université d’Helsinki, publie sur Internet en juillet 1991 son premier message concernant le développement balbutiant de son noyau UNIX libre, il ne se doute certainement pas qu’à l’instar d’autres célébrités de la technologie comme Steve Jobs ou Bill Gates, il est sur le point de changer le monde.

Linux est un système d’exploitation multitâche (en fait un « noyau ») de la famille UNIX. Il fut initialement développé sur processeur de type Intel x86 (386 et 486), mais il a depuis été adapté sur un grand nombre d’architectures matérielles comme les PowerPC, ARM, SH4 et désormais des processeurs industriels spécialisés comme Nios II, MicroBlaze ou Blackfin. Au final, 31 architectures sont actuellement supportées par la version officielle du noyau Linux.

Linux est conforme au standard POSIX (pour Portable Operating System Interface for UNIX), ce qui signifie que les sources des programmes développés sous Linux peuvent être compilées facilement sur d’autres systèmes d’exploitation compatibles POSIX. Linux est également réputé pour sa grande interopérabilité, c’est-à-dire qu’il peut facilement s’intégrer dans un système informatique complexe utilisant d’autres systèmes d’exploitation propriétaires. Le code source du noyau Linux est disponible librement sur Internet, tout en respectant la licence GPL définie pour le projet GNU.

Initialement, le logiciel embarqué était un marché de « niche » totalement dominé par des éditeurs spécialisés (comme Wind River, fondée en 1981 et éditeur du système d’exploitation VxWorks), pratiquant des coûts de licence très élevés du fait du faible volume de production qui se résumait aux applications militaires, spatiales et industrielles en général. Les contraintes du logiciel embarqué sont très différentes de celles du logiciel classique, en particulier sur la notion de durée de vie du logiciel, qui est bien plus importante dans le cas de l’embarqué. À titre d’exemple, le télescope spatial Hubble utilisant le système d’exploitation VRTX tourne – au sens propre – depuis 1990.

Au début des années 2000, Linux était déjà très utilisé dans le monde des serveurs et ce directement en concurrence avec les solutions Microsoft. Déjà à l’époque, de nombreux développeurs et utilisateurs de Linux pensent que ce dernier peut être utilisé pour des solutions industrielles et embarquées grâce à sa fiabilité, la disponibilité de son code source et bien sûr son coût de redistribution nul. L’évolution de l’informatique embarquée vers le multimédia, de par la généralisation de l’accès à Internet, a depuis permis à Linux de devenir un acteur majeur dans le domaine puisque les systèmes d’exploitation embarqués propriétaires n’étaient pas adaptés à ces fonctionnalités. Les équipements d’accès à Internet comme les gateway et set-top box utilisent majoritairement des systèmes d’exploitation basés sur Linux. Citons les Freebox, Bbox et autres Livebox.

La grande majorité des smartphones (plus de 80 % à ce jour) utilise également le noyau Linux (et non le système complet) dans le système Android de Google. Récemment, l’éditeur Microsoft a annoncé qu’il se retirait peu à peu du marché de l’embarqué où il était connu pour Windows CE et autres Windows Embedded, laissant une belle place à Android pour les applications graphiques.

Notons que des set-top box récentes utilisent également le système d’exploitation Android.

La connaissance de Linux et des spécificités des versions embarquées et industrielles est désormais une nécessité pour les entreprises – et donc les ingénieurs – des domaines concernés, qu’ils soient fabricants de matériel électronique, éditeurs de logiciels, de solutions de développement ou d’exploitation.

La compréhension de cet article sera facilitée si le lecteur est déjà un utilisateur du système Linux. Cependant nous effectuerons les quelques rappels nécessaires à la compréhension pour le plus grand nombre de lecteurs. Au cours de cet article, nous décrirons la réalisation d’une véritable distribution Linux utilisable sur la célèbre carte Raspberry Pi 3, basée sur une architecture ARM.

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

VERSIONS

Il existe d'autres versions de cet article :

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v2-h1570


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation
Version en anglais En anglais

4. Architecture d’un système Linux embarqué

Il n’y a pas de différence de structure notable entre une distribution Linux classique (Fedora, Ubuntu, Debian, etc.) et un système Linux embarqué mis à part un certain nombre d’optimisations dont le choix très sélectif des composants indispensables. En effet, l’inflation de l’espace disponible à la fois sur la mémoire vive – plusieurs gigaoctets – et les disques durs – plusieurs téra-octets – fait qu’une bonne partie des composants installés sur un PC/x86 de développement est en fait inutile.

Il n’en est rien pour un système embarqué et, même si les smartphones et autres set-top box les plus récents ont des caractéristiques matérielles impressionnantes, une optimisation rigoureuse du système d’exploitation est nécessaire de par le grand nombre d’appareils diffusés (souvent plusieurs millions). Même si la diffusion est restreinte, la limitation du nombre de composants de la distribution garantira une plus grande fiabilité et facilité de maintenance.

4.1 Structure du système Linux

À quelques exceptions près, la structure du système Linux est calquée sur celle des autres systèmes UNIX, à savoir :

  • un noyau ou kernel réalisant les fonctions essentielles comme la gestion des tâches et de la mémoire, ainsi que l’interfaçage entre le matériel et les applicatifs, grâce – entre autres – aux pilotes de périphériques, plus souvent nommés device drivers ;

  • les exécutables du système, dont certains sont indispensables. Nous évoquons plus loin l’exécutable init ou l’interpréteur de commandes (shell) ;

  • l’ensemble des bibliothèques utilisées par les applicatifs. A minima, on doit disposer de la bibliothèque libc contenant les fonctions de base utilisées dans le cas du développement C/C++. Dans le cas de Linux, la référence est la Glibc (GNU C Library), mais nous évoquons d’autres versions par la suite.

La structure du système est décrite sur la figure 2.

Aux éléments décrits précédemment, il faut ajouter un programme de démarrage ou bootloader. Pour l’architecture x86, le plus fréquent est GRUB (GRand Unified Bootloader). Dans les cas des autres architectures comme...

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

TEST DE VALIDATION ET CERTIFICATION CerT.I. :

Cet article vous permet de préparer une certification CerT.I.

Le test de validation des connaissances pour obtenir cette certification de Techniques de l’Ingénieur est disponible dans le module CerT.I.

Obtenez CerT.I., la certification
de Techniques de l’Ingénieur !
Acheter le module

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Architecture d’un système Linux embarqué
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - FICHEUX (P.) -   Linux embarqué, Mise en place et développement.  -  Eyrolles (2017).

  • (2) - YAGHMOUR (K.) -   Building embedded linux systems. –  -  O’Reilly (2008).

  • (3) - SALLY (G.) -   Pro Linux embedded systems. –  -  Apress (2010).

  • (4) - STALLMAN (R.) -   R. Stallman et la révolution du logiciel libre. –  -  Eyrolles (2010).

  • (5) - FICHEUX (P.) -   Linux Embarqué.  -  Nouvelle étude de cas, traité d’Open Embedded. Eyrolles (2012).

1 Sources bibliographiques

Sites Internet

FAQ de la licence GPL http://www.gnu.org/licences/gpl-faq.html

Conférence de Richard Stallman en janvier 2010 (Eyrolles) http://www.dailymotion.com/video/xbuw37_1-5-richard-stallman-et-la-revoluti_tech

Projet Yocto http://www.yoctoproject.org

Projet Buildroot http://buildroot.org

Projet Open Wrt http://openwrt.org

Projet Busybox http://www.busybox.net

PREEMPT-RT https://rt.wiki.kernel.org

Xenomai http://www.xenomai.org

Émulateur QEMU https://www.qemu.org

Annuaire2.1 Constructeurs – Fournisseurs – Distributeurs (liste non exhaustive)

Fondation Raspberry Pi https://www.raspberrypi.org

Smile ECS, ingénierie open source et Linux embarqué https://www.smile.eu/fr/offres/embarque-iot

2.2 Laboratoires – Bureaux d’études – Écoles – Centres de recherche (liste non exhaustive)

ENSEIRB-MATMECA http://www.enseirb-matmeca.fr

EPITA http://www.epita.fr

HAUT DE PAGE

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Sommaire

QUIZ ET TEST DE VALIDATION PRÉSENTS DANS CET ARTICLE

1/ Quiz d'entraînement

Entraînez vous autant que vous le voulez avec les quiz d'entraînement.

2/ Test de validation

Lorsque vous êtes prêt, vous passez le test de validation. Vous avez deux passages possibles dans un laps de temps de 30 jours.

Entre les deux essais, vous pouvez consulter l’article et réutiliser les quiz d'entraînement pour progresser. L’attestation vous est délivrée pour un score minimum de 70 %.


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS