Plan du cours

Introduction

  • Les objectifs
  • Qui êtes-vous ?
  • La Linux Fondation
  • Formation à la Fondation Linux
  • Programmes de certification et badges numériques
  • Linux Distributions
  • Plateformes
  • Préparer votre système
  • Utilisation et téléchargement d'une machine virtuelle
  • Les choses changent en Linux

Préliminaires

  • Procédures
  • Les normes et le LSB

Comment travailler dans des projets OSS **

  • Aperçu de la manière de contribuer correctement
  • Rester proche de la ligne principale pour la sécurité et la qualité
  • Étudier et comprendre l'ADN du projet
  • Déterminer la démangeaison à laquelle vous voulez vous attaquer Scratch
  • Identifier les mainteneurs et leurs méthodes de travail
  • Obtenez des contributions précoces et travaillez de manière ouverte
  • Contribuez par petits bouts, pas par gros morceaux de code
  • Laissez votre ego à la porte : Ne soyez pas frileux
  • Soyez patient, développez des relations à long terme, soyez utile.

Compilateurs

  • GCC
  • Autres compilateurs
  • Principales options de gcc
  • Préprocesseur
  • Environnements de développement intégré (IDE)
  • Laboratoires

Bibliothèques

  • Bibliothèques statiques
  • Bibliothèques partagées
  • Liaison avec les bibliothèques
  • Chargeur de liens dynamiques
  • Laboratoires

Make

  • Utilisation de make et des fichiers Makefile
  • Construire de grands projets
  • Règles plus complexes
  • Règles intégrées
  • Labs

Contrôle des sources

  • Contrôle des sources
  • RCS et CVS
  • Subversion
  • git
  • Labs

Débogage et Core Dumps

  • gdb
  • Que sont les fichiers Core Dump ?
  • Produire des Core Dumps
  • Examiner les Core Dumps
  • Labs

Outils de débogage

  • Obtenir le temps
  • Profilage et performance
  • valgrind
  • Labos

Appels système

  • Appels système et fonctions de bibliothèque
  • Comment les appels système sont effectués
  • Valeurs de retour et numéros d'erreur
  • Labos

Mémoire Management et allocation

  • Mémoire Management
  • Allocation dynamique
  • Optimisation de malloc()
  • Verrouillage des pages
  • Laboratoires

Fichiers et systèmes de fichiers dans Linux **

  • Fichiers, répertoires et périphériques
  • Le système de fichiers virtuel
  • Le système de fichiers ext2/ext3
  • Systèmes de fichiers de journalisation
  • Le système de fichiers ext4/
  • Laboratoires

E/S de fichiers

  • E/S de fichiers UNIX
  • Ouverture et fermeture
  • Lecture, écriture et recherche
  • E/S positionnelles et vectorielles
  • Bibliothèque d'E/S standard
  • Support des grands fichiers (LFS)
  • Laboratoires

Opérations avancées sur les fichiers

  • Fonctions Stat
  • Fonctions d'annuaire
  • inotify
  • Cartographie de la mémoire
  • flock() et fcntl()
  • Création de fichiers temporaires
  • Autres appels système
  • Laboratoires

Processus I

  • Qu'est-ce qu'un processus ?
  • Limites des processus
  • Groupes de processus
  • Le système de fichiers proc
  • Méthodes interprocessus Communication
  • Laboratoires

Processus II

  • Utilisation de system() pour créer un processus
  • Utilisation de fork() pour créer un processus
  • Utilisation de exec() pour créer un processus
  • Utilisation de clone()
  • Quitter
  • Constructeurs et destructeurs
  • Attente
  • Processus démon
  • Laboratoires

Pipes et Fifos

  • Pipes et InterProcess Communication (en anglais)
  • popen() et pclose()
  • pipe()
  • Pipes nommés (FIFOs)
  • splice(), vmsplice() et tee()
  • Labs

E/S asynchrones**

  • Qu'est-ce que les E/S asynchrones ?
  • L'API POSIX d'E/S asynchrones
  • Linux Mise en œuvre
  • Laboratoires

Signaux I

  • Que sont les signaux ?
  • Signaux disponibles
  • Répartition des signaux
  • Alarmes, mise en pause et mise en sommeil
  • Configuration d'un gestionnaire de signaux
  • Jeux de signaux
  • sigaction()
  • Laboratoires

Signaux II

  • Réentrance et gestionnaires de signaux
  • Sauts et retours non locaux
  • siginfo et sigqueue()
  • Signaux en temps réel
  • Laboratoires

Threads POSIX I

  • Le multithreading sous Linux
  • Structure de base du programme
  • Création et destruction de threads
  • Signaux et threads
  • Forking vs. Threading
  • Laboratoires

Fils POSIX II

  • Blocages et conditions de course
  • Opérations Mutex
  • Sémaphores
  • Futex
  • Opérations conditionnelles
  • Laboratoires

Networking et Sockets

  • Couches Networking
  • Que sont les sockets ?
  • Sockets de flux
  • Sockets de datagramme
  • Sockets brutes
  • Ordre des octets
  • Laboratoires

Adresses des sockets et hôtes

  • Structures d'adresses de sockets
  • Conversion des adresses IP
  • Informations sur les hôtes
  • Labos

Ports et protocoles de sockets

  • Informations sur les ports de service
  • Informations sur le protocole
  • Laboratoires

Clients Sockets

  • Séquence de base du client
  • socket()
  • connect()
  • close() et shutdown()
  • Client UNIX
  • Client Internet
  • Laboratoires

Serveurs de sockets

  • Séquence de base du serveur
  • bind()
  • listen()
  • accept()
  • Serveur UNIX
  • Serveur Internet
  • Laboratoires

Opérations d'entrée/sortie des sockets

  • écrire(), lire()
  • send(), recv()
  • sendto(), recvfrom()
  • sendmsg(), recvmsg()
  • sendfile()
  • socketpair()
  • Labs

Options des sockets

  • Obtenir et définir des options de sockets
  • fcntl()
  • ioctl()
  • getsockopt() et setsockopt()
  • Labs

Les sockets Netlink**

  • Que sont les sockets netlink ?
  • Ouvrir une socket netlink
  • Messages netlink
  • Labos

Multiplexage des sockets et serveurs simultanés

  • E/S sockets multiplexées et asynchrones
  • select()
  • poll()
  • pselect() et ppoll()
  • epoll
  • E/S asynchrones et pilotées par signaux
  • Serveurs simultanés
  • Laboratoires

Interprocessus Communication

  • Méthodes d'IPC
  • IPC POSIX
  • IPC du système V**
  • Laboratoires

Mémoire partagée

  • Qu'est-ce que la mémoire partagée ?
  • Mémoire partagée POSIX
  • Mémoire partagée du Système V**
  • Labos

Sémaphores

  • Qu'est-ce qu'un sémaphore ?
  • Sémaphores POSIX
  • Sémaphores Système V**
  • Labos

Files d'attente de messages

  • Qu'est-ce qu'une file d'attente de messages ?
  • Files d'attente de messages POSIX
  • Files d'attente de messages System V**
  • Laboratoires

Pré requis

Ce cours s'adresse aux développeurs expérimentés. Les étudiants doivent maîtriser la programmation en C et être familiarisés avec les utilitaires de base et les éditeurs de texte.

Public

Ce cours s'adresse aux développeurs expérimentés. Les étudiants doivent maîtriser la programmation en C et être familiers avec les utilitaires de base Linux et les éditeurs de texte.

Niveau d'expérience : Intermédiaire

  28 heures

Nombre de participants



Prix par participant

Cours Similaires

Catégories Similaires