In English
[ED3L - Logo] [ED3L - Etude et développement - Linux et Logiciels Libres]

 

Cette page regroupe l'ensemble des formations disponibles, ainsi que les plans de cours indicatifs.

Cette activité a fait l'objet d'une déclaration enregistrée sous le numéro 84 69 16875 69 auprès du préfet de la région Rhône-Alpes le 19 Novembre 2019.

La durée de ces formations est modulable selon vos connaissances initiales, votre maîtrise des prérequis, et le nombre d'exercices pratiques effectués pendant la formation.
Le contenu peut être adapté à vos besoins spécifiques notamment en fonction de vos projets et des applications qui vous intéressent.

Les conditions et les tarifs varient selon les conditions (nombre de stagiaires, matériel disponible/fourni, ...), les demandes de personnalisation du contenu, et la localisation (frais de déplacement). Le tarif "de base" est autour de 750€ / jour pour une formation "intra-entreprise" pour 2 à 4 stagiaires, hors frais de déplacement et d'hébergement éventuels.

 
Systèmes GNU/Linux - Les bases
Durée : Entre 1/2 journée et 1 jour
Prérequis : Aucun

Cette formation est un pré-requis aux formations suivantes :
  • Systèmes GNU/Linux : le Shell
  • Administration des systèmes GNU/Linux
  • Programmation C - Systèmes GNU/Linux
  • Programmation C - Drivers et Noyau Linux
  • Systèmes GNU/Linux en embarqué
Les travaux pratiques seront effectués sur un système Devuan GNU/Linux.

Plan :
  • Introduction
    • Historique des systèmes UNIX
  • Généralités
    • GNU
    • Linux
    • POSIX Compliant
    • Distributions GNU/Linux
    • Les licences
  • Architectures des systèmes GNU/Linux
    • Le noyau Linux au coeur du système
    • Syscalls et LibC
    • Modularité extrème
  • Principes généraux et fichiers
    • Tout est fichier
    • Fichiers spéciaux
    • Systèmes de fichiers
  • Démarrage du système
    • Étapes du démarrage
    • Systèmes d'init
    • Shell ou coquille vide ?
 
Systèmes GNU/Linux - Le Shell
Durée : 2 à 3 jours
Prérequis : Systèmes GNU/Linux - Les bases

Cette formation aborde en détail le shell bash et les commandes les plus courantes utilisées sur les systèmes GNU/Linux (et d'autres).
Les travaux pratiques seront effectués sur un système Devuan GNU/Linux.

Plan :
  • Le shell Bash
    • Shells : historique
    • Bash : introduction et astuces
    • Répertoires
    • Globing, crochets et accolades
    • Variables locales et variables d'environnement
    • Configuration du shell
  • La ligne de commande
    • Plusieurs niveaux de complexité
    • Redirections
    • Protection et substitution
    • Notion de Jobs
  • Tests, structures de contrôle et scripts
    • Principes généraux et tests
    • Les différentes structures de contrôle
    • Fonctions et Scripts
  • Commandes : partie 1
    • Opérations sur les fichiers
    • Processus et signaux
    • Affichage de fichiers
    • Transformation de fichiers
  • Introduction à la gestion de versions
    • Principes
    • Subversion
    • Git
 
Administration des systèmes GNU/Linux
Durée : 2 à 5 jours
Prérequis : Systèmes GNU/Linux - Le Shell

Plus que l'exploration détaillé d'une (ou plusieurs) solution spécifique ("clés en main") dédiée à l'administration de systèmes GNU/Linux, cette formation a pour objectif de vous faire découvrir et maîtriser les principes et les rouages internes du fonctionnement des systèmes GNU/Linux pour vous permettre de prendre en main et de comprendre n'importe quelle solution ou outil d'administration.
Attention, certaines parties du plan, notées "(Hors formation)" ne sont pas détaillées pendant cette formation et seulement évoquées pour référence et approfondissement par les stagiaires après la formation.
Les travaux pratiques seront effectués sur un système Devuan GNU/Linux.

Plan :
  • Bases
    • Qu'est-ce que "Administrer un système GNU/Linux"
    • Noyau Linux
    • Informations système
    • Les utilisateurs, groupes et autres droits
    • Arborescence et Linux FHS
    • Disques et systèmes de fichiers
    • Système d'init
    • Connexion à distance
    • Gestionnaires de paquets
    • Services : bases communes
    • Gestion des processus
    • Réseau : introduction
    • Gestion du temps
  • Sécurité
    • DNS
    • SSH
    • Firewall : iptables et netfilter
    • Clés PGP, GPG, signatures et identification
    • VPN
    • SSL, certificats, HTTPS (Hors formation)
    • Détections d'intrusions (IDS/IPS) et pots de miel
    • SE-Linux et consorts (Hors formation)
  • Stockage, sauvegardes et partage de données
    • RAID et LVM
    • NFS, Samba et partage réseau
    • Synchronisation et sauvegardes
    • Solutions "Cloud"
    • FTP et TFTP
    • Git (Hors formation)
  • Services et réseaux
    • Bases
    • Apache, PHP et consorts
    • Alternatives à apache
    • Bases de données MySQL
    • Alternatives à MySQL (Hors formation)
    • Mails
  • Introduction à l'administration de parcs de machines
    • Gestion des services/parc informatiques (Hors formation)
    • Noyau Linux : installation et mise à jour
    • Installation et duplication manuelle de systèmes
    • Supervision
    • Installation et configuration automatique (Hors formation)
    • Introduction à la virtualisation
 
Programmation C - Bases
Durée : 3 à 5 jours
Prérequis : Algorithmique ou connaissance d'un autre langage de programmation.

Découverte des bases du language C et de ses spécificités.

En cas de besoin un cours "Algorithmique et découverte des langages de programmation peut être créé.

Ce cours est un prérequis pour les cours "Programmation C - Systèmes GNU/Linux" et "Programmation C - Niveau avancé".

Les travaux pratiques seront effectués sur un système Devuan GNU/Linux en utilisant la chaîne de compilation GNU.

Plan :
  • Présentation du langage
    • Historique
    • Le langage C, principes généraux
    • Architecture d'un programme
    • Compilation : principe et bases
    • Syntaxe du C
    • Variables et types de données
    • Mots réservés
  • Premier niveau de complexité
    • Opérations et arithmétique simple
    • Structures de contrôle
    • Fonctions "simples"
    • Portée des variables
  • De mémoire ...
    • Stuctures, Énumérations et Unions
    • Pointeurs et allocation dynamique
    • Tableaux
    • Chaînes de caractères
    • Listes et types de données complexes
  • Un peu plus loin
    • Bibliothèque C
    • Entrées et sorties standard
    • Opérations binaires et arithmétique avancée
    • Fonctions, utilisation avancée
    • Introduction aux processus
    • Interactions avec le système
  • Préprocesseur et Compilation
    • Makefiles
    • Étapes de compilation et édition des liens
    • Compilation conditionnelle et Macros
 
Programmation C - Niveau avancé
Durée : 2 à 3 jours
Prérequis : Programmation C - Bases

Pour aller plus loin et découvrir toutes les subtilités du language C, au delà de l'écriture du code C.

Ce cours et le cours "Programmation C - Systèmes GNU/Linux" sont complémentaires et peuvent être regroupés en un unique cours d'une durée de 4 à 5 jours.
Les travaux pratiques seront effectués sur un système Devuan GNU/Linux en utilisant la chaîne de compilation GNU.

Plan :
  • Rappels et plus
    • Systèmes UNIX et GNU/Linux
    • Le langage C
    • Architecture d'un programme
    • Syntaxe du C
    • Mots clés
    • Extensions GNU GCC
  • Préprocesseur et Compilation
    • Makefiles
    • Étapes de compilation et édition des liens
    • Compilation conditionnelle et Macros
    • Organisation, binaire et mémoire
  • De mémoire ...
    • Stuctures, Énumérations et Unions
    • Pointeurs et allocation dynamique
    • Fonctions
    • Chaînes de caractères
  • Voir plus loin que le programme
    • Bibliothèques
    • Debug et profiling
    • Portabilité
 
Programmation C - Systèmes GNU/Linux
Durée : 2 à 4 jours
Prérequis : Programmation C - Bases

Un programme C a très souvent besoin d'interagir avec le reste du système sur lequel il s'exécute.
La bibliothèque C donne accès aux fonctionnalité internes du noyau Linux via les appels systèmes, permettant au programme d'accéder à des fichiers, au matériel ou d'échanger des informations avec d'autres programmes.

Ce cours et le cours "Programmation C - Niveau avancé" sont complémentaires et peuvent être regroupés en un unique cours d'une durée de 4 à 5 jours.
Les travaux pratiques seront effectués sur un système Devuan GNU/Linux en utilisant la chaîne de compilation GNU.

Plan :
  • Rappels et plus
    • Systèmes UNIX et GNU/Linux
    • Le langage C
    • Architecture d'un programme
    • Syntaxe du C
    • Mots clés
  • Gestion des fichiers
    • Généralités
    • Manipulations "simples"
    • Gestion des droits
    • Utilisation avancée
  • Interaction avec le système
    • Paramètres du programme
    • Processus et threads
    • IPC
    • Signaux
    • Réseau
  • Voir plus loin que le programme
    • Bibliothèques
    • Portabilité
 
Programmation C - Drivers et Noyau Linux
Plan à venir
 
Programmation C - Systèmes embarqués sur micro-contrôleurs
Durée : 3 à 5 jours
Prérequis : Bonne connaissance du language C

L'objectif de cette formation est de présenter l'approche inverse de l'arduino, en partant de zéro, "from scratch", pour découvrir le fonctionnement interne des micro-contrôleurs et de leurs blocs fonctionnels et comprendre les différences fondamentales entre la programmation pour un micro-contrôleur et la programmation d'applications pour un système d'exploitation.
Toujours dans la ligne "logiciels libres", cette formation s'appuie sur les outils GNU et les systèmes GNU/Linux pour le développement.
Les travaux pratiques seront effectués sur micro-contrôleurs LPC1224 (ARM Cortex-M0 de NXP).

Plan :
  • Introduction
    • Qu'est ce qu'un micro-contrôleur (µC)?
    • Cas d'utilisation
  • Spécificités de la programmation pour µC
    • Ressources limitées
    • Jeu d'instructions réduit
    • Mémoire
    • Accès aux registres
    • Interruptions
    • Principes liés aux OS/RTOS (pour µC)
  • Chaîne de compilation et génération de code
    • Principes
    • Éléments constitutifs de la chaîne de (cross-)compilation
    • Création de l'image à envoyer au micro-contrôleur
    • Autres spécificités
  • Rappels de programmation C
    • Rappels généraux
    • Le pré-processeur
    • Mots clés
    • Opérateurs
    • Types et tailles
    • Extensions GNU GCC
    • Organisation en mémoire
    • Inclusion de code assembleur
  • Lien avec le matériel
    • Architecture interne
    • Les modules
    • Les registres
    • Lien avec l'électronique
    • Lien avec le monde physique
    • L'électronique pour l'informaticien
    • Bus de communication
    • Protocoles
  • En pratique
    • Prise en main des cartes micro-contrôleur ARM
    • Micro-contrôleur ARM from scratch
    • Quelques drivers
    • Support MQTT (optionnel)
 
Systèmes GNU/Linux en embarqué
Durée : 3 à 5 jours
Prérequis : Bonne connaissance des systèmes GNU/Linux

Plutôt que de présenter une solution "clé en main" pour créer un système embarqué, cette formation présente les spécificités de la création de systèmes embarqués utilisant le noyau Linux, en présentant les différentes options mais en s'attardant sur la solution la moins commune et pourtant la plus efficace.

Les travaux pratiques seront effectués sur des cartes utilisant un SoC ARM, dont le choix peut varier en fonction des préférences des stagiaires et des disponibilités des différentes solutions.

Plan :
  • Introduction
    • Linux et son écosystème
    • Cas d'utilisation de Linux en embarqué
    • Rappels sur les licences
  • Architecture des systèmes */Linux
    • Empilement de couches
    • Syscalls et LibC
    • Fichiers et systèmes de fichiers
    • Séquence de boot
    • Systèmes d'init
  • Mise en œuvre : particularités Linux embarqué
    • Cross-compilation
    • Bootloader
    • Noyau Linux
    • Système de fichier racine
    • Busybox
    • Solutions "clé en main" ?
    • Distributions GNU/Linux
    • Systèmes autonomes
    • Applicatif métier
    • Outils et remote Debugging
    • Interfaces graphiques ?
  • En pratique
    • Prise en main des cartes
    • Compilation du bootloader et du noyau
    • Mise en Flash ?
    • Création du système de fichier racine
    • Configuration spécifique
  • Option "Linux et systèmes temps réel"
    • Principes des OS et RTOS (Real Time Operating Systems)
    • Les différentes solutions pour Linux
    • Pré-requis et conséquences
    • Alternatives
 
Introduction à l'électronique libre
Plan à venir

 

Ce site n'utilise pas de cookies, désolé pour les gourmands !