
Formation programmation système
Passez de l'écriture de code applicatif à la maîtrise de l'ensemble de la pile système — interfaces du noyau, gestion de la mémoire, concurrence et débogage au niveau matériel. Ce cours vous offre les bases techniques approfondies qui distinguent les ingénieurs systèmes seniors des autres. Chaque concept est ancré dans des outils réels, du code réel et des scénarios de production réels.
Ce que vous allez apprendre:
Vous allez construire un modèle mental complet de la manière dont le logiciel interagit avec le matériel et le noyau Linux, en commençant par l'architecture du CPU et la disposition de la mémoire des processus. Vous maîtriserez le C pour le travail système, y compris la gestion manuelle de la mémoire, l'arithmétique des pointeurs et les modèles de codage défensif. Le cours couvre l'assembleur x86-64, le débogage de bas niveau avec GDB et l'analyse binaire avec objdump. Vous implémenterez la création de processus, les threads POSIX, les primitives de synchronisation et la communication inter-processus. Les sujets avancés incluent la mémoire virtuelle, la conception d'allocateur personnalisé, les entrées-sorties de fichiers haute performance et le développement de modules noyau. Le renforcement de la sécurité, les mécanismes internes de la conteneurisation, l'ordonnancement en temps réel et le profilage des performances avec perf complètent le programme de formation.
Comment vous étudiez de façon pratique Formation programmation système
Comment vous pratiquez Formation programmation système
Pour vous, entreprise, qui souhaitez former votre équipe
Avec Dedika pour les entreprises, le cours inclut des exercices et des exemples adaptés à votre propre activité et aux besoins spécifiques de votre entreprise.
Contenu du cours
8 Chapitres • 40 LeçonsDurée entre 4 et 360 heures (vous décidez)
Chapitre 1MasquerCacher les détailsVoir les détailsFondamentaux de la programmation système
Fondamentaux de la programmation système
Leçon 1 • Chaîne d'outils et environnement de construction
Configure les compilateurs, les éditeurs de liens, les assembleurs et les débogueurs utilisés tout au long du cours. Garantit que chaque étudiant peut compiler, éditer des liens et inspecter des binaires dès le premier jour.
Leçon 2 • Abstractions du système d'exploitation
Présente l'espace noyau par rapport à l'espace utilisateur, les appels système et la gestion des ressources du système d'exploitation. Relie les concepts matériels aux interfaces logicielles que les programmeurs utilisent quotidiennement.
Leçon 3 • Disposition de la mémoire d'un processus
Examine les segments de la pile, du tas, du BSS, des données et du texte dans un processus en cours d'exécution. Fournit le modèle spatial nécessaire pour l'arithmétique des pointeurs et la gestion de la mémoire.
Leçon 4 • Principes essentiels de l'architecture informatique
Couvre les registres du CPU, les cycles d'instructions et la hiérarchie de la mémoire. Établit le vocabulaire matériel nécessaire pour tous les sujets système ultérieurs.
Leçon 5 • Niveaux de privilège et anneaux de protection
Explique les anneaux de privilège imposés par le matériel et comment le système d'exploitation applique l'isolation. Prépare les étudiants à raisonner sur les limites de sécurité dans le code système.
Chapitre 2MasquerCacher les détailsVoir les détailsProgrammation en C pour le travail système
Programmation en C pour le travail système
Leçon 1 • Types de données et représentation en mémoire
Couvre les largeurs d'entiers, l'endianness, l'alignement et le remplissage dans les structures. Ancre les étudiants dans la manière dont les types C correspondent aux octets réels en mémoire.
Leçon 2 • Gestion des erreurs et codage défensif
Présente errno, les conventions de code de retour et les stratégies d'assertion en C. Développe des habitudes qui empêchent les échecs silencieux dans le code système de production.
Leçon 3 • Préprocesseur C et macros
Explique les gardes d'inclusion, les macros de type objet et de type fonction, et la compilation conditionnelle. Permet aux étudiants d'écrire des en-têtes système portables et configurables.
Leçon 4 • Gestion manuelle de la mémoire
Couvre malloc, calloc, realloc et free, ainsi que les erreurs d'allocation courantes. Les étudiants apprennent à détecter les fuites et à utiliser des outils de type valgrind pour la vérification.
Leçon 5 • Pointeurs et arithmétique des pointeurs
Enseigne la déclaration de pointeur, le déréférencement et l'arithmétique sur les tableaux et les tampons. Permet directement la gestion manuelle de la mémoire et l'accès aux registres matériels.
Chapitre 3MasquerCacher les détailsVoir les détailsLangage assembleur et débogage de bas niveau
Langage assembleur et débogage de bas niveau
Leçon 1 • Assembleur inline en C
Enseigne la syntaxe d'assembleur inline étendue de GCC, les contraintes et les listes de clobber. Permet un accès direct au matériel depuis C sans fichier assembleur séparé.
Leçon 2 • Jeu d'instructions de base
Couvre les instructions de mouvement de données, arithmétiques, logiques et de contrôle de flux. Donne aux étudiants suffisamment de vocabulaire pour lire la sortie du compilateur et écrire de petites routines.
Leçon 3 • Jeu de registres x86-64 et conventions d'appel
Mappe les registres à usage général, de segment et SIMD à leurs rôles. Établit le contrat ABI que le code C et assembleur doit honorer lors de l'interopérabilité.
Leçon 4 • Analyse binaire avec désassembleurs
Utilise objdump et des outils similaires pour inspecter les binaires compilés et les bibliothèques partagées. Relie la compréhension au niveau du source au code machine réel dans les artefacts de production.
Leçon 5 • Techniques de débogage de bas niveau
Applique GDB au niveau assembleur : points d'arrêt, points de surveillance et inspection des registres. Les étudiants diagnostiquent les plantages et la corruption de la mémoire en lisant l'état machine brut.
Chapitre 4MasquerCacher les détailsVoir les détailsGestion des processus et des threads
Gestion des processus et des threads
Leçon 1 • Signaux et événements asynchrones
Explique la livraison des signaux, le masquage et l'enregistrement des gestionnaires avec sigaction. Prépare les étudiants à écrire du code sûr pour les signaux et à gérer les notifications asynchrones du système d'exploitation.
Leçon 2 • Création et cycle de vie des processus
Couvre les sémantiques de fork, exec, wait et exit dans les environnements POSIX. Les étudiants comprennent comment le système d'exploitation suit l'état des processus de la création à la terminaison.
Leçon 3 • Fondamentaux des threads POSIX
Présente la création, la jointure et le détachement de pthreads ainsi que les attributs de thread. Établit le modèle de threading utilisé dans tous les sujets de concurrence ultérieurs.
Leçon 4 • Primitives de synchronisation
Couvre les mutex, les variables de condition, les sémaphores et les verrous de lecture-écriture. Les étudiants appliquent chaque primitive pour éliminer les courses aux données dans les programmes à mémoire partagée.
Leçon 5 • Communication inter-processus (IPC)
Examine les pipes, les FIFO, la mémoire partagée et les files de messages pour l'IPC. Les étudiants sélectionnent et implémentent le mécanisme d'IPC approprié pour une contrainte de conception donnée.
Chapitre 5MasquerCacher les détailsVoir les détailsGestion de la mémoire et mémoire virtuelle
Gestion de la mémoire et mémoire virtuelle
Leçon 1 • Profilage mémoire et détection de fuites
Applique Valgrind Memcheck, AddressSanitizer et les cartes /proc pour trouver les fuites et la corruption. Les étudiants produisent des profils mémoire propres pour un code de qualité production.
Leçon 2 • Architecture de la mémoire virtuelle
Explique les tables de pages, le fonctionnement du TLB et le matériel de traduction d'adresses. Fournit la base pour comprendre mmap, les grandes pages et les effets NUMA.
Leçon 3 • Grandes pages et sensibilisation NUMA
Présente les grandes pages transparentes, l'allocation explicite de grandes pages et la topologie NUMA. Les étudiants ajustent le placement de la mémoire pour les charges de travail système sensibles à la latence.
Leçon 4 • Conception d'un allocateur mémoire personnalisé
Construit un allocateur de type slab en utilisant sbrk et mmap comme magasins de support. Renforce la compréhension de la fragmentation, du coalescing et des métadonnées de l'allocateur.
Leçon 5 • Mappage mémoire avec mmap
Couvre les mappages anonymes et adossés à des fichiers, les indicateurs de protection et MAP_SHARED vs. MAP_PRIVATE. Les étudiants utilisent mmap pour les E/S sans copie et l'IPC par mémoire partagée.
Chapitre 6MasquerCacher les détailsVoir les détailsSystèmes de fichiers et sous-systèmes d'E/S
Systèmes de fichiers et sous-systèmes d'E/S
Leçon 1 • E/S avancées : dispersion-rassemblement et asynchrones
Présente readv/writev, io_uring et epoll pour les E/S hautes performances. Permet aux étudiants de construire des serveurs événementiels avec une surcharge d'appels système minimale.
Leçon 2 • Réglage des performances de stockage
Applique fio, iostat et blktrace pour mesurer et améliorer le débit et la latence des E/S. Les étudiants identifient les goulots d'étranglement dans la pile de stockage, de l'application au périphérique.
Leçon 3 • E/S tamponnées vs. non tamponnées
Oppose la mise en tampon stdio aux E/S par appel système direct et explique quand chacune est appropriée. Les étudiants mesurent l'impact sur les performances des stratégies de mise en tampon sur le débit.
Leçon 4 • API d'E/S de fichier POSIX
Couvre open, read, write, lseek et close avec tous les indicateurs et modes pertinents. Établit le modèle de descripteur de fichier comme abstraction d'E/S universelle dans POSIX.
Leçon 5 • Mécanismes internes des systèmes de fichiers
Examine les inodes, les entrées de répertoire, les étendues et la journalisation dans les systèmes de fichiers modernes. Les étudiants comprennent comment les structures sur disque affectent la durabilité et la récupération après panne.
Chapitre 7MasquerCacher les détailsVoir les détailsInterfaces du noyau et pilotes de périphériques
Interfaces du noyau et pilotes de périphériques
Leçon 1 • Développement de modules du noyau
Couvre les fonctions d'initialisation/sortie des modules, le système Kbuild et les exigences de style de codage du noyau. Les étudiants compilent, chargent et déchargent en toute sécurité un module minimal du noyau.
Leçon 2 • Mémoire du noyau et DMA
Explique kmalloc, vmalloc et l'allocation cohérente DMA pour une utilisation dans les pilotes. Les étudiants choisissent l'API d'allocation correcte en fonction de la taille, de l'alignement et des exigences DMA.
Leçon 3 • Bases du pilote de périphérique de type caractère
Implémente les callbacks file_operations : open, release, read, write et ioctl. Les étudiants exposent une source de données du noyau à l'espace utilisateur via un fichier de périphérique.
Leçon 4 • Mécanismes internes des appels système
Trace un appel système de l'espace utilisateur à travers la table des appels système jusqu'au gestionnaire du noyau. Les étudiants comprennent le changement de contexte, le passage d'arguments et les chemins de retour.
Leçon 5 • Gestion des interruptions et moitiés inférieures
Enregistre les gestionnaires d'IRQ, implémente les tasklets et les workqueues pour le travail différé. Les étudiants écrivent du code de pilote sûr pour les interruptions qui respecte les contraintes de latence en temps réel.
Chapitre 8MasquerCacher les détailsVoir les détailsAnalyse des performances et optimisation
Analyse des performances et optimisation
Leçon 1 • Techniques d'optimisation du cache
Applique la disposition des structures de données, le préchargement et le bouclage par tuiles pour améliorer l'utilisation du cache. Les étudiants mesurent les taux d'échec de cache avant et après chaque transformation.
Leçon 2 • Méthodologie d'évaluation comparative
Couvre la conception de microbenchmarks, l'analyse statistique et l'évitement des pièges courants. Les étudiants produisent des résultats d'évaluation comparative reproductibles qui résistent à l'examen par les pairs.
Leçon 3 • Optimisation du compilateur et optimisation au moment de l'édition de liens
Explore les niveaux -O, PGO, LTO et les indicateurs d'auto-vectorisation. Les étudiants vérifient que les transformations du compilateur produisent des binaires corrects et plus rapides.
Leçon 4 • Contention de verrou et scalabilité
Mesure la contention de verrou avec perf lock et applique des techniques sans verrouillage le cas échéant. Les étudiants reconçoivent la synchronisation pour passer à l'échelle sur de nombreux cœurs de CPU.
Leçon 5 • Compteurs de performance CPU et profilage
Utilise perf stat, perf record et les flame graphs pour identifier les points chauds du CPU. Les étudiants corrèlent les données des compteurs matériels avec le code source pour guider l'optimisation.
Votre certificat valide de réussite
Ce cours est pour vous :
Ingénieur back-end : souhaite arrêter de traiter le système d'exploitation comme une boîte noire.
Étudiant en informatique : prêt à appliquer la théorie à du code réel au niveau du noyau.
Développeur de firmware : a besoin de bases solides en Linux et POSIX pour le travail embarqué.
Ingénieur DevOps : cherche une compréhension plus approfondie des mécanismes internes des conteneurs et de l'ordonnanceur.
Chercheur en sécurité : doit comprendre de première main la disposition de la mémoire et les limites de privilèges.
Personne en reconversion professionnelle : passe de rôles de script à l'ingénierie d'infrastructure bas niveau.
Ce que disent nos apprenants
Vos cours sont parfaits. J'ai acheté le forfait d'un an et j'ai enfin l'opportunité de suivre divers sujets qui m'intéressent sans avoir besoin de changer de plateforme... je vous remercie pour tout ce que vous faites, je vous ai déjà recommandés à d'autres personnes...

J'aime la façon dont les leçons vont droit au but et comment je peux changer de chapitres et passer le contenu dont je n'ai pas besoin.

J'aime le contenu et la façon dont les vidéos sont présentées et transcrites, ce qui accélère le processus !

La plateforme est rapide, simple à utiliser. La diversité du contenu et les vidéos complémentaires aident beaucoup dans l'apprentissage.

Formations principales
FAQ
Qui est Dedika ?
Le certificat est-il valable au Cameroun ?
Les cours sont-ils gratuits ?
Quelle est la charge de travail du cours ?
Comment sont les cours ?
Comment fonctionnent les cours ?
Quelle est la durée des cours ?
Quel est le coût ou le prix des cours ?
Qu'est-ce qu'un cours EAD ou en ligne et comment ça marche ?
Cours PDF




















