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
- 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