Plan du cours

Introduction

    historique rapide des licences GNU/Linux cycle de publication des versions du noyau arborescences du noyau noyau principal par rapport au mécanisme de l'espace utilisateur par rapport aux alternatives de pilote de noyau de politique RTOS par rapport à Linux

Mémoire Management

    Mémoire virtuelle et allocation de mémoire physique dans les zones de pages du noyau Dalle API

Patch du noyau

    cycle de vie git noyau source créer correctif vérifier correctif correctif patch expédier correctif code audité

Modules du noyau

    obtenir les sources du noyau configurer/construire/installer les pilotes de périphérique (liés statiquement, chargés au moment de l'exécution) licence d'initialisation/sortie EXPORT SYMBOL GPL hors de l'arborescence makefile module-init-tools module dans l'arborescence du noyau paramètre Kconfig passant clairsemé

Pilotes de caractères

    architecture interface utilisateur/noyau sous-système d'E/S VFS sysfs (périphériques, bus, pilotes, classes), kobject/ktype/kset modèle de pilote de noyau Linux fichiers de périphérique enregistrement d'initialisation du pilote char ouvert, version cdev, cdev add, cdev del,... numéros majeurs/mineurs udev, udevmonitor, udevadm

Opérations avancées du pilote de personnage

    ioctl débloqué ioctl compat ioctl espace utilisateur API espace noyau cycle de vie du processus API veille/blocage veille/réveil file d'attente tonnerre troupeau sondage/sélection

Débogage du noyau

    débogage de bogues débogage de la recherche binaire du noyau avec prise en charge du débogage git à partir du noyau printk syslogd, klogd, niveaux de journalisation, limite de débit, niveaux de débogage, débogage des sous-systèmes sélectifs débogage en interrogeant debugfs oops débogage, assertion oops Magic SysRq Key kgdb/kdb JTAG

Tracé

    gcov lcov oprofile ftrace nop traceur fonction traceur sched commutateur traceur fonction graphique traceur traceur dynamique
trace-cmd/kernelshark
  • performance
  • LTTng
  • Interruptions
  • interruptions vs interrogation sections du programme d'interruption événements de réentrance gestionnaire d'interruption gestionnaire d'interruption partagé flux d'interruption contrôle d'interruption

      Reporter le travail

    moitiés supérieure/inférieure des tasklets softirqs files d'attente de travail interruptions de thread

      Concurrence

    région/section critique condition de concurrence atomique synchronisation verrouillage solutions de verrouillage conflit de blocage que verrouiller ? que peut-on utiliser ? opérations atomiques verrous rotatifs lecteur-enregistreur verrous rotatifs sémaphore sémaphore binaire mutex lecteur-enregistreur variables d'achèvement du sémaphore verrous séquentiels désactivent l'ordre de préemption et les barrières

      Temps

    HZ Jiffies retarde gros/petits les minuteurs du noyau

      E/S matérielles

    Ports d'E/S Mémoire d'E/S Comment gérer les effets secondaires lors de l'accès aux registres ?

      Noyau utilisateur Communication

    put(get)_user() copier vers(from)_user() Mappage de la mémoire d'E/S du noyau procfs sysfs debugfs relayfs netlink ioctl

      Portabilité

    taille de mot types opaques caractères signés/non signés alignement des données promotion intégrale réutilisation du code endianess système cocher taille de page ordre d'instructions SMP/préemption/mémoire élevée

      Sauf indication contraire, le contenu et ce plan de cours sont sous licence Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

    Pré requis

    • Familiarité de base avec l'utilisation d'un système GNU/Linux en tant qu'utilisateur final
    • Familiarité de base avec un shell en ligne de commande
    • Connaissance de base de l'espace utilisateur / du développement d'applications
    • Connaissance intermédiaire de la programmation en C
    • Doit avoir suivi Embedded GNU/Linux Systems Architecture auparavant (fortement recommandé !) et/ou avoir une bonne compréhension des sujets qui y sont abordés
     35 heures

    Nombre de participants



    Prix par participant

    Nos Clients témoignent (3)

    Cours Similaires

    The Yocto Project - An Overview - hands-on

    28 heures

    IBM MobileFirst Platform for Hybrid Mobile Application Development

    21 heures

    Catégories Similaires