embarquer linux et des systèmes libres, méthodes et apports
DESCRIPTION
TRANSCRIPT
![Page 1: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/1.jpg)
1
Embarquer Linux et des systèmes libres, méthodes et apports
Benoît DonnetteExpert OSSA
![Page 2: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/2.jpg)
2
● L'embarqué...● Linux embarqué● Impact de l'approche « Open Source »
– Coopération dans un marché concurrentiel– Distribution, reversement
● Méthodes et approches– Fondamentaux, choix des éléments– Approche traditionnelle– Projets « prêt à embarquer »
● Perspectives
Sommaire
![Page 3: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/3.jpg)
3
L'embarqué...
● Traduction approximative de « embedded »– Vraie traduction : « enfoui »
– A l'origine : petits systèmes
– Couvre tous les ordinateurs dont la fonction première n'est ni serveur ni poste de travail
![Page 4: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/4.jpg)
4
L'embarqué...
● Un produit souvent industriel– Coût d'un prototype peu accessible– Produit pour une fabrication de masse
● Caractéristiques– Processeurs variés
● ARM, MIPS, i386,PowerPC
– Matériel spécifique● Flash, pas toujours de disque dur
![Page 5: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/5.jpg)
5
Linux embarqué
● Pourquoi le libre embarqué ?
● Histoire de Linux embarqué
● Linux embarqué aujourd'hui
![Page 6: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/6.jpg)
Pourquoi le libre embarqué
● Liberté d'exécution, de redistribution– Coût de licence maitrisé
● Liberté d'adaptation– Utilisation optimale des ressources
![Page 7: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/7.jpg)
Pourquoi le libre embarqué
● Support d'une grande diversité de matériels– Bonne adaptation au problème
● Choix variés pour tous les éléments– Micro-boot, OS, support, compilateurs,...
![Page 8: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/8.jpg)
Histoire de Linux embarqué
● Première version en 1991, stable en 1994 (1.0.0)– Spécifique i386
● Seconde version (1.2.0) en 1995, premier portage (Alpha)– Architectures suivantes : PPC, m68k, MIPS, ARM
● Démarrage de la mailing-liste « Linux-ce » en 1996
![Page 9: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/9.jpg)
Histoire de Linux embarqué
● Kernel 2.6.0 en 1994– Intégration de µClinux– Diminution de la latence du kernel
● But initial : serveurs SMP● Profite à l'aspect temps réel (aidé par quelques
patchs)
● Scheduler O(1) sur le kernel (2.6.0), récrit lors du Completely Fair Scheduler (2.6.23, 1997)
![Page 10: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/10.jpg)
Linux embarqué aujourd'hui
● Aujourd'hui, Linux embarqué, c'est :– Les *box ADSL– Des lecteurs DVD– Des équimements informatiques personnels
● proxies, serveurs personnels de disques,...
– Des consoles de jeu (GP2X, PlayStation 3)– Un projet téléphone : OpenMoko
![Page 11: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/11.jpg)
Impact de l'approche « Open Source »Coopération dans un marché concurrentiel
● Utilisation de logiciels éprouvés
● Indépendance par rapport aux fournisseurs● Garantie de pérennité
● Adaptatabilité des logiciels au produit● Liberté d'adapter, d'améliorer
![Page 12: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/12.jpg)
Impact de l'approche « Open Source »Distribution, reversement
● Impacts de propriété● Plusieurs licences, droits et devoirs différents
● Image● Transparence● Adhésion à une philosophie
![Page 13: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/13.jpg)
Méthodes et approchesÉléments Fondamentaux d'un système embarqué
● Bootloader● Outils● Système● Root file system / file systems● Applications● Maintenance
![Page 14: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/14.jpg)
Méthodes et approchesChois des éléments : Hardware
● ARM, MIPS, PowerPC, x86, m68k...– avec MMU (linux) ou sans (µClinux)
● RAM : compromis souplesse-coût
● Stockage– Flash ? Disque dur ? NFS ? Autre ?
![Page 15: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/15.jpg)
Méthodes et approchesChoix des éléments
● Bootloader– µboot– Micromonitor– D'autres
● Outils– Gcc, gdb, binutils– Compilateurs dédiés
![Page 16: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/16.jpg)
Méthodes et approchesChoix des éléments
● Système– Linux : latence élevée, mais fixe depuis le
scheduler O(1) (2.6.x) puis CFS (2007)● Latence ~ 1ms (worst-case)
![Page 17: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/17.jpg)
Méthodes et approchesChoix des éléments
● Système (suite)– Versions temps-réel (RTLinux, RTAI,...)
● latence minimale (~100µs)● communication entre TR et Linux parfois difficile
– Approche par virtualisation● paravirtualiseur TR, système TR et système Linux
![Page 18: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/18.jpg)
Méthodes et approchesChoix des éléments
● Root file system, file systems– Diversité des FS : grande variété de choix
● RAM : Cramfs (ro), tmpfs● Flash : jffs2, tout fs sur NFTL● unionfs
– Selon volatilité et rémanence● Utilisation raisonnée des ressources : RAM, Flash,
autres ressources éventuelles
– Option « noatime » fortement conseillée
![Page 19: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/19.jpg)
Méthodes et approchesChoix des éléments
● Applications : à vous de jouer...– Serveurs personnels faible consommation– Serveur video– Domotique, télésurveillance– Consolidation de systèmes enfouis
● Maintenance
![Page 20: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/20.jpg)
Méthodes et approchesApproches traditionnelles
● Réalisation individuelle des éléments● Bottom-up
– On part d'une feuille blanche, on construit tout● Totale maitrise● Long et fastidieux (LFS)
● Top-down– Nécessite une distribution proche du résultat
voulu
![Page 21: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/21.jpg)
Méthodes et approchesApproches traditionnelles
● Organisation probable : 1 équipe par élément– Chaque élément peut être isolé et parfois figé
indépendamment des autres (microboot, compilateur)
– Nécessite la gestion de plusieurs flux vers la communauté
![Page 22: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/22.jpg)
Méthodes et approchesApproches traditionnelles
● Premières automatisations : les outils– Crosstool : script de génération de chaine de
compilation croisée– Automatise la compilation de binutils, gcc et la
libc pour la cible embarquée● Combinaisons kernel/libc/binutils/gcc/options...
![Page 23: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/23.jpg)
Méthodes et approchesApproches traditionnelles
● Apparition de distributions source embarqué– Embedded-gentoo : basée sur µClinux– Défaut : nécessite un système de base capable
de compilation native
![Page 24: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/24.jpg)
Méthodes et approchesProjets « prêt à embarquer »
● Projets embarqués générés– Approche mixte, apparue depuis fin 2006
● Exemples : OpenEmbedded, OpenMoko
● Prend en charge tout le processus jusqu'à constitution de l'image à transférer– Génère les outils, le microboot, le système et le
root file system
![Page 25: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/25.jpg)
Perspectives
● Potentiel Linux embarqué énorme● Des atouts importants (portabilité, empreinte)● Un support riche (pilote des périphériques variés)
● Des références significatives● Un existant important● Des projets phares● Une consolidation industrielle
● Une démocratisation du matériel
![Page 26: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/26.jpg)
Perspectives
● Approche Gentoo– Compilation personnalisée– Gestion de paquetages et dépendances
● Compilation croisée et émulation logicielle– Tests instantanés– Génération du système embarqué incrémentale
![Page 27: Embarquer Linux et des systèmes libres, méthodes et apports](https://reader033.vdocuments.fr/reader033/viewer/2022042713/547c98d4b4af9fef158b516c/html5/thumbnails/27.jpg)
Perspectives
Obtenir le système de rêve : tous les outils existent, il reste « juste » à les fédérer...