Embarquer Linux et des systèmes libres, méthodes et apports
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 3,383 views

 

Statistics

Views

Total Views
3,383
Views on SlideShare
3,380
Embed Views
3

Actions

Likes
1
Downloads
43
Comments
0

1 Embed 3

http://www.slideshare.net 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • Embarquer Linux et des systèmes libres, méthodes et apports Benoît Donnette Expert OSSA 1
  • Sommaire ● 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 » ● 2 Perspectives
  • 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 3
  • 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 4
  • Linux embarqué ● Pourquoi le libre embarqué ? ● Histoire de Linux embarqué ● Linux embarqué aujourd'hui 5
  • 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 approches Chois 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 approches Choix des éléments ● Bootloader – µboot – Micromonitor – D'autres ● Outils – Gcc, gdb, binutils – Compilateurs dédiés
  • Méthodes et approches Choix 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 approches Choix 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 approches Choix 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 approches Choix 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 approches Approches 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 approches Approches 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 approches Approches 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 approches Approches 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 approches Projets « 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...
  • Merci de votre attention bdonnette@linagora.com 28