Merci d'avoir envoyé votre demande ! Un membre de notre équipe vous contactera sous peu.
Merci d'avoir envoyé votre réservation ! Un membre de notre équipe vous contactera sous peu.
Plan du cours
Introduction
- Les objectifs
- Qui êtes-vous ?
- La Linux Fondation
- Formation à la Fondation Linux
- Programmes de certification et badges numériques
- Linux Distributions
- Plateformes
- Préparer votre système
- Utilisation et téléchargement d'une machine virtuelle
- Les choses changent en Linux
Préliminaires
- Procédures
- Les normes et le LSB
Comment travailler dans des projets OSS **
- Aperçu de la manière de contribuer correctement
- Rester proche de la ligne principale pour la sécurité et la qualité
- Étudier et comprendre l'ADN du projet
- Déterminer la démangeaison à laquelle vous voulez vous attaquer Scratch
- Identifier les mainteneurs et leurs méthodes de travail
- Obtenez des contributions précoces et travaillez de manière ouverte
- Contribuez par petits bouts, pas par gros morceaux de code
- Laissez votre ego à la porte : Ne soyez pas frileux
- Soyez patient, développez des relations à long terme, soyez utile.
Compilateurs
- GCC
- Autres compilateurs
- Principales options de gcc
- Préprocesseur
- Environnements de développement intégré (IDE)
- Laboratoires
Bibliothèques
- Bibliothèques statiques
- Bibliothèques partagées
- Liaison avec les bibliothèques
- Chargeur de liens dynamiques
- Laboratoires
Make
- Utilisation de make et des fichiers Makefile
- Construire de grands projets
- Règles plus complexes
- Règles intégrées
- Labs
Contrôle des sources
- Contrôle des sources
- RCS et CVS
- Subversion
- git
- Labs
Débogage et Core Dumps
- gdb
- Que sont les fichiers Core Dump ?
- Produire des Core Dumps
- Examiner les Core Dumps
- Labs
Outils de débogage
- Obtenir le temps
- Profilage et performance
- valgrind
- Labos
Appels système
- Appels système et fonctions de bibliothèque
- Comment les appels système sont effectués
- Valeurs de retour et numéros d'erreur
- Labos
Mémoire Management et allocation
- Mémoire Management
- Allocation dynamique
- Optimisation de malloc()
- Verrouillage des pages
- Laboratoires
Fichiers et systèmes de fichiers dans Linux **
- Fichiers, répertoires et périphériques
- Le système de fichiers virtuel
- Le système de fichiers ext2/ext3
- Systèmes de fichiers de journalisation
- Le système de fichiers ext4/
- Laboratoires
E/S de fichiers
- E/S de fichiers UNIX
- Ouverture et fermeture
- Lecture, écriture et recherche
- E/S positionnelles et vectorielles
- Bibliothèque d'E/S standard
- Support des grands fichiers (LFS)
- Laboratoires
Opérations avancées sur les fichiers
- Fonctions Stat
- Fonctions d'annuaire
- inotify
- Cartographie de la mémoire
- flock() et fcntl()
- Création de fichiers temporaires
- Autres appels système
- Laboratoires
Processus I
- Qu'est-ce qu'un processus ?
- Limites des processus
- Groupes de processus
- Le système de fichiers proc
- Méthodes interprocessus Communication
- Laboratoires
Processus II
- Utilisation de system() pour créer un processus
- Utilisation de fork() pour créer un processus
- Utilisation de exec() pour créer un processus
- Utilisation de clone()
- Quitter
- Constructeurs et destructeurs
- Attente
- Processus démon
- Laboratoires
Pipes et Fifos
- Pipes et InterProcess Communication (en anglais)
- popen() et pclose()
- pipe()
- Pipes nommés (FIFOs)
- splice(), vmsplice() et tee()
- Labs
E/S asynchrones**
- Qu'est-ce que les E/S asynchrones ?
- L'API POSIX d'E/S asynchrones
- Linux Mise en œuvre
- Laboratoires
Signaux I
- Que sont les signaux ?
- Signaux disponibles
- Répartition des signaux
- Alarmes, mise en pause et mise en sommeil
- Configuration d'un gestionnaire de signaux
- Jeux de signaux
- sigaction()
- Laboratoires
Signaux II
- Réentrance et gestionnaires de signaux
- Sauts et retours non locaux
- siginfo et sigqueue()
- Signaux en temps réel
- Laboratoires
Threads POSIX I
- Le multithreading sous Linux
- Structure de base du programme
- Création et destruction de threads
- Signaux et threads
- Forking vs. Threading
- Laboratoires
Fils POSIX II
- Blocages et conditions de course
- Opérations Mutex
- Sémaphores
- Futex
- Opérations conditionnelles
- Laboratoires
Networking et Sockets
- Couches Networking
- Que sont les sockets ?
- Sockets de flux
- Sockets de datagramme
- Sockets brutes
- Ordre des octets
- Laboratoires
Adresses des sockets et hôtes
- Structures d'adresses de sockets
- Conversion des adresses IP
- Informations sur les hôtes
- Labos
Ports et protocoles de sockets
- Informations sur les ports de service
- Informations sur le protocole
- Laboratoires
Clients Sockets
- Séquence de base du client
- socket()
- connect()
- close() et shutdown()
- Client UNIX
- Client Internet
- Laboratoires
Serveurs de sockets
- Séquence de base du serveur
- bind()
- listen()
- accept()
- Serveur UNIX
- Serveur Internet
- Laboratoires
Opérations d'entrée/sortie des sockets
- écrire(), lire()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Labs
Options des sockets
- Obtenir et définir des options de sockets
- fcntl()
- ioctl()
- getsockopt() et setsockopt()
- Labs
Les sockets Netlink**
- Que sont les sockets netlink ?
- Ouvrir une socket netlink
- Messages netlink
- Labos
Multiplexage des sockets et serveurs simultanés
- E/S sockets multiplexées et asynchrones
- select()
- poll()
- pselect() et ppoll()
- epoll
- E/S asynchrones et pilotées par signaux
- Serveurs simultanés
- Laboratoires
Interprocessus Communication
- Méthodes d'IPC
- IPC POSIX
- IPC du système V**
- Laboratoires
Mémoire partagée
- Qu'est-ce que la mémoire partagée ?
- Mémoire partagée POSIX
- Mémoire partagée du Système V**
- Labos
Sémaphores
- Qu'est-ce qu'un sémaphore ?
- Sémaphores POSIX
- Sémaphores Système V**
- Labos
Files d'attente de messages
- Qu'est-ce qu'une file d'attente de messages ?
- Files d'attente de messages POSIX
- Files d'attente de messages System V**
- Laboratoires
Pré requis
Ce cours s'adresse aux développeurs expérimentés. Les étudiants doivent maîtriser la programmation en C et être familiarisés avec les utilitaires de base et les éditeurs de texte.
Public
Ce cours s'adresse aux développeurs expérimentés. Les étudiants doivent maîtriser la programmation en C et être familiers avec les utilitaires de base Linux et les éditeurs de texte.
Niveau d'expérience : Intermédiaire
28 Heures