La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

A la fin vous saurez définir: –- définir ce qu'est un module, –- décrire le fonctionnement modulaire du système, –- configurer un système avec des modules.

Présentations similaires


Présentation au sujet: "A la fin vous saurez définir: –- définir ce qu'est un module, –- décrire le fonctionnement modulaire du système, –- configurer un système avec des modules."— Transcription de la présentation:

1 A la fin vous saurez définir: –- définir ce qu'est un module, –- décrire le fonctionnement modulaire du système, –- configurer un système avec des modules. Les modules

2 Qu'est ce qu'un module ? Mode de fonctionnement des modules, Utiliser les modules, Installer un module, Fichiers et commandes de configuration. Plan

3 Linux Gazette N° 29 et 37 Echo de Linux Mini-howto La pages du manuel La documentation du Kernel Sources de documentations

4 Un module est une extension du système d'exploitation. Permet l'évolution d'une configuration, sans avoir à recompiler le noyau. Exemple: Vous installez une nouvelle chaîne SCSI pour supporter une unité de sauvegarde. Vous pouvez utiliser les modules pour prendre en charge les nouveaux équipements, sans avoir besoin de recompiler le noyau. Qu'est ce qu'un module ?

5 Avantages: Les modules simplifient la mise en œoeuvre d'extensions, (configuration modulaire), Réduction la taille du noyau car les extensions ne sont pas compilées directement avec (noyau monolithique), Ils sont chargés par le système en fonction de ses besoins, Utilisation plus rationnelle de la mémoire. Pourquoi des modules ?

6 Programmes utilisateurs Mode Noyau Modules M0.M1...…Mm Mode de fonctionnement des modules Les modules sont utilisés par le noyau pour répondre aux besoins des programmes systèmes ou utilisateurs, ils sont chargé dynamiquement par le système en fonction d'un besoin.

7 Mode Noyau NfsSmbfsAudio NFSSon Lire/Ecrire SMB insmod pour charger un module - rmmod pour décharger un module Exemple Une application passe une requête, le système charge le module approprié pour répondre à la requête.

8 Http://www.pi.se/blox/modules/index.html Attention au numéro de version: NomModule.x.y.z Voir dans /usr/lib/2.0.x/ Exemple: /usr/lib/2.0.32/fs/nfs pour la version 2 du noyau Où touver des modules ?

9 Manuellement en mode commande Automatique en fonction d'un besoin système grâce à un daemon. (kerneld, Kmod) Deux solutions possibles Des exemples sont étudiés plus loin. Chargement des modules Attention: La présentation s'appuie sur Kerneld. Depuis la version 2.2 du noyau ce daemon est remplacé par Kmod.

10 Voici ce qui se passe: 1 Le noyau remarque qu'une caractéristique demandée n'est pas dans la partie résidente du noyau. 2 Le noyau envoi un message à kerneld, contenant une description symbolique de la caractéristique demandée. 3 Le daemon kerneld demande ensuite à modprobe de charger le module qui convient à cette description symbolique. 4 modprobe regarde dans la table de traduction interne "alias" pour voir s'il y a quelque chose qui correspond. Cette table peut être reconfigurée et étendue en ayant des lignes "alias" dans "/etc/conf.modules". 5 Kerneld demande à insmod d'insérer le(s) module(s) que modprobe a considéré comme nécessaire(s) pour le noyau. Chaque module sera configuré selon les lignes "options" dans "/etc/conf.modules". 6 modprobe sort et kerneld demande au noyau si la requête a réussie (ou échouée...) 7 Le noyau utilise ensuite la caractéristique nouvellement installée exactement comme si elle avait été configurée dans le noyau comme partie "résidente". 8 Lorsque le module installé automatiquement n'est plus utilisé pendant une période d'une minute, il est automatiquement retiré du noyau. Ceci conduit le noyau à utiliser la quantité minimale de mémoire et ce à tout instant, la rendant ainsi disponible pour les autres processus actifs. Chargement d'un module avec kerneld

11 Chargement d'un module manuellement /sbin/insmod nfs /* charger le module nfs */ lsmod /* afficher les modules chargés */ Voici le résultat: Module Pages Used by nfs 12 4 tulip 5 1 (autoclean) /sbin/rmmod/* décharger les modules */ L 'opération peut vite devenir fastidieuse. Il faut automatiser avec des scripts, mais il s'ensuit une maintenance.

12 Compilez le noyau avec les fonctions qui sont toujours utilisées (accès disques, réseau, ppp…) Utilisez les modules pour les fonctions utilisées ponctuellement, (nfs, smb, vfat, ntfs...) Utilisez les modules pour les pilotes de périphériques. (cela permet de mettre à jour le pilote ou de changer de périphérique sans recompiler le noyau) Stratégie d'utilisation des modules ?

13 Le support du système de fichiers (SGF) de votre partition racine (ext2fs) Le support des disques durs (IDE et SCSI) et des SGF utilisés (ext2fs) Le support de réseau (CONFIG_NET), Les options TCP/IP (CONFIG_NET) mais sans inclure les gestionnaires (pilotes de cartes), Les options de base de votre système... Ne pas utiliser les modules avec:

14 Les gestionnaires SCSI de haut niveau: disque, bande, cdrom, périphériques génériques, Les pilotes de cartes réseau, Les pilotes de CD ROM, Les services les moins utilisés ou volumineux... Utiliser les modules avec :

15 1 - make config 2 - intégrer la gestion des modules (options) 3 - make dep; make clean 4 - make zImage (création de l'image) 5 - make modules (compilation des modules) 6 - make modules_install (installation des modules) 7 - Configurer les dépendances (certains modules doivent être chargés avant les autres.) Compilation du noyau

16 Compiler le noyau avec le support des modules.

17 Le noyau doit supporter la gestion des modules. … Enable loadable config module support (CONFIG_MODULES) [y/n/?] Set version information on all symbols for modules (CONFIG_MODVERSIONS) N/y/?] Kernel daemon support (e.g.autoload of modules) (CONFIG_KERNEL) [Y/n/?]... Commentaires: Ligne 1 - active la prise en charge des modules par le noyau Ligne 2 - à N, les modules devront être recompilés à chaque mise à jour du noyau. Les modules compilés pour un noyau 2.0.n ne fonctionneront pas avec un noyau 2.0.n+1, Ligne 3 - cette option active le chargement dynamique des modules. Il faudra activer IPC système V pour la communication inter processus... Compilation du noyau

18 1 - toujours rechercher une taille minimum pour le noyau, 2 - compresser si besoin est le noyau compilé, 3 - doit pouvoir tenir sur une disquette. /* Pour obtenir une image compressée du noyau, voir le guide du RooTard */

19 Mode Noyau nfs.o Programmes utilisateurs kerneld Autres daemons Canal de communication inter processus IPC Modprob charge et décharge le module Kerneld permet de charger ou décharger les modules à la demande. Les modules sont déchargés après un temps d ’inactivité. Ce temps est configurable avec le paramètre « delay ». Man kerneld. Kerneld

20 Compilation du noyau Utiliser des options modulaires

21 Une fois votre noyau compilé, vous devez compiler les modules avec la commande : make modules Cette commande compilera tous les modules et mettra à jour le répertoire linux/modules. Vous trouverez dns ce répertoire, les liens symboliques pointant sur les divers fichiers objet. Compilation des modules

22 Maintenant, après que vous ayez créé tous vos modules, vous devez les installer avec la commande : make modules_install Ceci copiera tous les nouveaux modules vers des sous-répertoires dans "/lib/modules/version_de_noyau/", ou "version_de_noyau" est la valeur actuelle du noyau. (voir commande uname -r ou uname -- help). Aussitôt que vous avez redémarré le nouveau noyau, vous pouvez installer et retirer des modules à la demande avec les utilitaires: "insmod" et "rmmod". Installation des modules

23 La création des dépendances dépend des distributions de Linux: –/etc/rc.d/rc.modules –/etc/rc.d/init.d/modules.init –/etc/rc.d/rc.sysinit (Redhat) On utilise la commande « depmod -a ». Voir les instructions dans le mini-Howto. Création des dépendances

24 insmod (charger un module) lsmod ( afficher les modules chargés) rmmod (décharger un module) Les commandes

25 insmod: Insère un module dans le noyau en cours d'exécution. Vous indiquez comme paramètres, le nom du module à charger, et le chemin d'accès complet au module. Par exemple, pour installer le gestionnaire de fichiers msdos, vous devez taper la commande suivante: –insmod /lib/modules/1.x.xx/fs/msdos.o Les commandes

26 rmmod: Quand vous avez fini d'utiliser un module, vous pouvez le décharger. Vous devrez passer à cette commande comme paramètre, le nom du module, par exemple pour retirer le gestionnaire msdos tapez la commande: –rmmod msdos.o Les commandes

27 lsmod: Vous permet d'afficher la liste des modules en cours d'utilisation. Vous aurez les noms des modules, et le nombre de pages mémoires utilisées pour chaque module. Les commandes

28 modprob est une extension de insmod, il permet de s ’affranchir de la version du noyau ou des dépendances, on utilise la commande « /sbin/modprobe module ». Les commandes ModProb

29 Pour réussir à utiliser modprobe, placez la commande suivante dans votre script /etc/rc.d/rc.S. /sbin/depmod -a Cette commande calcule les dépendances entre les différents modules, ensuite, si vous tapez par exemple : /sbin/modprobe umsdos vous chargerez automatiquement à la fois les modules msdos et umsdos, puisque umsdos ne tourne que ci le module msdos est actif. Les modulesLes commandes Depmod

30 Exemple de fichier /etc/modules.conf alias scsi_hostadapter aha1542 # Votre adaptateur SCSI alias eth0 3c509 # Votre adaptateur réseau # Vous pouvez avoir besoin d'une ligne d'options" pour certains # adaptateurs de réseaux options 3c509 io=0x300 irq=10 # Vous pouvez avoir besoin d'une ligne d'options" # pour d'autres modules options cdu31a cdu31a_port=0x1f88 sony_pas_init=1 Vous devez ajouter aussi ces lignes : alias net-pf-3 off # aucun module ax25 n'est (encore) disponible alias net-pf-4 off # si vous n'utilisez pas le module ipx alias net-pf-5 off # si vous n'utilisez pas le module appletalk Ce fichier contient les chemins où se trouvent les modules, ainsi que leurs alias. Les fichiers - /etc/modules.conf

31 Ce fichier donne la liste des modules chargés more modules/* affichage des modules chargés */ tulip51 (autoclean) /sbin/insmod minix/* chargement du support du SGF minix */ more modules/* le module minix est chargé */ minix60 tulip51 (autoclean) /sbin/rmmod minix/* chargement du support du SGF minix */ more modules/* c ’est fait */ tulip51 (autoclean) Les modulesLes fichiers - /proc/modules

32 Vous avez vu: –ce qu'est un module, –le fonctionnement modulaire du système, –comment configurer l'utilisation des modules. Conclusion


Télécharger ppt "A la fin vous saurez définir: –- définir ce qu'est un module, –- décrire le fonctionnement modulaire du système, –- configurer un système avec des modules."

Présentations similaires


Annonces Google