Formation Linux
formation linux

> Offre Formations
> Présentation
> Brochure pdf
> Nos formateurs
> Contact
> News
> Les offres Linux
> Linux embarqué
> Linux temps réel
> Linux noyau / drivers
> Programmation système
> Linux pour les managers
> Expertise
> Développement


Formation Linux noyau et drivers

Réf : LINUX_01
Durée : 4 jours


- Objectif de la formation

 Ce stage vise à comprendre la structure générale et aussi détaillée du noyau GNU Linux. De plus, elle aborde les différents types de drivers existant sous ce système (drivers de blocs, de caractères, réseau, pci, usb ...) via des méthodologies de développement spécifique. Enfin, elle aborde les concepts avancés et utilisés dans le noyau régulièrement (DMA, interruptions, I/O, synchronisation, ... ).
La formation sera ponctuée de différents travaux pratiques pour rendre ces concepts plus appliqués.

Public visé : Développeurs Produits souhaitant acquérir une compétence sur le noyau GNU Linux et les méthodes liées à son développement.

Pré-requis : connaissance de la programmation Linux utilisateur et système.

- Plan de la formation

Introduction
• Historique
• Organisation du développement
• L’équipe fondatrice
• Portabilité
• Nouveautés de la version 2.6
• Versioning du noyau
• Caractéristiques principales du noyau
• Problématiques de la licences GPL

Génération d'un noyau Linux
• Outils de compilation (packages nécessaires)
• Récupération des sources officiels (http, ftp, nfs)
• Autre moyen par GIT
• Vérification de l'intégrité des sources
• Application et génération de patchs
• Configuration du noyau
• Compilation
• Description des installations
• Remonter un bug officiel
• Analyse de la phase de boot
• Exemple de bootloader
• Paramètres du noyau
• Extraction et génération d'une image initrd
• Chargement de modules au boot
• Déchargement de modules dynamique

Exécution
• Analyse de la phase de boot
• Exemple de bootloader
• Paramètres du noyau
• Extraction et génération d'une image initrd
• Chargement de modules au boot
• Déchargement de modules dynamique

Architecture du noyau linux
• Vue simplifiée du noyau
• Vue modulaire du noyau
• Hypergraphes du noyau
• Rôles du noyau
• Découpage du noyau
• Le système de fichiers virtuel
• Le gestionnaire de processus
• Le gestionnaire de mémoire
• Le gestionnaire des entrée sorties
• La pile réseau

Méthodologie de développement
• Méthodes, outils et chaîne de développement croisé
• Génération d'une toolchain avec cross-tool ng, eldk
• Mise en place d'un mini-système de développement croisé à base de Makefiles
• Utilisation de scratchbox

Génération d'un rootfs
• Définition d'un système minimal
• Choix de librairies : LibC : glibC, uClibC, NewLibC, dietlibc, bionic (Android)
• Chargement dynamique de pilotes de périphériques
• Gestion des entrée du devfs (/dev)
• Générateurs de rootfs : Buildroot, ptxdist, OpenEmbedded, debian/gentoo embedded

Config utilisateur & réseau
• Gestion de sessions utilisateurs
• Installation des services réseaux : Inetd, Rsh, telnet, Nfs
• Connection réseau : remote shell rsh, telnet, …

Debug & optimisation
• Conseils pour les développements ayant un usage embarqué
• Mise au point par port série, par réseau, par sonde JTAG
• Utilisation de la console série
• Cross-debugging
• Profiling
• Couverture de code
• Mesure de la consommation de ressources
• Benchmark

Environnement graphique
• nanoX (Tiny-X)
• XFree
• QtEmbedded/QTopia
• MicroWindows
• Framebuffer/directfb/fusion
• GTK/Embedded
• Serveur web embarqué

Introduction aux extensions Temps réel embarquées
• Temps réel souple: interface POSIX, extension API PThread , NPTL, ….
• Temps réel dur: Patches low-latency, préemptifs, Temps Réel RTAI/RTLinux

Travaux Pratiques :
• Génération d'un toolchain
• Génération d'un rootfs
• Génération d'un firmware et flashage
• Mise en place d'un bootloader
• Debug & profiling sur une plateforme embarqué