Programmation système sous Unix/Linux

Partager par email

×

Code Titre Durée Prix HT
C350 Programmation système sous Unix/Linux 5 jours Nous consulter

Objectifs

Apprendre à programmer l'interface de programmation système d'Unix, de Linux et de fa&ccedilon plus générale des systèmes compatibles Posix. Maîtriser les processus, la gestion de la mémoire et les communications entre processus.

Public

Développeurs.

Pré-requis

La connaissance du langage C est indispensable.

Post-Formation

Méthodes

50% Pratique 50% Théorique

Programme

CONCEPTS ET OUTILS

  • Généralités sur le développement sous Linux
  • L'architecture des systèmes Unix
  • Outils de développement (Éditeurs de texte, Compilateur, éditeur de liens, débogueur, profileur)
  • Traitement du code source
  • Construction d'application
  • Distribution du logiciel
  • Environnements de développement intégré
  • Contrôle de version
  • Bibliothèques supplémentaires pour le développement

PROCESSUS ET THREADS

  • La notion de processus
  • Accès à l'environnement
  • Exécution des programmes
  • Lancement d'un nouveau programme
  • Fin d'un programme
  • Exécution automatique de routines de terminaison
  • Attendre la fin d'un processus fils
  • Signaux
  • Gestion classique des signaux
  • Liste des signaux sous Linux
  • Émission d'un signal sous Linux
  • Gestion portable des signaux  sigaction( )
  • Signaux temps-réel
  • Endormir un processus
  • Timers temps-réel
  • Suivre l'exécution d'un processus
  • Obtenir des statistiques sur un processus
  • Limiter les ressources consommées par un processus
  • Entrées-sorties simplifiées
  • Ordonnancement des processus
  • États d'un processus
  • Fonctionnement multitâche, priorités
  • Modification de la priorité d'un autre processus
  • Les mécanismes d'ordonnancement sous Linux
  • Programmation multithread
  • Création de threads
  • Attributs des threads
  • Déroulement et annulation d'un thread
  • Zones d'exclusions mutuelles
  • Attente de conditions
  • Sémaphores
  • Données privées d'un thread
  • Les threads et les signaux

GESTION DE LA MEMOIRE

  • Routines classiques d'allocation et de libération de mémoire
  • Règles de bonne conduite pour l'allocation et la libération de mémoire
  • Désallocation automatique avec alloca( )
  • Débogage des allocations mémoire
  • Configuration de l'algorithme utilisé par malloc( )
  • Verrouillage de pages en mémoire
  • Projection d'un fichier sur une zone mémoire
  • Protection de l'accès à la mémoire
  • Utilisation des blocs mémoire et des chaînes

FICHIERS ET FLUX DE DONNEES

  • Différences entre flux et descripteurs
  • Ouverture et fermeture d'un flux
  • Lectures et écritures dans un flux
  • Positionnement dans un flux
  • Fichiers à trous
  • Problèmes de portabilité
  • Paramétrage des buffers associés à un flux
  • État d'un flux
  • Ouverture et fermeture d'un descripteur de fichier
  • Lecture ou écriture sur un descripteur de fichier
  • Positionnement dans un descripteur de fichier
  • Accès au contenu des répertoires
  • Fichiers temporaires
  • Recherche de noms de fichiers
  • Attributs des fichiers

ACCES AUX INFORMATIONS DU SYSTEME

  • Groupes et utilisateurs
  • Nom d'hôte et de domaine
  • Informations sur le noyau
  • Système de fichiers

IPC

  • Communications classiques entre processus (pipes, pipes nommés)
  • Files de messages
  • Mémoire partagée
  • Sémaphores
  • Entrées-sorties avancées
  • Entrées-sorties non bloquantes
  • Attente d'événements – Multiplexage d'entrées
  • Distribution de données – Multiplexage de sorties
  • Entrées-sorties asynchrones avec fcntl( )
  • Entrées-sorties asynchrones Posix.1b
  • Écritures synchronisées
  • Programmation réseau
  • Manipulation des adresses IP
  • Noms d'hôtes et noms de réseaux
  • Utilisation des sockets

Environnement


Mot-clés

C350 programmation systeme Unix Linux C350

Commander