OpenEdge-labs trainings
  • OpenEdge-labs trainings
  • Thématiques
    • Cloud
      • Administration Openstack
      • Administration Openstack-avancé
      • Développement sur OpenStack
      • Openshift:Déploiement, administration, sécurisation et monitoring
    • Virtualisation
      • XCP-NG
      • Open Nebula
    • Systèmes
      • Monitoring-observabilite
        • Outils
          • monitoring
            • Prometheus
            • Victoria Metrics
            • Nagios XI pour Administrateurs
          • Observabilite
            • Opentelemetry-initiation
            • OpenTelemetry: approfondissement
            • Jaeger
            • eBPF-observabilité
            • LGTM stack
            • Grafana-Initiation
            • Grafana-approfondissement
            • Loki-initiation
            • Loki-approfondissement
        • Méthodologies
          • Stratégie d'incident management: monitoring à l'autoremédiation
          • Datavisualisation avec Grafana
          • Continuous Profiling
          • Auto-remédiation – Automatisation des Processus de Remédiation
      • Linux
        • Parcours développeur(TD)
          • Développement de Scripts et Automatisation sur Linux/Unix
          • Programmation Système Avancée sur Unix/Linux
          • Sécurité des Applications sur Unix/Linux
          • Développement et le Déploiement d'Applications Cloud-Native sur Linux
          • Linux, Drivers et Programmation Noyau
        • Parcours administrateur
          • Optimisation et le Tuning des Performances sur Linux/Unix
          • Sécurité avancée sur Linux
        • Parcours architecte(TD)
          • Conception d'Architectures Résilientes sur Linux/Unix
          • Conception d'Architectures Cloud et Hybrid Cloud sur Linux/Unix
    • Stockage
      • Etat de l’art-Systèmes de stockage open source
      • Migration vers un système de stockage open source
      • Glusterfs
      • Ceph
      • Sécurisation d'un système de stockage Open Source
    • Data
      • Opensearch
      • Opensearch-administration avancée
      • Dataviz open source
      • Kafka
      • Cassandra
    • Cloud native
      • Observabilité Avancée avec OpenTelemetry et Jaeger
      • Chaos Engineering et Résilience des Applications
      • Polyglot Persistence dans les Applications Cloud Native
      • Développement d'Architectures Serverless Open Source
      • Cloud Native Security – Zero Trust et Au-delà
      • Formation Avancée sur le Développement d'Architectures Serverless Open Source
    • IOT
      • Introduction à l'IoT
      • Analytique et Big Data pour l'IoT avec des Outils Open Source
      • Blockchain pour l'IoT avec des Technologies Open Source
      • Développement de Solutions IoT avec MicroPython et ESP8266/ESP32
      • Edge Computing avec Open Source IoT
      • Sécurité IoT avec des Outils Open Source
    • Devops
      • GitLab - Administration, CI/CD, et Gestion de Projets
      • Ingénierie de la Performance et la Planification de la Capacité
    • IA
      • Initiation à l'Intelligence Artificielle pour les Dirigeants
      • Transformation Digitale et Intelligence Artificielle (IA) pour les DSI
      • Gestion des Risques et Sécurité en IA
      • Applications Stratégiques de l'IA pour les Dirigeants
      • Intelligence Artificielle et Éthique pour les Décideurs
      • IA et Data Science pour les DSI
      • Analyse des Coûts et ROI des Projets IA
      • Stratégies d'Adoption de l'IA Open Source pour les DSI
      • Développement et Déploiement d'Applications IA Open Source
    • Edge computing
      • Développement de Solutions Edge Computing avec Open Source
      • Edge Computing pour l'IoT avec Open Source
      • Edge Computing et Conteneurisation avec Docker et Kubernetes Open Source
    • Industrie4.0
      • Parcours modulaire
      • Introduction à l'Industrie 4.0 et Sécurité Numérique
      • Architecte en Solutions IIoT et Cybersécurité Industrielle
      • Intelligence Artificielle, Cybersécurité et Digitalisation des Processus
      • Jumeau Numérique, Simulation et Sécurité
    • AIOPS(Disponible Juin 2025)
    • Cybersecurite
      • Cybersecurite industrielle
        • Parcours modulaire Cybersécurité industrielle
      • Cybersecurite-gouvernance
  • PARCOURS spécialisés de formations
    • Incident Management 360° : Stratégie, Résilience et Optimisation
    • Spécialisation Industrie 4.0
    • Cybersecurite
    • Expert en Virtualisation Open Source
Powered by GitBook
On this page
  1. Thématiques
  2. Systèmes
  3. Linux
  4. Parcours développeur(TD)

Programmation Système Avancée sur Unix/Linux

Public

Prérequis

Durée de la Formation

  • Total : 5 jours (40 heures)

Objectifs de la Formation

  • Comprendre les concepts avancés des systèmes Unix/Linux.

  • Maîtriser la programmation système en C.

  • Manipuler les appels systèmes et les processus.

  • Gérer la mémoire et les entrées/sorties.

  • Implémenter la communication inter-processus (IPC).

Jour 1 : Introduction à la Programmation Système

Matin : Concepts Avancés de Unix/Linux

  • Introduction à la programmation système

  • Structure et fonctionnement du noyau Unix/Linux

  • Gestion des processus et des threads

  • Espaces utilisateur et noyau

Après-midi : Développement en C pour Unix/Linux

  • Introduction à la programmation en C sur Unix/Linux

  • Compilation et débogage avec gcc et gdb

  • Utilisation des bibliothèques standard (stdio.h, stdlib.h, etc.)

  • Appels systèmes de base (open, read, write, close)

Lab 1 : Premier Programme Système

  • Écrire un programme en C pour lire et afficher le contenu d'un fichier.

  • Utilisation de gcc pour compiler et gdb pour déboguer.

Jour 2 : Gestion des Processus et des Threads

Matin : Gestion des Processus

  • Création et gestion des processus avec fork, exec, wait

  • Terminaison des processus et gestion des signaux (kill, signal, sigaction)

  • Priorités et planification des processus

Après-midi : Programmation avec des Threads

  • Introduction aux threads avec la bibliothèque pthreads

  • Création, synchronisation et destruction de threads

  • Verrous, mutex et conditions

Lab 2 : Manipulation des Processus et des Threads

  • Écrire un programme en C utilisant fork et exec pour lancer un processus enfant.

  • Écrire un programme multi-thread en utilisant pthreads.

Jour 3 : Gestion de la Mémoire

Matin : Allocation Dynamique de Mémoire

  • Allocation dynamique avec malloc, calloc, realloc, free

  • Gestion de la mémoire et détection de fuites

Après-midi : Mémoire Partagée

  • Introduction à la mémoire partagée

  • Utilisation des segments de mémoire partagée avec shmget, shmat, shmdt, shmctl

Lab 3 : Gestion de la Mémoire

  • Écrire un programme en C utilisant malloc et free pour gérer une liste chaînée.

  • Implémenter un programme utilisant la mémoire partagée pour échanger des données entre deux processus.

Jour 4 : Entrées/Sorties et Communication Inter-Processus (IPC)

Matin : Entrées/Sorties Avancées

  • Manipulation des fichiers avec les appels systèmes (lseek, fcntl)

  • Gestion des entrées/sorties asynchrones

Après-midi : Communication Inter-Processus (IPC)

  • Pipes et FIFOs

  • Sockets : introduction et programmation réseau de base

  • Message Queues et Sémaphores

Lab 4 : Entrées/Sorties et IPC

  • Écrire un programme utilisant des pipes pour la communication entre processus parent et enfant.

  • Implémenter une communication simple client-serveur avec des sockets.

Jour 5 : Projet Final et Mise en Pratique

Matin : Conception et Planification du Projet Final

  • Présentation du projet final : implémenter un mini-système de gestion de tâches

  • Discussion et planification des étapes du projet

Après-midi : Développement et Présentation du Projet Final

  • Développement, test et débogage du projet

  • Préparation et présentation du projet aux formateurs et aux autres participants

Lab 5 : Projet Final

  • Création d'un mini-système de gestion de tâches utilisant les concepts appris (processus, threads, IPC, mémoire partagée, etc.)

  • Documenter et présenter le code et les concepts utilisés

Ressources et Supports Pédagogiques

  • Accès à un environnement de développement Unix/Linux (VM ou Docker)

  • Documentation et tutoriels en ligne

  • Support et assistance pendant les labos

Évaluation

  • Évaluations continues à travers les labos pratiques

  • Évaluation finale basée sur le projet réalisé

Conclusion

Cette formation permet aux participants de maîtriser la programmation système avancée sur Unix/Linux, en combinant théorie et pratique à travers des exercices, des labos et un projet final complet.

PreviousDéveloppement de Scripts et Automatisation sur Linux/UnixNextSécurité des Applications sur Unix/Linux

Last updated 9 months ago