Formation « Linux industriel, temps réel et embarqué »

Linux Embarqué
L’utilisation de Linux dans les environnements industriels, pour des applications à fortes contraintes temporelles ou sur des systèmes retreints nécessite une bonne connaissance des mécanismes sous-jacents, comme l’ordonnancement des tâches, la gestion mémoire, ou le chargement des drivers du noyau.

Ce cours vous propose une exploration en profondeur du système Linux, de ses possibilités – et de ses limites – pour les applications temps-réel et les systèmes embarqués.

Les travaux pratiques de ce cours ont lieu sur des systèmes Raspberry Pi, que les participants configurent entièrement.

Lorsque les formations ont lieu dans nos locaux en inter-entreprise ou en formation individuelle, les participants peuvent conserver à l’issue de la formation la carte Raspberry Pi 2 (ainsi que son câble d’alimentation et sa carte SD).

Points-clés

Durée : 4 jours (3 jours en formation individuelle).

Tarifs 2016 :

  • En nos locaux à Évry (91) : 2350 €HT (déjeuners et collations offerts).
    Tarif dégressif si plusieurs inscrits de la même société à la même session.
  • Prochaines sessions : du 21 au 24 février 2017, du 4 au 7 septembre 2017. Renseignements et inscriptions : formations@logilin.fr

Pré-requis : connaissance de Linux (utilisateur) et du langage C

Conseil cursus : pour prolonger cette formation, nous vous proposons le cours « Écriture de drivers et programmation noyau Linux« .

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

Thèmes abordés

  • Développement industriel sous Linux : introduction, développement et mise au point, spécificités de l’embarqué, compilation croisée.
  • Espace noyau et utilisateur : construction d’un noyau, étude du boot, initialisation, création d’un système complet, développement du code métier et débogage distant.
  • Développement multi-tâches sous Linux : processus et threads, communication et synchronisation entre tâches, utilisation des systèmes multiprocesseurs, ordonnancement.
  • Temps-réel souple et strict : ordonnancement temps réel souple et ses limitations, améliorations avec PREEMPT_RT, performances temps réel strict avec Xenomai.

Plan détaillé

Linux en environnement industriel

  • Linux et les logiciels libres :
    Concepts, principes, pratiques. Noyaux et distributions Linux. Licences libres.
  • Outils de développement libres :
    Chaîne de compilation Gnu, outils de débogage et de mise au point.
  • Développement embarqué :
    Plates-formes de développement et cibles. Compilation croisée. Buildroot et Yocto.
  • Travaux pratiques :
    Création d’une chaîne de compilation croisée pour processeur ARM.

Espace noyau – Bootloader, kernel et système de fichiers

  • Compilation du noyau Linux :
    Principes. Choix d’une version. Configuration et compilation.
  • Chargement du noyau :
    Configuration du bootloader, installation du noyau et premier boot.
  • Système de fichiers et processus init :
    Choix du formatage. Préparation d’arborescence. Fichiers spéciaux. Processus init.
  • Travaux pratiques :
    Compilation et installation d’un noyau sur cible ARM (Raspberry Pi).

Espace utilisateur – Applications et code métier

  • Configuration de Buildroot :
    Personnalisation, overlays, scripts.
  • Utilitaires systèmes :
    Bibliothèques statiques et dynamiques, Busybox, services supplémentaires.
  • Débogage et mise au point :
    Développement croisé et débogage distant.
  • Travaux pratiques :
    Compilation d’utilitaires système avec Busybox. Personnalisation des scripts de démarrage. Débogage d’applications. Création de bibliothèques.

Multi-tâches et ordonnancement

  • Multitâche :
    Processus et threads, communications, IPC.
  • Multiprocesseur :
    SMP, multicœurs, répartition des tâches et interruptions.
  • Temps partagé sous Linux :
    Ordonnanceur, priorités, nice.
  • Travaux pratiques :
    Création de processus et de threads. Synchronisation de threads. Utilisation des IPC Posix. Effets des priorités temps partagé.

Temps réel souple Linux

  • Ordonnancements :
    Round-Robin et Fifo, traitements des interruptions, préemptibilité.
  • Problèmes temps-réel classiques :
    Synchronisation des démarrages, inversion de priorité, reprise de mutex.
  • Patch PREEMPT_RT :
    Principe, mise en œuvre, tests, threaded IRQ, cyclictest.
  • Travaux pratiques :
    Influences des priorités temps réel. Fluctuation de timers. Vérification des améliorations avec PREEMPT_RT.

Extension temps-réel strict avec Linux

  • Approches du temps réel strict sous Linux :
    RT-Linux, RTAI, Adeos, Xenomai…
  • Installation et test de Xenomai :
    Téléchargement et application des patches, compilation et chargement.
  • Utilisation de Xenomai :
    Aperçu des API native et Posix de Xenomai
  • Travaux pratiques :
    Compilation et installation de Xenomai. Tests et applications personnalisées.

Conclusion

  • Discussions libres sur l’ensemble des thèmes abordés.
  • Travaux pratiques : Expérimentations libres suivant les demandes des participants.