View the site in Français Site displayed in Anglais (USA) View the site in Anglais (GB)
You are here: ac6 > ac6-formation > SysAdmin > Programmation Linux et uClinux
Download Catalog
Download Catalog
Download as PDF
Download as PDF
Write us
Write us
Printable version
Printable version
 

D0 Programmation Linux et uClinux

La programmation utilisateur sur Linux et µClinux

La programmation utilisateur sur Linux et µClinux

formateur
Objectifs
bullet_jaune_1 Découvrir Linux et ses outils de développement et de mise au point
bullet_jaune_1 Programmer et débugger des applications Linux
bullet_jaune_2 Programmation multi-tâches et temps réel
bullet_jaune_2 Communications inter-processus
bullet_jaune_2 Entrées-sorties
bullet_jaune_1 Linux et µClinux
Matériel
bullet_jaune_2 Un PC Linux par binôme
bullet_jaune_2 Support de cours
bullet_jaune_2 CDROM avec documentation et exercices corrigés
Pré-requis
bullet_jaune_2 Connaissance de Linux utilisateur.
bullet_jaune_2 Connaissances générales en programmation C.

Outline
1er jour
Présentation & Architecture
bullet_jaune_2 Historique
bullet_jaune_2 Licences GPL et open source
bullet_jaune_2 Distributions et versions de Linux
bullet_jaune_2 Architecture du kernel Linux
Utilisation de Linux
bullet_jaune_2 Le système de fichier
bullet_jaune_2 Utilisation du shell et des scripts
bullet_jaune_2 L'éditeur vi
bullet_jaune_2 Administration de base
Le développement d'applications
bullet_jaune_2 Développement d'applications
bullet_jaune_3 différence entre mode utilisateur et mode noyau
bullet_jaune_3 structure d'une application Linux
bullet_jaune_2 Développement de librairies
bullet_jaune_3 statiques (.lib)
bullet_jaune_3 dynamiques (.so)
bullet_jaune_2 Outils de développement
bullet_jaune_3 les outils de compilation
bullet_jaune_3 la documentation (pages "man", info)
bullet_jaune_3 les makefile
bullet_jaune_3 environnements intégrés (Eclipse, Kdevelop,...)
bullet_jaune_2 Outils de debug et de mise au point
bullet_jaune_3 gdb
bullet_jaune_3 debug mémoire avec dmalloc et electric fence
bullet_jaune_3 analyse runtime complète avec Valgrind
Exercice : Ecriture d'une librairie mathématique simple compilée statiquement puis dynamiquement
2ème jour
Entrées/Sorties et Signaux
bullet_jaune_2 Interface standard des entrées/sorties
bullet_jaune_3 API
bullet_jaune_3 inodes et données
bullet_jaune_3 verrous
bullet_jaune_2 Programmation réseau
bullet_jaune_3 sockets
bullet_jaune_3 protocoles UDP et TCP
Exercice : Programmation d'une application client/serveur. Comparaison entre TCP/IP et UDP/IP.
bullet_jaune_2 Entrées-sorties asynchrones
bullet_jaune_3 mode non bloquant
bullet_jaune_3 E/S multiplexées
bullet_jaune_3 E/S notifiées
bullet_jaune_3 Asynchrone enchainé (API aio POSIX)
Exercice : Gestion de plusieurs connexions concurrentes par multiplexage d'I/O
bullet_jaune_2 Signaux POSIX et timers
bullet_jaune_3 types de signaux
bullet_jaune_3 réception d'un signal
bullet_jaune_3 fonctions utilisables dans un gestionnaire de signal
bullet_jaune_3 timers en mode utilisateur
3ème jour
Programmation Multitâches
bullet_jaune_2 Les processus
bullet_jaune_3 définition
bullet_jaune_3 structures du noyau
bullet_jaune_3 sécurité
bullet_jaune_3 cycle de vie (fork, exec,...)
Exercice : Gestion de plusieurs connexions concurrentes en multi processus (fork)
bullet_jaune_2 Les threads
bullet_jaune_3 définition (threads utilisateur et noyau)
bullet_jaune_3 threads POSIX (mutex, variables conditionnelles, Thread Specific Data,...)
Exercice : Gestion de plusieurs connexions concurrentes en multitâches (pthreads)
bullet_jaune_2 Gestion mémoire
bullet_jaune_3 gestion de la mémoire par la MMU (adresses virtuelles/physiques)
bullet_jaune_3 pagination et protection
bullet_jaune_3 swap
bullet_jaune_3 allocation mémoire
bullet_jaune_3 caches
bullet_jaune_2 Ordonnancement
bullet_jaune_3 la commutation de contexte
bullet_jaune_3 politique d'ordonnancement "normale" (niveaux nice)
bullet_jaune_3 politique d'ordonnancement temps réel (FIFO ou Round Robin)
bullet_jaune_3 principe et performances de l'algorithme
bullet_jaune_3 ordonnancement SMP (Symetrical Multi Processor)
4ème jour
Communication entre tâches (IPC POSIX)
bullet_jaune_2 Présentation de la norme POSIX
bullet_jaune_2 Communication entre tâches
bullet_jaune_3 Mapping de fichier en mémoire
bullet_jaune_3 Mémoire partagée
bullet_jaune_3 Files de messages
bullet_jaune_3 Pipes
bullet_jaune_2 Synchronisation des tâches
bullet_jaune_3 sémaphores
bullet_jaune_3 mutex
bullet_jaune_3 signaux
bullet_jaune_2 Les IPCs System V sont décrites en annexe
Exercice : Mise en place d'un watchdog sur timeout pour fermer les connexions inactives sur un serveur