Formation Linux/Unix, développement système
La formation Linux/Unix développement système garantit au participant une maîtrise de toutes les facettes de la programmation applicative de la gestion des processus et threads, à la gestion du système de fichiers, en passant par la mémoire.
Les objectifs de cette formation sont pour le participant de pouvoir maîtriser la communication inter processus, et gérer les signaux et la communication réseau.

À l’issue de la formation, le participant sera en mesure de :
- Savoir gérer les processus et les threads
- Maîtriser la communication inter processus
- Gérer la mémoire
- Maîtiser les signaux et la communication réseau
- Maîtriser les entrées sorties
Cette formation s'adresse aux développeurs Linux/Unix.
4 JOURS
Outils et méthodes de développement
- Environnement Linux : influences, logiciels libres, licence GPL, distributions.
- Outils de développement : éditeurs et environnements intégrés, compilateurs et constructeurs, profileurs et débogueurs.
Travaux pratiques
Prise en main des outils de développement (gcc, make...).
Les processus
- Concept de processus, identifications.
- Création, terminaison d'un processus et exécution.
- Problèmes de sécurité.
Les threads Posix
- Principe des threads Posix.1c.
- Exécution et terminaison des threads.
- Synchronisation des threads : utilisation des mutex et des variables conditions.
Communications entre processus
- Files de messages : principe. Files de message System V et Posix.
- Mémoire partagée : principe. Segments de mémoire System V et Posix.
- Synchronisation des accès : sémaphores Posix et nommés.
- Tubes de communication : création d'un tube, redirection des entrées-sorties, tubes nommés.
Gestion de la mémoire
- Principes de la mémoire virtuelle : espace d'adressage et mémoire physique. Segmentation et pagination. Fautes de page.
- Allocation de la mémoire : fonctions classiques, exploration de l'espace d'adressage, réussite et échec d'allocation.
- Utilisation de la mémoire : projection, configuration, détection des fuites et débordements mémoire.
Signaux
- Gestion des signaux : émission et réception de signaux, blocages et attentes.
- Signaux temps réel : principes. Emission et réception.
Communiquer sur le réseau
- Appels système fondamentaux : résolution de noms, de services, création de sockets.
- Communication TCP/IP et UDP/IP : serveurs multiprocessus et multithreads, clients TCP.
- Transmission unicast, multicast et broadcast.
Entrées-sorties classiques et avancées
- Descripteurs et flux : concepts, utilisation, paramétrage.
- Entrées-sorties avancées : entrées-sorties non bloquantes et multiplexées, asynchronisme.
Bonne connaissance d'un système Linux/ Unix et de la programmation en C.
