Formation - LINUX : Programmation noyau - Device Drivers - BSP (PowerPC/ARM) (reference 003154A)
 
    Formations connexes
   
           
    Pré-requis
  • Experience en programmation C
  • Connaissance de base des systèmes d'exploitation et des techniques de debug
  • Connaissance des mécanismes des processeurs ou des micro-contrôleurs
   
             
  Objectifs de la formation
  • Comprendre les mécanismes utilisés dans le noyau Linux
  • Comprendre comment ces mécanismes sont implémentés sur les plateformes PowerPC
  • Comprendre la séquence de boot de Linux et son implementation sur les PowerPC
  • Programmer des drivers et les intégrer dans le noyau Linux.
  • Le cours est divisé en présentations et travaux pratiques. Les travaux pratiques permettent de mieux comprendre le contenu des présentations
  • Configurer et construire une image noyau Linux
  • Comprendre les differents types d'images noyau et de root filesystems
  • Comprendre la séquence de boot du noyau Linux et le code de bootstrap
  • Démarrer une application après le boot du noyau
  • Comprendre l'implementation et l'initialization Linux sur les processeurs PowerPC
  • Créer et charger des modules dans le noyau
  • Utiliser les outils de debug pour debugger le noyau
  • Comprendre les differents mécanismes de synchronisation et d'exclusion mutuelle du noyau et leur implémentation sur les PowerPC
  • Comprendre les exceptions et les interruptions et leur implémentation sur les PowerPC
  • Connecter les gestionnaires d'interruption et d'exception et utiliser les mécanismes "bottom half " pour planifier les fonctions
  • Utiliser les mécanismes "timer" pour attendre un délai, planifier les tâches périodiques, les événements datés
  • Comprendre la gestion de la mémoire par Linux
  • Comprendre comment les device drivers sont connectés au noyau Linux et programmer ces device drivers en utilisant les mécanismes vus précédemment
   
           
    Durée
  • 4 jours
   
           
    Programme

[Jour 1]

Introduction

  • Espace Utilisateur, Espace Noyau
  • BSP et Device Drivers
  • Licences
  • Sources Noyau

Installation, Compilation et Boot du noyau Linux

  • Configuration noyau
  • Construction noyau
  • Images noyau
  • La Bootline
  • Le Root Filesystem
  • Demarrage d'une application après le boot du noyau Linux

Travaux pratiques

  • Configuration et compilation du noyau Linux
  • Boot du noyau sur la plateforme cible
  • Lancement d'una application au boot
  • Utilisation d'un root filesystem en RAM et d'un root filesystem monté NFS

[Jour 2]

Gestion des Modules

  • Introduction
  • Ecriture de Modules
  • Construction des Modules
  • Chargement et Déchargement de Modules

Debug

  • printk
  • /proc
  • gdb, remote gdb, kgdb
  • Outils de traçage

Programmation dans l'espace noyau

  • Généralités
  • Planification
  • Files d'attente
  • "Atomic Operations" en C
  • Spinlocks
  • Sémaphores

Travaux pratiques

  • Ecriture d'un module noyau
  • Chargement manuel et chargement automatique d'un module
  • Ecriture d'une procédure noyau réentrante
  • Debug de code noyau

[Jour 3]

Gestion des interruptions et des exceptions

  • Gestion Processeur des interruptions et des exceptions
  • Gestion des interruptions
  • Mécanisme "Bottom-Half" : BH et Tasklet
  • Gestion des exceptions

Gestion des Timings

  • Timers Linux
  • Attente pendant un délai
  • Timestamping

Travaux pratiques

  • Ecriture d'un gestionnaire d'interruption, connexion et activation du handler
  • Ecriture d'un BH et activation de celui-ci depuis un handler d'interruption
  • Attente pendant un délai court et un délai long
  • Execution de code périodique
  • Tiimestamping haute resolution pour mesure de performances

[Jour 4]

Gestion de la mémoire

  • Généralités
  • Allocation mémoire de l'espace noyau
  • Gestion des E/S
  • Gestion du cache
  • Gestion du DMA
  • Sujets divers

Ecriture de Device Drivers

  • Généralités
  • Enregistrement d'un driver
  • Gestion des "device nodes"
  • Character Drivers
  • Structures de données et architecture générale
  • Méthodes d'implémentation des drivers
  • Block Drivers
  • Gestion "Request queue"
  • Gestion du cache buffer

Travaux pratiques

  • Accès à l'espace utilisateur depuis un appel noyau
  • Récupération mémoire depuis le code d'initialisation
  • Ecriture d'un "character driver"
  • Ecriture d'un driver "block ramdisk" et installation d'un système de fichiers sur celui-ci
   
           
    Documentation

Les supports de cours sont donnés aux participants. Précis et faciles à utiliser, ils peuvent servir de référence par la suite.
Le listing des exercices est également fourni aux participants.
   
           
    Autres formations

Pour connaître les autres formations que nous proposons ainsi que leurs contenus, vous pouvez consulter ou télécharger notre catalogue de formations sur la page suivante : Formation - présentation générale