Objectifs :
Découvrir Linux et ses outils de développement et de mise au point
Programmer et débugger des applications Linux
- Programmation multi-tâches et temps réel
- Communications inter-processus
- Entrées-sorties
Linux et µClinux
Pré-requis :
Connaissance de Linux utilisateur.
Connaissances générales en programmation C.
Programme :
Présentation & Architecture
historique
licences GPL et open source
distributions et versions de Linux
architecture du kernel Linux
Utilisation de Linux
Le système de fichiers
Utilisation du shell et des scripts
L’éditeur vi
Administration de base
Le développement d’applications
Développement d’applications
- différence entre mode utilisateur et mode noyau
- structure d’une application Linux
Développement de librairies
- statiques (.lib)
- dynamiques (.so)
Outils de développement
- les outils de compilation
- la documentation (pages "man", info)
- les makefile
- environnements intégrés (Eclipse, Kdevelop,...)
Outils de debug et de mise au point
- gdb
- debug mémoire avec dmalloc et electric fence
- analyse runtime complète avec Valgrind
Signaux POSIX et timers
- types de signaux
- réception d’un signal
- fonctions utilisables dans un gestionnaire de signal
- timers en mode utilisateur
Entrées/Sorties et Signaux
Interface standard des entrées/sorties
- API
- inodes et données
- verrous
Programmation réseau
- sockets
- protocoles UDP et TCP
Entrées-sorties asynchrones
- mode non bloquant
- E/S multiplexées
- E/S notifiées
- Asynchrone enchainé (API aio POSIX)
Signaux POSIX et timers
- types de signaux
- réception d’un signal
- fonctions utilisables dans un gestionnaire de signal
- timers en mode utilisateur
Programmation Multitâches
Les processus
- définition
- structures du noyau
- sécurité
- cycle de vie (fork, exec,...)
Les threads
- définition (threads utilisateur et noyau)
- threads POSIX (mutex, variables conditionnelles, Thread Specific Data,...)
Gestion mémoire
- gestion de la mémoire par la MMU (adresses virtuelles/physiques)
- pagination et protection
- swap
- allocation mémoire
- caches
Ordonnancement
- la commutation de contexte
- politique d’ordonnancement "normale" (niveaux nice)
- politique d’ordonnancement temps réel (FIFO ou Round Robin)
- principe et performances de l’algorithme
- ordonnancement SMP (Symetrical Multi Processor)
Communication entre tâches (IPC POSIX)
Présentation de la norme POSIX
Communication entre tâches
- Mapping de fichier en mémoire
- Mémoire partagée
- Files de messages
- Pipes
Synchronisation des tâches
Les IPCs System V sont décrites en annexe
Durée : 4 jours
Dates : sur demande Prix : 1850 Euros HT
Les cours ont lieu chez notre partenaire AC6-Formation, à 5 mn da la Gare de La Défense.
Contactez nous :
5 BIS RUE GAMBETTA
92140 CLAMART
FRANCE
TEL : 33 (0)1 46 38 71 81
FAX : 33 (0)1 46 38 30 70
E-mail : formation@amtdata.com