Plan du cours

Introduction

  •  Objectifs
  •  Qui êtes-vous?
  •  La Fondation Linux
  •  Formation de la Fondation Linux
  •  Programmes de Certification et Badges Numériques
  •  Distributions Linux
  •  Plateformes
  •  Préparation de votre Système
  •  Utilisation et Téléchargement d'une Machine Virtuelle
  •  Les Choses Évoluent dans Linux

Preliminaires

  •  Procédures
  •  Normes et le LSB

Comment Travailler sur des Projets de Logiciel Libre (OSS) **

  •  Aperçu du Comment Contribuer Correctement
  •  Restez Proche de la Branche Principale pour la Sécurité et la Qualité
  •  Étudiez et Comprenez le DNA du Projet
  •  Identifiez Quelle Partie Vous Voulez Améliorer
  •  Reconnaître les Mainteneurs et Leur Flux de Travail et Méthodes
  •  Obtenir des Retours Précoce et Travailler en Transparence
  •  Contributez par Petits Bouts, Pas Par Des Dépôts de Code Considérables
  •  Laissez Votre Ego à la Porte: Ne Soyez Pas Écorché Vive
  •  Soyez Patient, Développez des Relations à Long Terme et Soyez Utile

Compilateurs

  •  GCC
  •  Autres Compilateurs
  •  Options principales de gcc
  •  Préprocesseur
  •  Environnements de Développement Intégrés (IDE)
  •  Laboratoires

Bibliothèques

  •  Bibliothèques Statiques
  •  Bibliothèques Partagées
  •  Liaison à des Bibliothèques
  •  Chargeur de Liaisons Dynamiques
  •  Laboratoires

Make

  •  Utilisation de make et Makefiles
  •  Construire des Projets Importants
  •  Règles Plus Complexes
  •  Règles Internes
  •  Laboratoires

Contrôle de Version

  •  Contrôle de Versions
  •  RCS et CVS
  •  Subversion
  •  git
  •  Laboratoires

Débogage et Dépôts Cores

  •  gdb
  •  Qu'est-ce que les Fichiers de Dépôt de Cores?
  •  Production de Dépôts de Cores
  •  Examen des Dépôts de Cores
  •  Laboratoires

Outils de Débogage

  •  Obtenir le Temps
  •  Profilage et Performance
  •  valgrind
  •  Laboratoires

Appels Système

  •  Appels Système vs. Fonctions de Bibliothèque
  •  Comment sont Faits les Appels Système
  •  Valeurs Retour et Numéros d'Erreurs
  •  Laboratoires

Gestion de la Mémoire et Allocation

  •  Gestion de la Mémoire
  •  Allocation Dynamique
  •  Ajustement de malloc()
  •  Verrouillage des Pages
  •  Laboratoires

Fichiers et Systèmes de Fichiers sous Linux **

  •  Fichiers, Répertoires et Dispositifs
  •  Le Système Virtuel de Fichiers
  •  Système de Fichiers ext2/ext3
  •  Systèmes de Fichiers avec Journalisation
  •  Système de Fichiers ext4/
  •  Laboratoires

I/O de Fichiers

  •  I/O de Fichiers UNIX
  •  Ouverture et Fermeture
  •  Lecture, Écriture et Recherche
  •  I/O Positionnelle et Vectorielle
  •  Bibliothèque I/O Standard
  •  Support de Fichiers Gros (LFS)
  •  Laboratoires

Opérations Avancées sur les Fichiers

  •  Fonctions Stat
  •  Fonctions de Répertoire
  •  inotify
  •  Cartographie en Mémoire
  •  flock() et fcntl()
  •  Création de Fichiers Temporaires
  •  Autres Appels Système
  •  Laboratoires

Processus  I

  •  Qu'est-ce qu'un Processus?
  •  Limites de Processus
  •  Groupes de Processus
  •  Le Système Fichier proc
  •  Méthodes de Communication Interprocessus (IPC)
  •  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()
  •  Sortie
  •  Constructeurs et Destructeurs
  •  Attente
  •  Processus Démons
  •  Laboratoires

Tubes et Fifos

  •  Tubes et Communication Interprocessus
  •  popen() et pclose()
  •  pipe()
  •  Tubes Nommés (FIFOs)
  •  splice(), vmsplice() et tee()
  •  Laboratoires

I/O Asynchrone**

  •  Qu'est-ce que l'I/O Asynchrone?
  •  L'API I/O Asynchrone POSIX
  •  Implémentation sous Linux
  •  Laboratoires

Signaux  I

  •  Qu'est-ce que des Signaux?
  •  Signaux Disponibles
  •  Déploiement de Signaux
  •  Alarmes, Pause et Sommeil
  •  Mise en Place d'un Gestionnaire de Signaux
  •  Ensembles 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

Fils d'Exécution POSIX  I

  •  Multithreading sous Linux
  •  Structure du Programme de Base
  •  Création et Destruction des Fils d'Exécution
  •  Signaux et Threads
  •  Forking vs. Threading
  •  Laboratoires

Fils d'Exécution POSIX  II

  •  Morts en Rixe et Conditions de Course
  •  Opérations de Mutex
  •  Sémaphores
  •  Futexes
  •  Opérations Conditionnelles
  •  Laboratoires

Réseaux et Sockets

  •  Niveaux de Réseaux
  •  Qu'est-ce que des Sockets?
  •  Sockets en Flux
  •  Sockets Datagramme
  •  Sockets Brutes
  •  Ordre des Octets
  •  Laboratoires

Sockets  Adresses et Hôtes

  •  Structures d'Adresse de Sockets
  •  Conversion des Adresses IP
  •  Information sur les Hôtes
  •  Laboratoires

Sockets  Ports et Protocoles

  •  Informations de Ports Service
  •  Informations sur les Protocoles
  •  Laboratoires

Sockets  Clients

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

Sockets  Serveurs

  •  Séquence Serveur de Base
  •  bind()
  •  listen()
  •  accept()
  •  Serveur UNIX
  •  Serveur Internet
  •  Laboratoires

Sockets  Opérations d'Entrée/Sortie

  •  write(), read()
  •  send(), recv()
  •  sendto(), recvfrom()
  •  sendmsg(), recvmsg()
  •  sendfile()
  •  socketpair()
  •  Laboratoires

Sockets  Options

  •  Obtention et Configuration des Options de Sockets
  •  fcntl()
  •  ioctl()
  •  getsockopt() et setsockopt()
  •  Laboratoires

Sockets Netlink**

  •  Qu'est-ce que des Sockets Netlink?
  •  Ouverture d'une Socket Netlink
  •  Messages Netlink
  •  Laboratoires

Sockets  Multiplexage et Serveurs Concurrents

  •  Entrées/Sorties Multiplexées Asynchrones de Sockets
  •  select()
  •  poll()
  •  pselect() et ppoll()
  •  epoll
  •  I/O Générée par Signal et Asynchrone
  •  Serveurs Concurrents
  •  Laboratoires

Communication Interprocessus (IPC)

  •  Méthodes de IPC
  •  IPC POSIX
  •  IPC System V**
  •  Laboratoires

Mémoire Partagée

  •  Qu'est-ce que la Mémoire Partagée?
  •  Mémoire Partagée POSIX
  •  Mémoire Partagée System V**
  •  Laboratoires

Sémaphores

  •  Qu'est-ce qu'un Sémaphore?
  •  Sémaphores POSIX
  •  Sémaphores System V**
  •  Laboratoires

Fils de Messages (Message Queues)

  •  Qu'est-ce que des Files de Messages?
  •  Files de Messages POSIX
  •  Files 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 à venir

Catégories Similaires