Embarquer Linux et des systèmes libres, méthodes et apports
-
Upload
guest3be047 -
Category
Technology
-
view
3.437 -
download
2
description
Transcript of 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
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
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
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
5
Linux embarqué
● Pourquoi le libre embarqué ?
● Histoire de Linux embarqué
● Linux embarqué aujourd'hui
Pourquoi le libre embarqué
● Liberté d'exécution, de redistribution– Coût de licence maitrisé
● Liberté d'adaptation– Utilisation optimale des ressources
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,...
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
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)
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
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
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
Méthodes et approchesÉléments Fondamentaux d'un système embarqué
● Bootloader● Outils● Système● Root file system / file systems● Applications● Maintenance
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 ?
Méthodes et approchesChoix des éléments
● Bootloader– µboot– Micromonitor– D'autres
● Outils– Gcc, gdb, binutils– Compilateurs dédiés
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)
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
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
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
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
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é
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...
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
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
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
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
Perspectives
Obtenir le système de rêve : tous les outils existent, il reste « juste » à les fédérer...