Réf : LINUX_06
Durée : 4 jours
Objectif de la formation
Ce stage aborde les principaux concepts systèmes utilisés dans le développement d’une application linux (appels systèmes et bibliothèque donc principalement la LibC). Il traite notamment du multitâche sous Linux (processus/thread), de la gestion de la mémoire, de la communication et synchronisation inter processus (signaux, files de message, mémoire partagée, sémaphores et mutex, tubes de communication), de la gestions des entrées/sorties et de la programmation réseau.
L’ensemble du cours est étayé de réalisations pratiques permettant aux stagiaires d’assimiler de manière concrète les thématiques abordées.
Public visé : Développeurs et chefs de projets souhaitant obtenir une vision d’ensemble sur le développement d’une application Linux.
Sommaire
Introduction
• Historique Unix
• Présentation de Linux
• Licences (GPL, LGPL, BSD)
• Distributions, gestion de paquets
Fichiers
• Structure du système de fichiers
• Fichiers et devices
• Descripteurs de fichiers, E/S standards
• Fonctions de bas niveau
• Fonctions de la librairie standard d'E/S
• Verrous et autres fonctions
Processus
• Présentation et concepts
• Attributs et identifications des processus
• Création de processus
• Attente d'un processus
• Terminaison de processus
Threads
• Présentation et concepts
• Threads vs. processus
• Création de threads
• Terminaison de threads
• Synchronisation, sections critiques, mutexes
Signaux
• Présentation des signaux
• Liste des signaux sous Linux
• Émission d’un signal
• Réception des signaux
• Blocage des signaux
Tubes
• Présentation des tubes
• Tubes entre processus
• La fonction pipe
• Utilisation lors d'un fork()
• Les tubes nommés
Mémoire partagée
• Présentation et concepts
• Création d'un segment de mémoire partagée
• Connexion et déconnection au segment
Files de messages
• Présentation et concepts
• Création et ouverture d'une file
• Ecriture d'un message dans une file
• Lecture de messages dans une file
• Contrôle des files
Sémaphores
• Présentation et concepts
• Création d'un sémaphore
• Opérations sur un sémaphore
• Contrôle et destruction des sémaphores
Gestion de la mémoire
• Fonctions d’allocation
• Fonction de libération
• Règles de sécurité
• Débogage des allocations mémoire
• Verrouillage de pages en mémoire
• Protection de l’accès à la mémoire
Sockets
• Présentation et concepts
• Domaines, types et protocoles
• Création d’une socket
• Affectation d’adresse
• Mode connecté et mode non connecté
• Attente de connexions
• Demander une connexion
• Fermeture d’une socket
• Recevoir et envoyer des données
• Options des sockets
Travaux Pratiques:
• Chaque chapitre est étayé par des travaux pratiques permettant de mettre en œuvre les notions abordées.
• Les travaux pratiques sont constitués :
- D’un squelette de code permettant de réaliser l’exercice
- D’une correction