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
- Objectifs
- Qui êtes-vous?
- La Fondation Linux
- Formation de la Fondation Linux
- Programmes de Certification et Badges Numériques
- Distributions Linux
- Plateformes
- Préparation de votre Système
- Utilisation et Téléchargement d'une Machine Virtuelle
- Les Choses Évoluent dans Linux
Preliminaires
- Procédures
- Normes et le LSB
Comment Travailler sur des Projets de Logiciel Libre (OSS) **
- Aperçu du Comment Contribuer Correctement
- Restez Proche de la Branche Principale pour la Sécurité et la Qualité
- Étudiez et Comprenez le DNA du Projet
- Identifiez Quelle Partie Vous Voulez Améliorer
- Reconnaître les Mainteneurs et Leur Flux de Travail et Méthodes
- Obtenir des Retours Précoce et Travailler en Transparence
- Contributez par Petits Bouts, Pas Par Des Dépôts de Code Considérables
- Laissez Votre Ego à la Porte: Ne Soyez Pas Écorché Vive
- Soyez Patient, Développez des Relations à Long Terme et Soyez Utile
Compilateurs
- GCC
- Autres Compilateurs
- Options principales de gcc
- Préprocesseur
- Environnements de Développement Intégrés (IDE)
- Laboratoires
Bibliothèques
- Bibliothèques Statiques
- Bibliothèques Partagées
- Liaison à des Bibliothèques
- Chargeur de Liaisons Dynamiques
- Laboratoires
Make
- Utilisation de make et Makefiles
- Construire des Projets Importants
- Règles Plus Complexes
- Règles Internes
- Laboratoires
Contrôle de Version
- Contrôle de Versions
- RCS et CVS
- Subversion
- git
- Laboratoires
Débogage et Dépôts Cores
- gdb
- Qu'est-ce que les Fichiers de Dépôt de Cores?
- Production de Dépôts de Cores
- Examen des Dépôts de Cores
- Laboratoires
Outils de Débogage
- Obtenir le Temps
- Profilage et Performance
- valgrind
- Laboratoires
Appels Système
- Appels Système vs. Fonctions de Bibliothèque
- Comment sont Faits les Appels Système
- Valeurs Retour et Numéros d'Erreurs
- Laboratoires
Gestion de la Mémoire et Allocation
- Gestion de la Mémoire
- Allocation Dynamique
- Ajustement de malloc()
- Verrouillage des Pages
- Laboratoires
Fichiers et Systèmes de Fichiers sous Linux **
- Fichiers, Répertoires et Dispositifs
- Le Système Virtuel de Fichiers
- Système de Fichiers ext2/ext3
- Systèmes de Fichiers avec Journalisation
- Système de Fichiers ext4/
- Laboratoires
I/O de Fichiers
- I/O de Fichiers UNIX
- Ouverture et Fermeture
- Lecture, Écriture et Recherche
- I/O Positionnelle et Vectorielle
- Bibliothèque I/O Standard
- Support de Fichiers Gros (LFS)
- Laboratoires
Opérations Avancées sur les Fichiers
- Fonctions Stat
- Fonctions de Répertoire
- inotify
- Cartographie en Mémoire
- flock() et fcntl()
- Création de Fichiers Temporaires
- Autres Appels Système
- Laboratoires
Processus I
- Qu'est-ce qu'un Processus?
- Limites de Processus
- Groupes de Processus
- Le Système Fichier proc
- Méthodes de Communication Interprocessus (IPC)
- 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()
- Sortie
- Constructeurs et Destructeurs
- Attente
- Processus Démons
- Laboratoires
Tubes et Fifos
- Tubes et Communication Interprocessus
- popen() et pclose()
- pipe()
- Tubes Nommés (FIFOs)
- splice(), vmsplice() et tee()
- Laboratoires
I/O Asynchrone**
- Qu'est-ce que l'I/O Asynchrone?
- L'API I/O Asynchrone POSIX
- Implémentation sous Linux
- Laboratoires
Signaux I
- Qu'est-ce que des Signaux?
- Signaux Disponibles
- Déploiement de Signaux
- Alarmes, Pause et Sommeil
- Mise en Place d'un Gestionnaire de Signaux
- Ensembles 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
Fils d'Exécution POSIX I
- Multithreading sous Linux
- Structure du Programme de Base
- Création et Destruction des Fils d'Exécution
- Signaux et Threads
- Forking vs. Threading
- Laboratoires
Fils d'Exécution POSIX II
- Morts en Rixe et Conditions de Course
- Opérations de Mutex
- Sémaphores
- Futexes
- Opérations Conditionnelles
- Laboratoires
Réseaux et Sockets
- Niveaux de Réseaux
- Qu'est-ce que des Sockets?
- Sockets en Flux
- Sockets Datagramme
- Sockets Brutes
- Ordre des Octets
- Laboratoires
Sockets Adresses et Hôtes
- Structures d'Adresse de Sockets
- Conversion des Adresses IP
- Information sur les Hôtes
- Laboratoires
Sockets Ports et Protocoles
- Informations de Ports Service
- Informations sur les Protocoles
- Laboratoires
Sockets Clients
- Séquence Client de Base
- socket()
- connect()
- close() et shutdown()
- Client UNIX
- Client Internet
- Laboratoires
Sockets Serveurs
- Séquence Serveur de Base
- bind()
- listen()
- accept()
- Serveur UNIX
- Serveur Internet
- Laboratoires
Sockets Opérations d'Entrée/Sortie
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Laboratoires
Sockets Options
- Obtention et Configuration des Options de Sockets
- fcntl()
- ioctl()
- getsockopt() et setsockopt()
- Laboratoires
Sockets Netlink**
- Qu'est-ce que des Sockets Netlink?
- Ouverture d'une Socket Netlink
- Messages Netlink
- Laboratoires
Sockets Multiplexage et Serveurs Concurrents
- Entrées/Sorties Multiplexées Asynchrones de Sockets
- select()
- poll()
- pselect() et ppoll()
- epoll
- I/O Générée par Signal et Asynchrone
- Serveurs Concurrents
- Laboratoires
Communication Interprocessus (IPC)
- Méthodes de IPC
- IPC POSIX
- IPC System V**
- Laboratoires
Mémoire Partagée
- Qu'est-ce que la Mémoire Partagée?
- Mémoire Partagée POSIX
- Mémoire Partagée System V**
- Laboratoires
Sémaphores
- Qu'est-ce qu'un Sémaphore?
- Sémaphores POSIX
- Sémaphores System V**
- Laboratoires
Fils de Messages (Message Queues)
- Qu'est-ce que des Files de Messages?
- Files de Messages POSIX
- Files 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