Embarquer Linux et des systèmes libres, méthodes et apports

28
1 Embarquer Linux et des systèmes libres, méthodes et apports Benoît Donnette Expert OSSA

description

 

Transcript of Embarquer Linux et des systèmes libres, méthodes et apports

Page 1: Embarquer Linux et des systèmes libres, méthodes et apports

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Perspectives

Obtenir le système de rêve : tous les outils existent, il reste « juste » à les fédérer...

Page 28: Embarquer Linux et des systèmes libres, méthodes et apports

28

Merci de votre attention

[email protected]