Séminaire « Linux embarqué – Architecture et conception »

La conception d’un système embarqué bâti sur Linux réclame des connaissances et des compétences spécifiques. Ce séminaire s’adresse à des architectes-logiciel, chefs de projets ou managers d’équipe de développeurs, en charge de la conception d’un système embarqué et souhaitant un état de l’art de haut-niveau sur les solutions construites sur Linux embarqué.

Ce séminaire ne contient pas de travaux pratiques, mais de nombreuses démonstrations de mises en œuvre des solutions présentées.

Points-clés

Durée : 1 journée (8 heures)

Tarifs 2016 :

  • En nos locaux à Évry (91) : 600 €HT (déjeuners et collations offerts).
    Tarif dégressif si plusieurs inscrits de la même société à la même session.

Intervenant : Christophe BLAESS spécialiste Linux embarqué et temps réel, auteur de plusieurs livres et articles sur le sujet

Plan : Téléchargez le plan détaillé au format PDF.

Thèmes abordés

  • Architecture d’un système Linux embarqué : noyau Linux, contraintes et spécificités de l’environnement embarqué, plate-formes matérielles et composants logiciels, boot d’un système embarqué. Exemples d’architectures.
  • Construction d’un système Linux embarqué : frameworks de construction, toolchains et SDK, bibliothèques et édition des liens, utilitaires système principaux, environnements graphiques, prototypage. Exemple de construction d’une image.
  • Développement applicatif pour Linux embarqué : environnements de développement intégrés (IDE), débogage et mise au point, gestion de version, normes et règles de codage.
  • Industrialisation d’un système Linux embarqué : accélération du boot, organisation du système de fichiers, read-only filesystem, mise à jour du système.
  • Perspectives et conclusion : évolution des frameworks Linux, essor des systèmes embarqués construits sur Linux, conclusion.

Plan détaillé

1ère séquence – ARCHITECTURE D’UN SYSTÈME LINUX EMBARQUÉ

  • Noyau Linux : modèle de fonctionnement, espaces kernel et user, versions du noyau, communauté de développement, support long terme, licences GPL et dérivées, modules du kernel, drivers spécifiques.
  • Contraintes et spécificités de l’environnement embarqué : problématique, méthodes de développement, outils de prototypage, Qemu, chaînes de compilation et interpréteurs.
  • Plate-formes matérielles : architectures et plates-formes supportées par Linux, isolation application-matériel, BSP (Board Support Package).
  • Composants logiciels : comparaison entre système embarqué et système classique (poste de travail, serveur…).
  • Boot d’un système embarqué : bootloader (U-boot, Red boot, Barebox…), chargement du kernel, processus init, démarrage des services et applications-métier.
  • Exemples d’architectures construites sur Linux embarqué : « minimale extrême », « industrielle typique », Android et Tizen.

2ème séquence – CONSTRUCTION D’UN SYSTÈME LINUX EMBARQUÉ

  • Framework pour la construction : comparaison de Buildroot, OpenWRT, Scratchbox, Yocto Project.
  • Toolchains et SDK : GCC et CLang, toolchains CodeSourcery, crosstool-NG, SDK de Yocto Project.
  • Bibliothèques et édition des liens : GlibC, eGlibc, uClibC, newlib, liens dynamiques ou statiques.
  • Utilitaires système principaux : Busybox « le couteau suisse de l’embarqué », serveur SSH Dropbear ou Open-SSH, serveur HTTP Lighttpd, base de données SQLite,
  • Environnements graphiques : X-window X11, DirectFB, Qt, GTK+, EFL.
  • Prototypage : Cartes de développement et émulateurs. Qemu en mode user ou en mode système.
  • Exemples de construction d’une image : utilisation de Buildroot.

PAUSE DÉJEUNER

3ème séquence – DÉVELOPPEMENT APPLICATIF POUR LINUX EMBARQUÉ

  • Environnements de développement intégré : Eclipse, NetBeans, Geany…
  • Débogage et mise au point : Gdb et OpenOCD, débogage distant sous Eclipse, Valgrind, Gcov et Gprof.
  • Gestion de version : Svn, Git, Mercurial, etc.
  • Normes et règles de codage : Posix, SUSv4, MISRA-C et DO-178B.
  • Exemples d’utilisation : développement croisé et débogage distant avec Eclipse, recherche d’erreur mémoire avec Valgrind.

4ème séquence – INDUSTRIALISATION D’UN SYSTÈME LINUX EMBARQUÉ

  • Accélération du boot : réduction et ajustement du kernel, optimisation du code utilisateur, parallélisation des services.
  • Systèmes de fichiers pour l’embarqué : MTD, Flash Nand/Nor, JFFS2 et UBIFS, ext2/3/4 et vfat.
  • Organisation de l’arborescence des fichiers : standard LSB, read-only filesystem, XIP.
  • Mise à jour du système : firmware ou packages, restauration des presets-usine.

5ème séquence – PERSPECTIVES ET CONCLUSION

  • Évolution des frameworks Linux embarqué : orientation actuelle de Buildroot et Yocto Project.
  • Essor des système embarqués construits sur Linux : objets communicants, plates-formes Android.
  • Discussion libre sur l’ensemble des thèmes abordés.