Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
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
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
Nos Clients témoignent (4)
Practical excersises
Marcin Janicki - Hectronic Polska Sp. z o.o.
Formation - Yocto Project
Qu'il y avait beaucoup d'exercices.
Katarzyna Straszewska - Swiss AviationSoftware Ltd.
Formation - Build Native iOS and Android Apps with Flutter
Traduction automatique
Plus d'informations sur le laboratoire.
Sarbin - Cagayan Electric Power And Light Co., Inc.
Formation - Flutter Development Bootcamp with Dart
Traduction automatique
On time, training resources is readily available