Savoir utiliser les appels système UNIX pour programmer efficacement une application.

Objectifs

Savoir utiliser les appels système Linux pour développer des applications efficaces.

Matériel

Les travaux pratiques du stage Linux embarqué sont réalisés sur:

  • Ordinateur portable ou station de travail sous Debian (RedHat ou Fedora sur demande(*)).

(*) Attention ces modifications peuvent entrainer une modification des themes abordés.

Participants

Cette formation s'adresse aux développeurs d'applications travaillant sous Linux.

Pré-requis

Connaissance du langage C et du système Linux ou UNIX.

Programme

INTRODUCTION

  • Historique et standards
  • Les concepts fondamentaux, la programmation système
  • Rappels sur les entrées/sorties
  • Les répertoires proc et sys
  • Les fichiers ELF
  • Travaux pratiques :
  • Prise en main de l'environnement de développement.

PROCESS, UTILISATEUR ET MEMOIRE

  • Les process, politiques d'ordonnancement, priorités, affinité, multi-processeurs
  • La mémoire, les limitations avec rlimit
  • Les utilisateurs et les groupes, credentials (UID) et capabilities
  • Les daemons, les groupes de process et les sessions
  • Travaux pratiques :
  • Ecriture d'un lanceur pour sécuriser un daemon

LE SYSTEME DE FICHIER

  • Le système de fichier, les inodes et les montages
  • La synchronisation des caches
  • Les répertoires, les fichiers et les liens
  • Les attributs de fichier, attributs étendus, ACL
  • Monitoring des événements sur le système de fichier
  • Travaux pratiques :
  • Suivre en temps réel les modifications apportées à un répertoire

LE TEMPS ET LES SIGNAUX

  • Date et heure
  • Les timers, interval timers, posix timers, timeout
  • L'interface signal et l'interface sigaction
  • Gestion déterministe des signaux et des timers
  • Travaux pratiques :
  • Gestion de signaux et de timers

PROCESS

  • Création de process, suivit d'un process fils
  • Clonage, namespaces
  • Terminaison d'un process
  • Travaux pratiques :
  • Créer un programme utilisant clone(2) pour créer un nouveau namespaces

LES THREADS POSIX

  • Introduction, présentation du mapping mémoire
  • La synchronisation de threads
  • Gestion mémoire, optimisation et thread local storage
  • Thread cancelation
  • Travaux pratiques :
  • Différents exercices sur la création et l'optimisation de threads.

COMMUNICATIONS INTERPROCESS

  • Pipes et Fifo
  • IPC system V, sémaphores, mémoire partagée et messages
  • IPC POSIX, sémaphores, mémoire partagée et messages
  • Lock de fichiers
  • Travaux pratiques :
  • Ecrire un serveur de fichier en mémoire partagée SV ou POSIX

BIBLIOTHEQUES PARTAGEES

  • Les fondamentaux, LD_LIBRARY_PATH, DT_RPATH, DT_RUNPATH, $ORIGIN
  • Créer une bibliothèque partagée (.so)
  • Utilisation avancée, interposition, dlopen et dlsym
  • Travaux pratiques :
  • Création d'une bibliothèque partagée, fixer le chemin de recherche

GESTION MEMOIRE AVANCEE

  • Le mapping mémoire, IPC et mapping mémoire, synchronisation sélective
  • Les opérations sur la mémoire virtuelle
  • Lock de régions mémoire
  • Travaux pratiques
  • Utiliser un Makefile et débugger un programme.
Informations

Durée et prix du stage

Prochaines sessions:

16-09-2019Paris
18-11-2019Aix-En-Provence
09-12-2019Lyon
16-12-2019Toulouse

Autres sessions:    
Contact:
S'inscrire:

Calendrier 2019

Consultez le calendrier complet de nos formations pour le premier semestre 2019.

Repas du midi et collations compris dans le prix.

Linux Embarqué
La formation linux embarqué est effectuée sur cartes beaglebone.
La carte est offerte aux stagiaires en fin de stage.


Site construit par M.N.I.S. en utilisant Bootstrap licence Apache V2 et Glyphicons Free licence CC BY 3.0
janvier 2015