Linux : principes et programmation
Objectifs
Développement d'applications multiprocessus centralisées et réparties sour un système LINUX.
Contenu de la formation
Introduction générale
- Rappels sur le fonctionnement des systèmes informatiques.
- Systèmes mono et multi processeur, centralisés et répartis
- Installation d'un système Linux et d'un environnement de développement C (directement ou dans une machine virtuelle)
- Fonctionnement général du système Linux
Gestion de processus
- Processus sous Linux
- Réalisation d'un appel système
- Threads
- Gestion de l'espace d'adressage
- Ordonnancement sous Linux mono et multiprocesseur
- Langage de commandes associé
Communication centralisée et Synchronisation de processus
- tubes nommés et anonymes, files de messages
- segments de mémoire partagée
- signaux
- Section critique, sémaphores, problèmes classiques.
- exemple d'interblocage (par exemple avec les tubes nommés)
Systèmes de fichiers
- Interfaces des systèmes de fichiers et implémentation
- programmation
- langage de commande.
- fichiers spéciaux
- gestion des droits
Scripts
- les notions de bases (variables, boucles, conditionnelles)
- variables d'environnement
Systèmes distribués
- Structure des réseaux et structure des systèmes répartis.
- Programmation socket
- Introduction au RPC
Des travaux pratiques permettent d'introduire les notions liées au langage C et de mettre en oeuvre les primitives du système liées au processus et à la communication entre processus
Les différents items sont abordés coté utilisateur (programmation) et coté système (implémentation). Par exemple, on peut détailler le fonctionnement interne de quelques appels système et la présentation des structures de données et algorithmes du noyau.