|
|
|
|
| 1er jour |
| Présentation & Architecture |
 |
Historique |
 |
Licences GPL et open source |
 |
Distributions et versions de Linux et uClinux |
 |
Architecture du kernel Linux et uClinux |
| Utilisation de Linux |
 |
Le système de fichier |
 |
Utilisation du shell et des scripts |
 |
L'éditeur vi |
 |
Administration de base |
| Le développement d'applications |
 |
Développement d'applications Linux |
|
 |
différence entre mode utilisateur et mode noyau |
|
 |
structure d'une application Linux |
|
 |
Développement d'applications uClinux |
|
 |
les formats d'exécutables uClinux |
|
 |
les options de compilation |
|
 |
Développement de librairies Linux |
|
 |
statiques (.lib) |
|
 |
dynamiques (.so) |
|
 |
Développement de librairies uClinux |
|
 |
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 |
| Exercice : |
Ecriture d'une librairie mathématique simple compilée statiquement puis dynamiquement pour Linux et uClinux |
| 2ème jour |
| 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 |
| Exercice : |
Programmation d'une application client/serveur. Comparaison entre TCP/IP et UDP/IP. |
|
 |
Entrées-sorties asynchrones |
|
 |
mode non bloquant |
|
 |
E/S multiplexées |
|
 |
E/S notifiées |
|
 |
Asynchrone enchainé (API aio POSIX) |
| Exercice : |
Gestion de plusieurs connexions concurrentes par multiplexage d'I/O |