Formation - Écriture de drivers et programmation noyau Linux

Qualiopi
Durée 4 jours (28 heures)
Localisation Partout en France
Logo de IB Cegos - Formation - Écriture de drivers et programmation noyau Linux

Proposé par

IB Cegos

Prérequis

  • Connaissance de Linux (utilisateur) et du langage C

Public admis

  • Salarié en Poste
  • Entreprise

Demandeur d'emploi et Etudiant non admis

Financement

  • Votre OPCO
  • Financement personnel

Financement CPF non pris en charge

Modalités

  • En entreprise
  • À distance
  • En centre

Objectifs pédagogiques

  • Cette formation fait l'objet d'une évaluation formative.

Programme de la formation

1 - 1ère partie : Programmer pour le noyau Linux

    2 - Noyau Linux et modules

    • Modèle
    • Versions
    • Licence GPL
    • Développement du noyau
    • Appels-systèmes
    • Modules
    • Travaux pratiques : observation des appels-système invoqués par des applications et commandes utilisateur et manipulation des modules précompilés

    3 - Outils de développement noyau

    • Sources
    • Compilation du noyau et des modules
    • Écriture et compilation de modules
    • Cross-compilation
    • Messages
    • Dépendances
    • Travaux pratiques : compilation et installation d'un noyau, écriture de modules simples, intégration dans le noyau, paramètres au boot, cross-compilation sur Raspberry Pi

    4 - API du noyau

    • Chaînes
    • Blocs mémoire
    • Fonctions numériques et conversions
    • Éléments temporels et actions différées
    • Préemptibilité du noyau
    • Travaux pratiques : écriture d'un module d'horodatage, chronométrage des phases de boot, mesure de précision d'horloge et mesure de durée d'un appel-système

    5 - Environnement du noyau

    • Tâches et processus courants
    • Espaces d'adressage
    • Dialogue avec /proc
    • Travaux pratiques : écriture d'un module d'information sur les structures internes des processus, écriture d'un module d'horodatage via /proc et tests sur Raspberry Pi

    6 - 2ème partie : Écriture d'un driver

      7 - Écriture d'un pilote de périphérique

      • Principe
      • Numéros majeurs et mineurs
      • Classes de périphériques
      • Enregistrement du driver
      • Fonctions de lecture et écriture
      • Travaux pratiques : manipulation des fichiers spéciaux, réservation de numéro majeur, enregistrement de périphérique et écriture d'un driver simple

      8 - Appels-système et I/O

      • Paramétrage par ioctl
      • Synchronisation d'appels-système par mutex
      • Accès matériel
      • Ports d'entrées-sorties
      • GPIO sur carte embarquée
      • Travaux pratiques : mise en évidence de la nécessité des mutex, écriture d'un driver d'entrées-sorties sur GPIO du Raspberry Pi

      9 - Gestion d'interruption

      • Contextes d'exécution
      • Installation d'un handler
      • Traitement différé (tasklet, workqueue et thread interrupt)
      • Travaux pratiques : écriture d'un gestionnaire sur interruption clavier PC et sur GPIO du Raspberry Pi, visualisation des threadeds interrupts

      10 - Interactions entre appels-système et interruptions

      • Protection des variables globales (spinlock)
      • Attentes d'événements (waitqueue)
      • Appels-système bloquants
      • Travaux pratiques : influence des priorités temps-réel sur les threads d'interruption et mesure de temps de latence des interruptions du Raspberry Pi

      11 - 3ème partie : Aspects avancés d'un driver de périphérique

        12 - Entrées-sorties avancées

        • Multiplexage d'entrée-sorties (select et poll)
        • Principes des transferts de données par DMA
        • Travaux pratiques : création d'un périphérique "file de messages" virtuel implémentant plusieurs appels-système, implémentation de select sur des entrées GPIO

        13 - Gestion de la mémoire

        • Allocation et libération de mémoire (kmalloc, vmalloc, get_free_pages, kmem_cache)
        • Projections (mmap)
        • Travaux pratiques : expériences sur la projection mémoire en espace utilisateur et allocations mémoire maximales

        14 - Périphériques blocs et VFS

        • Principes
        • Enregistrement
        • Disque générique
        • File de requêtes
        • Partitionnement
        • Sous-système Block, i/o scheduler
        • Virtual File System
        • Travaux pratiques : écriture d'un driver de disque virtuel, partitionnement, formatage et montage de disque virtuel, observation des effets des caches-disques du VFS

        15 - Périphériques PCI Express

        • Principe
        • Détection et enregistrement de driver
        • Base Address Registers
        • Interruptions classiques et MSI
        • Travaux pratiques : étude d'un driver PCIe de pilotage d'une carte à FPGA

        16 - 4ème partie : Autres types de périphériques

          17 - Périphériques réseau

          • Interfaces bas-niveau et protocoles réseau
          • Périphérique net_device
          • Enregistrement
          • Activation
          • Émission et réception de paquets
          • Travaux pratiques : écriture progressive d'un driver pour périphérique virtuel permettant l'utilisation du protocole IPv4

          18 - Communications réseau

          • Statistiques d'utilisation d'interface
          • Principes de la pile IP
          • Communications entre protocoles et interface bas-niveau
          • Travaux pratiques : examen du trajet des données au sein de la pile IPv4 lors de réception et d'émission de données avec le protocole TCP/IP

          19 - Utilisation du bus USB

          • Organisation du sous-système USB de Linux
          • Implémentation d'un driver Interrupt
          • Type de Endpoints
          • Communication avec les URB
          • Travaux pratiques : écriture d'un driver pour carte d'entrée-sortie Velleman K8055

          20 - Aspects avancés

          • Écritures successives rapides
          • Déconnexions intempestives
          • Accès concurrents
          • Exemples de drivers Bulk, Control et Isochrones

          21 - Conclusion : discussions libres sur l'ensemble des thèmes abordés

            22 - Travaux pratiques : expérimentations libres suivant les demandes des participants

              Logo de IB Cegos - Formation Formation - Écriture de drivers et programmation noyau Linux

              Proposé par

              IB Cegos

              "Formations aux technologies et métiers du Numérique"

              Voir la fiche entreprise
              Logo de IB Cegos - Formation - Écriture de drivers et programmation noyau Linux

              Formation - Écriture de drivers et programmation noyau Linux

              0 ville proposant cette formation
              Logo

              La 1ère plateforme pour trouver une formation, choisir son orientation ou construire son projet de reconversion.

              © 2024 France Carrière. Tous droits réservés.