Logo de la rubrique Linux – Les bases de la programmation système

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