Maison  >  Article  >  Tutoriel système  >  Explorez les mystères des modules du noyau Linux

Explorez les mystères des modules du noyau Linux

WBOY
WBOYavant
2024-02-14 17:10:17714parcourir

Dans le système d'exploitation Linux, le noyau est la partie centrale qui contrôle l'interaction entre le matériel informatique et les logiciels. Le module noyau est un concept important du noyau. Il peut être chargé dynamiquement dans le noyau au moment de l'exécution, étendant ainsi les fonctionnalités du noyau. Dans cet article, nous examinerons en profondeur le fonctionnement et la composition des modules du noyau Linux, et expliquerons comment écrire les vôtres.

Conception modulaire du noyau Linux

1. Conception du noyau Linux : noyau unique, modulaire (chargement et déchargement dynamiques)

(1) Linux : conception à noyau unique, mais s'appuie pleinement sur les avantages de la conception du système à micro-noyau et introduit un mécanisme modulaire dans le noyau ; (2) Composants du noyau :
noyau : noyau du noyau, généralement au format bzImage, généralement situé dans le répertoire /boot, nommé vmlinuz-VERSION-release ; Ce fichier ne sera plus utilisé après le démarrage du système, car il a été chargé en mémoire et placé sous /boot pour une gestion facile
Objet noyau : module noyau, généralement placé dans /lib/modules/VERSION-release/
Le module du noyau et la version du noyau doivent correspondre strictement ;

2. Module noyau : mode de sélection de compilation

[ ] : N, ne compile pas cette partie [M] : Le module, compilé de manière modulaire, peut être chargé temporairement, occupe de l'espace disque, n'occupe pas l'espace du noyau

[*] : Y, compilé dans le noyau du noyau, peut être appelé directement



3.ramdisk : Fichier auxiliaire, pas nécessaire, cela dépend si le noyau peut piloter directement le périphérique où se trouve rootfs

ramdisk : Une version simplifiée du système de fichiers racine. Les pilotes disponibles sont les suivants : Pilote de périphérique cible, tel que le pilote de périphérique SCSI ; Pilote de périphérique logique, tel que le pilote de périphérique LVM ;

Système de fichiers, tel que le système de fichiers xfs ;


Commandes d'acquisition et de gestion des informations du module noyau

1.ldd : Imprimer les fichiers de bibliothèque dont dépendent les applications binaires - imprimer les dépendances de la bibliothèque partagée

Format : ldd [OPTION]… FICHIER…

Affichage : 1) Nom du fichier de bibliothèque dépendant => Chemin du fichier de bibliothèque dépendant (correspondant au point de mappage du lien symbolique de chargement de la mémoire) 2) Entrée à toute la bibliothèque d'appels système

linux-vdso.so.1 => (0x00007fff293fe000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0228073000)



2.uname : acquisition d'informations sur le noyau - informations sur le système d'impression

Explorez les mystères des modules du noyau LinuxFormat : uname [OPTION]…

uname -a : Afficher toutes les informations sur le noyau uname -v : Le numéro de version compilé du noyau uname -r : numéro de version du noyau

uname -n : nom d'hôte





3.lsmod : Liste des modules du noyau
Explorez les mystères des modules du noyau Linux

Le noyau affiché provient de /proc/modules

Nom du module, taille, nombre de fois cité et par quoi il est cité


Commande 4.modinfo : Afficher les informations détaillées du module spécifié
Explorez les mystères des modules du noyau Linux

Format : modinfo [champ -F] [-k noyau] [nom du module|nom du fichier…] -k kernel : Pour interroger les informations du module sur un autre noyau lorsque plusieurs noyaux coexistent

Champ -F : Afficher uniquement les informations sur le champ spécifié  ; -n : Afficher le chemin du fichier ; Affichez les informations pertinentes en lisant les données originales des fichiers /lib/modules/#######/* files


Contenu affiché : nom du fichier, protocole, description, auteur, alias, numéro de version applicable à RHEL, modules dépendants, unité de signature, signature, algorithme de chiffrement


Explorez les mystères des modules du noyau Linux
5.modprobe : réalise le chargement et le déchargement des modules, et monte également les modules dépendants
Explorez les mystères des modules du noyau Linux

Format : modprobe [-r] nom_module

Chargement dynamique des modules : modprobe module_name Désinstallation dynamique : modprobe -r module_name Remarque : Ne désinstallez pas les modules chargés par défaut




6.depmod : - Générer des modules.dep et des fichiers de carte
Explorez les mystères des modules du noyau Linux

Outil pour générer des fichiers de dépendances de modules du noyau et des fichiers de mappage d'informations système ;

7.insmod, rmmod : chargement et déchargement des modules, les dépendances des modules ne peuvent pas être résolues automatiquement

insmod [nom du fichier] [options du module…] filename : le chemin du fichier du module ; rmmod [nom_module]

gestion des fichiers du disque virtuel


1.mkinitrd (CentOS 5) : Remake du fichier ramdisk pour le noyau actuellement utilisé

# mkinitrd [OPTION…] [] –with= : En plus des modules par défaut, les modules qui doivent être chargés dans initramfs

; –preload= : Les modules fournis par initramfs nécessitent des modules préchargés

; Exemple : ~]# mkinitrd /boot/initramfs-(uname -r)

2.dracut(CentOS 6/7, compatible avec 5) : – outil de bas niveau pour générer une image initramfs



#dracut [OPTION…] [ []] Exemple : ~]# dracut /boot/initramfs-(uname -r)

Pseudo-système de fichiers de sortie des informations du noyau

1./proc : L'interface de sortie pour l'état du noyau et les informations statistiques fournit également une interface de configuration, /proc/sys

 ;

(1) paramètres :
Lecture seule : sortie d'informations ; par exemple /proc/#/, informations relatives au processus
Explorez les mystères des modules du noyau Linux
Inscriptible : l'utilisateur peut spécifier une "nouvelle valeur" pour configurer une certaine fonction ou fonctionnalité du noyau /proc/sys/
 ; Format : /proc/sys : net/ipv4/ip_forward est équivalent à net.ipv4.ip_forward
Explorez les mystères des modules du noyau Linux
(2) Comment modifier les paramètres
1) commande sysctl
Spécialement utilisé pour afficher ou définir la valeur des paramètres dans le répertoire /proc/sys sysctl [options] [variable[=value]] Vue : #sysctl -a ; variable #sysctl
Modifiez sa valeur : # sysctl -w variable=value
2) Commandes du système de fichiers (cat, echo)
Vérifiez : # cat /proc/sys/PATH/TO/SOME_KERNEL_FILE
Paramètre : # echo « VALUE » > /proc/sys/PATH/TO/SOME_KERNEL_FILE
3) Fichiers de configuration : /etc/sysctl.conf, /etc/sysctl.d/
.conf
Méthode immédiatement efficace : sysctl -p [/PATH/TO/CONFIG_FILE]

(3) Paramètres importants du noyau
net.ipv4.ip_forward : transfert de base ; vm.drop_caches :
kernel.hostname : nom d'hôte ; net.ipv4.icmp_echo_ignore_all : Ignorer toutes les opérations ping ;

Répertoire 2./sys : introduit après la version Kernel 2.6

Système de fichiers sys : génère les informations d'attribut pertinentes de chaque périphérique matériel reconnu par le noyau, et possède également les paramètres réglables du noyau pour les caractéristiques matérielles  ; La modification de ces paramètres peut personnaliser les caractéristiques de fonctionnement du périphérique matériel


 ; udev : créez des fichiers de périphérique pour chaque périphérique matériel à la demande en lisant les informations sur le périphérique matériel dans le répertoire /sys ; udev est un programme en espace utilisateur ; des outils spéciaux : devadmin, hotplug ; Lorsque udev crée un fichier de périphérique pour un périphérique, il lira son fichier de règles prédéfinies
Généralement dans le répertoire /etc/udev/rules.d/ et le répertoire /usr/lib/udev/rules.d/ Explorez les mystères des modules du noyau Linux ;
Pour résumer, le module du noyau est une partie très importante du noyau Linux, qui peut fournir au noyau de riches fonctions d'extension et aider les utilisateurs à mieux s'adapter à des scénarios matériels ou d'application spécifiques. Lorsque vous utilisez des modules du noyau, vous devez faire attention à ne pas nuire à la stabilité et à la sécurité du noyau. Il est recommandé d'utiliser et d'écrire des modules du noyau uniquement lorsque cela est nécessaire. Je pense que le contenu de cet article peut aider les lecteurs à mieux comprendre et appliquer les modules du noyau Linux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer