Linux – Les bases de la programmation système
Linux est aujourd’hui considéré comme l’un des systèmes d’exploitation open source le plus performant et sécurisé. Cette formation, vous propose dans un premier temps l’apprentissage du langage de base pour la programmation. De nombreux exercices illustrent chaque chapitre afin de mettre en pratique les notions abordées en cours.

OBJECTIFS
Assimiler les concepts de développement sous Linux
Savoir développer une application multi processus sous Linux
Mettre en oeuvre les développements dans les projets
Acquérir une vraie autonomie dans les développements systèmes
PUBLIC VISE
Développeur d’application débutant à intermédiaire en développement système
PREREQUIS
Une connaissance du langage C est obligatoire.
INTERVENANT
Ingénieur de Recherche au CNRS - 30 ans d’expérience en développement logiciel et modélisation. Enseignant le numérique dans plusieurs écoles.
DUREE
3 jours soit 21h
PRIX
Consulter Sébastien SALAS, salas@captronic.fr - 06 87 83 32 32
LIEU
Formation présentielle ou distancielle 
A distance, les accès à un outil informatique en ligne adapté seront fournis au stagiaire avant le démarrage de la formation. 
En présentiel, surface de salle permettant de respecter les mesures sanitaires de distanciation sociale, salle équipée d’un outil de projection et connexion à Internet.
PROGRAMME
Introduction 
Structure de Linux : noyau, espace suer et kernel 
Environnement de développement 
Librairie : structure, librairie partagée 
Compilateur C/C++ 
Outils de debug
Les processus 
Concept de processus, identifications 
Création, terminaison d’un processus et exécution 
Scheduler sous Linux
Affinité avec les processeurs 
Problèmes de sécurité
TP : Création de processus
Les threads Posix 
Principe des threads Posix.1c. 
Machine à états d’un thread. 
Synchronisation des threads : utilisation des mutex, sémaphores et des variables conditions. 
Notion de section critique : protocoles d’entrée et sortie 
Variables atomiques, sections atomiques 
Gestion de la priorité d’un thread 
Détacher un thread 
Les attributs pour les threads 
Les différents paradigmes : producteurs / consommateurs, lecteur écrivain 
Thread périodique et gestion du temps
TP : Création de thread, synchronisation avec sémaphore et thread, utilisation des variables atomiques, mise en œuvre producteurs / consommateurs, lecteur écrivain.
Gestion du temps
Communications entre processus IPC 
Files de messages : principe. Files de messages 
System V et Posix. 
Mémoire partagée : création, partage, accès partagé. 
Synchronisation des accès : sémaphores Posix. 
Tubes de communication : création d’un tube et tubes nommés.
TP : Echange de données en processus avec la mémoire partagée, pipe et pipe nommé, mailing.
Gestion de la mémoire 
Principes de la mémoire virtuelle : espace d’adressage et mémoire physique. Segmentation et pagination. 
Fautes de page. 
Allocation de la mémoire : fonctions classiques, exploration de l’espace d’adressage, réussite et échec d’allocation. 
Utilisation de la mémoire : projection, configuration, détection des fuites et débordements mémoire.
Signaux 
Principe des signaux sous Linux, les différents signaux. 
Gestion des signaux : émission et réception de signaux, masque de signaux, attente. Signaux temps réel : principes. Emission et réception.
TP : Mise en oeuvre des signaux avec masque, émission et réception.
Communiquer sur le réseau 
Appels système fondamentaux : résolution de noms, de services, création de sockets. 
Communication TCP/IP et UDP/IP : serveurs multi-processus et multithreads, clients TCP. 
Transmission unicast, multicast et broadcast. 
Notion de l’architecture client serveur 
Résolution de nom DNS.
TP : Développement d’un client serveur TCP/IP et UDP/IP et utilisation des threads.
Entrées-sorties classiques et avancées 
Descripteurs et flux : concepts, utilisation, paramétrage. 
Entrées-sorties avancées : entrées-sorties non bloquantes et multiplexées, asynchronisme.
TP : Création de fichier, écriture, lecture.
ORGANISATION
Moyens pédagogiques :  Outil de visioconférence si formation à distance - Support de cours - Etude de cas – Démonstration ou travaux pratiques. Une assistance pédagogique sur le cours sera assurée par le formateur pendant 1 mois à l’issue de la formation.
Moyens permettant d’apprécier les résultats de l’action : Evaluation de l’action de formation par l’envoi d’un questionnaire de satisfaction à chaud à l’issue de la formation, puis d’un questionnaire à froid quelques semaines après la formation.
Moyen permettant de suivre l’exécution de l’action : Evaluation des connaissances via un questionnaire avant et après la formation. En présentiel, feuilles de présence signées par chaque stagiaire et le formateur par demi-journée de formation.
Sanction de la formation : Attestation de présence ou d’assiduité
RENSEIGNEMENTS ET INSCRIPTION
Sébastien SALAS, salas@captronic.fr - 06 87 83 32 32
Pour toute question y compris les conditions d’accès pour les publics en situation de handicap.
Informations mises à jour le 13/01/2023
 
                    