Gestion des noyaux et de l'initialisation du système sur Oracle Linux

Découvrez les différents noyaux distribués avec Oracle Linux, comment les gérer et comment contrôler les processus d'initialisation.

A propos de l'initialisation du système

Comprendre le processus d'initialisation d'Oracle Linux peut vous aider à résoudre les problèmes lors de l'initialisation d'un système.

Le processus d'initialisation implique plusieurs fichiers, et les erreurs dans ces fichiers sont la cause habituelle des problèmes d'initialisation. Les processus d'initialisation et la configuration diffèrent selon que le matériel utilise le microprogramme UEFI ou Legacy BIOS pour gérer l'initialisation du système.

Une installation d'Oracle Linux inclut le programme d'initialisation GRUB 2, qui est installé dans un emplacement du disque dur accessible par le microprogramme BIOS ou UEFI. Le programme d'initialisation GRUB 2 permet de charger un noyau et les initramfs en mémoire. Une fois le noyau entièrement initialisé, il démarre le processus systemd qui gère le reste du système d'exploitation.

A propos de l'initialisation UEFI

Sur un système UEFI exécutant la version Oracle Linux, le processus d'initialisation du système utilise la séquence suivante :

  1. Lorsque le système est sous tension, le système effectue un autotest de mise sous tension (POST) pour détecter et vérifier les principaux composants matériels du système, tels que la CPU et la mémoire. Le microprogramme UEFI est ensuite initialisé.

  2. Le microprogramme UEFI détecte tout autre matériel, tel que les composants périphériques, y compris les périphériques réseau et le stockage. Le microprogramme UEFI contient son propre gestionnaire d'initialisation, qui peut interagir directement avec les chargeurs d'initialisation sur différents périphériques de stockage. Le gestionnaire d'initialisation stocke un ensemble de variables, y compris la priorité des différents périphériques d'initialisation et des programmes d'initialisation détectés.

    UEFI recherche une partition GPT formatée FAT32 avec un identificateur unique global (GUID) spécifique qui l'identifie en tant que partition système EFI (ESP). Cette partition contient des applications EFI telles que des chargeurs d'initialisation et d'autres fichiers de configuration.

    Lorsque plusieurs périphériques d'initialisation sont présents, le gestionnaire d'initialisation UEFI utilise l'ESP approprié en fonction de l'ordre défini dans le gestionnaire d'initialisation. Avec l'outil efibootmgr, vous pouvez définir un ordre différent si vous ne souhaitez pas utiliser la définition par défaut.

  3. Le gestionnaire d'initialisation UEFI charge le programme d'initialisation par défaut. Oracle Linux utilise un processus d'initialisation en 2 étapes pour gérer le processus de validation de l'initialisation sécurisée. Le processus en 2 étapes comprend un programme d'initialisation de première étape appelé programme d'initialisation shim sur l'ESP et le programme d'initialisation de deuxième étape appelé GRUB 2. Si l'initialisation sécurisée est désactivée, le programme d'initialisation shim charge directement le programme d'initialisation GRUB 2 sur l'ESP pour poursuivre le processus d'initialisation. Les fichiers du programme d'initialisation sont nommés en fonction de l'architecture du système. Par exemple, le programme d'initialisation shim est nommé shimx64.efi sur les systèmes x86_64 et shimaa64.efi sur les systèmes aarch64.

    Dans le cas contraire, si l'initialisation sécurisée est activée, le programme d'initialisation shim est validé par rapport aux clés stockées dans la base de données de clés d'initialisation sécurisée UEFI et, à son tour, vérifie la signature du programme d'initialisation GRUB 2 par rapport aux certificats stockés dans la base de données de clés d'initialisation sécurisée UEFI ou la base de données de clés de propriétaire de machine (MOK). Si la signature GRUB 2 est valide, le programme d'initialisation GRUB 2 s'exécute et, à son tour, valide le noyau qu'il est configuré pour charger.

    Pour plus d'informations sur l'initialisation sécurisée, reportez-vous à Oracle Linux : Working With UEFI Secure Boot.

  4. Le programme d'initialisation charge le fichier d'image du noyau vmlinuz et le fichier d'image initramfs en mémoire. Le noyau extrait le contenu de l'image initramfs dans un système de fichiers temporaire basé sur la mémoire (tmpfs). Le fichier initramfs contient les pilotes et utilitaires essentiels nécessaires à l'initialisation.

  5. Le programme d'initialisation transmet le contrôle au noyau et fournit des pointeurs vers initramfs et tout autre paramètre d'initialisation. Le noyau poursuit l'initialisation du système, la détection du matériel, le chargement des pilotes nécessaires et le montage du système de fichiers root.

  6. Le noyau recherche le processus init dans initramfs et démarre le processus défini avec un ID de processus de 1 (PID 1). Sur Oracle Linux, le processus init par défaut est configuré en tant que systemd. Pour plus d'informations, reportez-vous à Administration de SELinux dans Oracle Linux.

  7. systemd exécute tous les autres processus définis pour lui.

    Remarque

    Indiquez toute autre action à traiter au cours du processus d'initialisation en définissant des unités systemd. Cette méthode est préférable à l'utilisation du fichier /etc/rc.local.

A propos de l'initialisation basée sur le BIOS

Sur un système BIOS exécutant la version Oracle Linux, le processus d'initialisation est le suivant :

  1. Le BIOS du système effectue un autotest de mise sous tension (POST), puis détecte et initialise tous les périphériques et le disque dur.

  2. Le BIOS lit l'enregistrement d'initialisation maître (MBR) en mémoire à partir du périphérique d'initialisation. Le MBR stocke des informations sur l'organisation des partitions sur ce périphérique, la table de partitions et la signature d'initialisation utilisée pour la détection des erreurs. Le MBR inclut également le pointeur vers le programme de programme d'initialisation (GRUB 2), généralement sur une partition /boot dédiée sur le même périphérique de disque.

  3. Le programme d'initialisation charge le fichier d'image du noyau vmlinuz et le fichier d'image initramfs en mémoire. Le noyau extrait ensuite le contenu de initramfs dans un système de fichiers temporaire basé sur la mémoire (tmpfs).

  4. Le noyau charge les modules de pilote à partir du système de fichiers initramfs qui sont nécessaires pour accéder au système de fichiers root.

  5. Le noyau recherche le processus init dans initramfs et démarre le processus défini avec un ID de processus de 1 (PID 1). Sur Oracle Linux, le processus init par défaut est configuré en tant que systemd. Pour plus d'informations, reportez-vous à Administration de SELinux dans Oracle Linux.

  6. systemd exécute tous les autres processus définis pour lui.
    Remarque

    Indiquez toute autre action à traiter au cours du processus d'initialisation en définissant des unités systemd. Cette méthode est préférable à l'utilisation du fichier /etc/rc.local.

A propos du programme d'amorçage GRUB 2

Oracle Linux inclut la version 2 du GRand Unified Bootloader (GRUB 2), qui charge le système d'exploitation sur un système au moment de l'initialisation.

En plus d'Oracle Linux, GRUB 2 peut charger et charger en chaîne de nombreux systèmes d'exploitation propriétaires. Le GRUB 2 comprend les formats de nombreux systèmes de fichiers et fichiers exécutables du noyau. Le GRUB 2 requiert le chemin complet vers le noyau et initramfs par rapport au périphérique d'initialisation ou root. Vous pouvez configurer ces informations à l'aide du menu GRUB 2 ou en les saisissant sur la ligne de commande GRUB 2.

La commande grub2-mkconfig génère le fichier de configuration GRUB 2 à l'aide des scripts de modèle dans /etc/grub.d et des paramètres de configuration de menu extraits du fichier de configuration, /etc/default/grub.

Les fichiers GRUB 2 générés sont lus lors de l'initialisation du système à partir de /boot. Le fichier de configuration principal du GRUB 2 est disponible à l'adresse /boot/grub2/grub.cfg. Sur les systèmes UEFI, un fichier de configuration initial à l'adresse /boot/efi/EFI/redhat/grub.cfg permet d'orienter le GRUB 2 vers le périphérique et l'emplacement corrects du fichier de configuration principal du GRUB2. Les paramètres d'initialisation de chaque version du noyau sont stockés dans des fichiers de configuration indépendants dans /boot/loader/entries. Selon la version d'Oracle Linux, chaque configuration de noyau est stockée avec le nom de fichier :
  • machine_id-kernel_version.el10.arch.conf
  • machine_id-kernel_version.el9.arch.conf
  • machine_id-kernel_version.el8.arch.conf
Remarque

Ne modifiez pas directement le fichier de configuration GRUB 2 dans /boot.

L'entrée de menu par défaut est définie par la valeur du paramètre GRUB_DEFAULT dans /etc/default/grub. Si GRUB_DEFAULT est défini sur saved, vous pouvez utiliser les commandes grub2-set-default et grub2-reboot pour spécifier l'entrée par défaut. La commande grub2-set-default définit l'entrée par défaut pour toutes les réinitialisations, tandis que la commande grub2-reboot définit l'entrée par défaut pour la prochaine réinitialisation uniquement.

Si vous spécifiez une valeur numérique comme valeur de GRUB_DEFAULT ou comme argument pour grub2-reboot ou grub2-set-default, le GRUB 2 compte les entrées de menu dans le fichier de configuration à partir de 0 pour la première entrée.

Pour mettre à jour la configuration du programme d'initialisation GRUB 2 sur Oracle Linux, utilisez la commande grubby pour contrôler et gérer toutes les exigences d'initialisation.

L'outil de ligne de commande grubby vous aide à gérer la configuration GRUB 2 et les paramètres d'initialisation du noyau. Il est entièrement scriptable et résume les détails du programme d'initialisation de bas niveau, vous n'avez donc pas besoin de modifier les fichiers GRUB à la main. Pour plus d'informations, reportez-vous à Utilisation de grubby pour gérer les noyaux.

Important

Les modifications persistantes de la ligne de commande du noyau doivent être effectuées avec grubby. La régénération de /boot/grub2/grub.cfg à partir de /etc/default/grub n'appliquera pas ces modifications.

Si vous devez modifier certains paramètres de la configuration au moment de l'initialisation, vous pouvez modifier temporairement les paramètres d'initialisation du noyau dans le menu d'initialisation du GRUB 2. Voir la section Changing Kernel Boot Parameters Before Booting.

Pour plus d'informations sur l'utilisation, la configuration et la personnalisation de GRUB 2, reportez-vous au Manuel GNU GRUB, également installé en tant que /usr/share/doc/grub2-tools-2.00/grub.html.

A propos des noyaux Linux

Oracle Linux peut être initialisé avec différents noyaux personnalisés pour l'interopérabilité ou les performances du système.

Le noyau Linux est le cœur du système d'exploitation et fournit l'interface entre le matériel du système et toutes les applications qui s'exécutent sur le système. Le noyau gère les ressources système, gère la sécurité et permet aux logiciels d'interagir avec le matériel sans avoir besoin d'un accès direct. Le noyau Linux est un projet open source mis à disposition par la Fondation Linux.

La fondation Linux fournit un hub aux développeurs open source pour coder, gérer et dimensionner différents projets de technologie ouverte. Il gère également l'organisation du noyau Linux qui existe pour distribuer différentes versions du noyau Linux qui est au cœur de toutes les distributions Linux, y compris celles utilisées par Oracle Linux.

Vous devez installer et exécuter l'un des noyaux Linux suivants avec Oracle Linux :

  • Unbreakable Enterprise Kernel (UEK) : UEK est basé sur une branche de noyau stable de Linux Foundation, avec des ajouts basés sur le client, et plusieurs UEK peuvent exister pour une version Oracle Linux spécifique. Il se concentre sur les performances, la stabilité et les rétroportages minimaux en suivant le code source de la ligne principale fourni par l'organisation du noyau Linux, aussi étroitement que possible. UEK est testé et utilisé pour exécuter les systèmes intégrés Oracle, Oracle Cloud Infrastructure (OCI) et les déploiements d'entreprise de grande envergure pour les clients Oracle.

    UEK inclut des packages ou des versions de packages qui ne sont pas disponibles dans RHCK. Par exemple, les packages associés à btrfs-tools, rds et rdma et certains outils de réglage du noyau.

  • Noyau compatible Red Hat (RHCK) : RHCK est entièrement compatible avec le noyau Linux distribué dans une version correspondante de Red Hat Enterprise Linux (RHEL). Vous pouvez utiliser RHCK pour assurer une compatibilité totale avec les applications exécutées sur Red Hat Enterprise Linux.

Les packages de noyau sont spécialement conçus pour éviter les dépendances d'un type de noyau particulier. Tout noyau qui n'est pas en cours d'utilisation peut être supprimé du système sans impact.

Par exemple, pour supprimer RHCK d'un système qui exécute UEK, vous pouvez exécuter :

sudo dnf remove kernel-core

Si un système utilise RHCK, vous pouvez supprimer UEK en exécutant :

sudo dnf remove kernel-uek-core

Reportez-vous à la section Checking Available Kernels on the System pour savoir quels noyaux sont installés sur le système.

Reportez-vous à la section Changing the Default Kernel pour savoir comment modifier le noyau par défaut, par exemple de RHCK en UEK, ou de UEK en RHCK.

Important

Les noyaux Linux sont essentiels pour exécuter des applications dans l'espace utilisateur Oracle Linux. Par conséquent, vous devez tenir le noyau à jour avec les derniers correctifs de bogues, améliorations et mises à jour de sécurité fournis par Oracle. Pour ce faire, implémentez une stratégie de mise à jour et de mise à niveau continues. Reportez-vous au Guide de l'utilisateur Oracle Linux : Ksplice pour plus d'informations sur la mise à jour du noyau sans avoir à réinitialiser le système. Reportez-vous à Oracle Linux : Gestion des logiciels sur Oracle Linux pour obtenir des informations générales sur la mise à jour des logiciels sur le système.

Pour plus d'informations sur les noyaux disponibles, voir :

A propos des modules de noyau

Le chargeur d'initialisation charge le noyau en mémoire. Vous pouvez ajouter un nouveau code au noyau en incluant les fichiers source dans l'arborescence source du noyau et en recompilant le noyau. Les modules de noyau fournissent des pilotes de périphérique qui permettent au noyau d'accéder à un nouveau matériel, de prendre en charge différents types de systèmes de fichiers et d'étendre ses fonctionnalités d'autres manières. Les modules peuvent être chargés et déchargés dynamiquement à la demande. Pour éviter de gaspiller de la mémoire sur les pilotes de périphérique inutilisés, Oracle Linux prend en charge les modules de noyau chargeables (LKM), qui permettent à un système de s'exécuter uniquement avec les pilotes de périphérique et le code de noyau qui doivent être chargés dans la mémoire. Pour plus d'informations sur la gestion des modules de noyau sur Oracle Linux, reportez-vous à Gestion des modules de noyau.

Remarque

A partir de UEK R7, les modifications d'empaquetage du noyau sont appliquées pour fournir un noyau plus rationalisé. Les modules de noyau requis pour la plupart des configurations de serveur sont fournis dans le package kernel-uek-modules, tandis que les modules de noyau facultatifs pour le matériel moins souvent trouvés dans les configurations de serveur, telles que les cartes Bluetooth, Wi-Fi et de capture vidéo, se trouvent dans le package kernel-uek-modules-extra. Notez que ces deux packages nécessitent l'installation du package linux-firmware.

Pour afficher le contenu de ces packages, exécutez la commande suivante :

dnf repoquery -l kernel-uek-modules
dnf repoquery -l kernel-uek-modules-extra

Pour installer tous les modules de noyau disponibles, exécutez :

sudo dnf install -y kernel-uek-modules kernel-uek-modules-extra linux-firmware

Voir UEK R7 (5.15.0).

Remarque

A partir de UEK 8, les modifications d'empaquetage du noyau sont appliquées pour fournir un noyau plus rationalisé. Le nombre minimal de modules noyau de base et de fichiers de prise en charge, tels que les fichiers générés par depmod, est fourni dans le package kernel-uek-modules-core. Les modules de noyau requis pour la plupart des configurations de serveur sont fournis dans le package kernel-uek-modules, tandis que les modules de noyau facultatifs pour le matériel moins souvent trouvés dans les configurations de serveur, telles que les cartes Bluetooth, Wi-Fi et de capture vidéo, se trouvent dans le package kernel-uek-modules-extra. Notez que ces deux packages nécessitent l'installation du package linux-firmware.

Pour afficher le contenu de ces packages, exécutez la commande suivante :

dnf repoquery -l kernel-uek-modules-core
dnf repoquery -l kernel-uek-modules
dnf repoquery -l kernel-uek-modules-extra

Pour installer tous les modules de noyau disponibles, exécutez :

sudo dnf install -y kernel-uek-modules-core kernel-uek-modules kernel-uek-modules-extra linux-firmware

Voir UEK 8 (6.12.0).

Les modules de noyau peuvent être signés pour protéger le système contre l'exécution de code malveillant au moment de l'initialisation. Lorsque l'initialisation sécurisée UEFI est activée, seuls les modules de noyau contenant les informations de signature correctes peuvent être chargés. Pour plus d'informations, reportez-vous à Oracle Linux : Working With UEFI Secure Boot.

A propos des modules de mise à jour faibles

Les modules externes, tels que les pilotes installés à l'aide d'un disque de mise à jour de pilote ou installés à partir d'un package indépendant, sont généralement installés dans le répertoire /lib/modules/kernel-version/extra. Les modules qui sont stockés dans ce répertoire sont préférés aux modules correspondants inclus dans le noyau lors du chargement de ces modules. Les pilotes et modules externes installés peuvent remplacer les modules de noyau existants pour résoudre les problèmes matériels. Pour chaque mise à jour du noyau, ces modules externes doivent être mis à la disposition de chaque noyau compatible afin que les problèmes d'initialisation potentiels résultant d'incompatibilités de pilote avec le matériel affecté puissent être évités.

Etant donné que la nécessité de charger le module externe avec chaque mise à jour de noyau compatible est critique pour le système, un mécanisme existe pour que les modules externes soient chargés en tant que modules de mise à jour faibles pour les noyaux compatibles.

Vous rendez les modules de mise à jour faibles disponibles en créant des liens symboliques vers des modules compatibles dans le répertoire /lib/modules/kernel-version/weak-updates. Le gestionnaire de packages gère ce processus automatiquement lorsqu'il détecte les modules de pilote installés dans les répertoires /lib/modules/kernel-version/extra pour tous les noyaux compatibles.

Par exemple, si un noyau plus récent est compatible avec un module qui a été installé pour le noyau précédent, un module externe (tel que kmod-kvdo) est automatiquement ajouté en tant que lien symbolique dans le répertoire weak-updates dans le cadre du processus d'installation, comme indiqué dans la sortie de commande suivante :

ls -l /lib/modules/6.12.0-100.28.2.el10.x86_64/weak-updates/kmod-kvdo/uds
lrwxrwxrwx. 1 root root 68 Jul  8 07:57 uds.ko -> 
/lib/modules/6.12.0-100.28.2.el10.x86_64/extra/kmod-kvdo/uds/uds.ko
ls -l /lib/modules/6.12.0-100.28.2.el10.x86_64/weak-updates/kmod-kvdo/vdo

Le lien symbolique permet au module externe de se charger pour les mises à jour du noyau.

Les mises à jour faibles sont bénéfiques et garantissent qu'aucun travail supplémentaire n'est nécessaire pour transporter un module externe via les mises à jour du noyau. Tous les problèmes d'initialisation potentiels liés aux pilotes après les mises à niveau du noyau sont évités, de sorte que cette approche offre un fonctionnement plus prévisible d'un système et de son matériel.

Vous pouvez supprimer les modules de mise à jour faibles si une version du noyau fournit une version supérieure ou préférée du pilote ou du module. Pour plus d'informations, reportez-vous à Suppression de modules de mise à jour faibles.

Pour plus d'informations sur les modules de pilote externes et les disques de mise à jour de pilote, reportez-vous aux documents suivants :

A propos des systèmes de fichiers virtuels et de la configuration du système

Une fois que le système a terminé le processus d'initialisation, les systèmes de fichiers virtuels fournissent une interface au noyau en cours d'exécution et aux processus et au matériel disponibles sur le système. Deux systèmes de fichiers virtuels sont disponibles :
  • procfs : est monté sur /proc et fournit une interface avec les structures de données du noyau, principalement liées aux processus et au matériel.
  • sysfs : est monté sur /sys et fournit des informations sur les périphériques, les modules de noyau, les systèmes de fichiers et les autres composants de noyau.

Ces systèmes de fichiers virtuels sont utilisés pour contrôler et générer des rapports sur le noyau en cours d'exécution, afin que la configuration du système puisse être surveillée et ajustée pendant que le système d'exploitation est actif.

Bien qu'il ne fasse pas partie de la collection de systèmes de fichiers virtuels du noyau, le chemin du fichier de configuration système /etc/sysconfig est également important car il fournit une interface à de nombreuses variables de configuration système principales qui sont lues lors de l'initialisation du système.

Reportez-vous également à Exploration des fichiers de configuration système et des paramètres de noyau sur Oracle Linux pour un tutoriel pratique sur la configuration des paramètres système.

A propos des fichiers /etc/sysconfig

Le répertoire /etc/sysconfig contient des fichiers qui contrôlent la configuration du système après l'initialisation. Le contenu de ce répertoire dépend des packages que vous avez installés sur le système. Le répertoire /etc/sysconfig fournit en grande partie une vue unique de nombreux fichiers de configuration utilisés par les composants systemd et associés qui contrôlent la configuration du système, tels que Network Manager.

Dans les versions plus récentes d'Oracle Linux, le nombre de fichiers de configuration dans ce répertoire diminue car la configuration est mieux gérée par systemd et d'autres unités de configuration. Pour plus d'informations sur systemd, reportez-vous à la section Managing the System With systemd.

Certains fichiers que vous pouvez trouver dans le répertoire /etc/sysconfig sont les suivants :

atd

Spécifie les arguments de ligne de commande pour le démon atd.

autofs

Définit les options personnalisées pour le montage automatique des périphériques et le contrôle du fonctionnement de l'agent de montage automatique. Non disponible dans Oracle Linux 9 ou version ultérieure.

crond

Transmet des arguments au démon crond au moment de l'initialisation.

chronyd

Transmet les arguments au démon chronyd utilisé pour les services NTP au moment de l'initialisation.

firewalld

Transmet des arguments au démon de pare-feu (firewalld) au moment de l'initialisation.

grub

Spécifie les paramètres par défaut du programme d'amorçage GRUB 2. Ce fichier est un lien symbolique vers /etc/default/grub. Pour plus d'informations, reportez-vous à A propos du programme d'initialisation GRUB 2. Non disponible dans Oracle Linux 9 ou version ultérieure.

named

Transmet des arguments au démon du service de noms au moment de l'initialisation. Le démon named est un serveur DNS (Domain Name System) faisant partie de la distribution BIND (Berkeley Internet Name Domain). Ce serveur gère une table qui associe les noms d'hôte aux adresses IP sur le réseau.

samba

Transmet des arguments aux démons smbd, nmbd et winbindd au moment de l'initialisation pour prendre en charge la connectivité de partage de fichiers pour les clients Windows, le service de noms NetBIOS sur IP et la gestion des connexions aux contrôleurs de domaine.

selinux

Contrôle l'état de SELinux sur le système. Ce fichier est un lien symbolique vers /etc/selinux/config.

Pour plus d'informations, reportez-vous à Administration de SELinux dans Oracle Linux.

snapper

Définit une liste de systèmes de fichiers btrfs et de volumes LVM à faible provisionnement dont le contenu peut être enregistré en tant qu'instantanés par l'utilitaire snapper.

Pour plus d'informations, consultez les documents suivants :

sysstat

Configure les paramètres de journalisation pour les utilitaires de collecteur de données d'activité système tels que sar.

Sur Oracle Linux 8, plus d'informations sont disponibles dans /usr/share/doc/initscripts*/sysconfig.txt. Ce contenu n'est pas disponible dans les versions plus récentes d'Oracle Linux.

A propos du système de fichiers virtuel /proc

Les fichiers de la hiérarchie de répertoires /proc contiennent des informations sur le matériel du système et les processus en cours d'exécution sur le système. Vous pouvez modifier la configuration du noyau en écrivant dans certains fichiers disposant de droits d'accès en écriture.

Les fichiers qui se trouvent sous le répertoire /proc sont des fichiers virtuels que le noyau crée à la demande pour présenter une vue des structures de données sous-jacentes et des informations système. Ainsi, /proc est un exemple de système de fichiers virtuel. La plupart des fichiers virtuels ont une taille de 0 octet, mais ils contiennent une grande quantité d'informations lorsqu'ils sont affichés.

Les fichiers virtuels tels que /proc/interrupts, /proc/meminfo, /proc/mounts et /proc/partitions fournissent une vue du matériel du système. D'autres fichiers, tels que /proc/filesystems et les fichiers sous /proc/sys, fournissent des informations sur la configuration du système et vous permettent de modifier les configurations selon vos besoins.

Les fichiers contenant des informations sur les sujets connexes sont regroupés dans des répertoires virtuels. Un répertoire distinct existe dans le répertoire /proc pour chaque processus en cours d'exécution sur le système. Le nom du répertoire correspond à l'ID de processus numérique. Par exemple, /proc/1 correspond au processus systemd qui a un PID de 1.

Pour examiner les fichiers virtuels, vous pouvez utiliser des commandes telles que cat, less et view, comme indiqué dans l'exemple suivant :

cat /proc/cpuinfo
processor         : 0
vendor_id         : GenuineIntel
cpu family        : 6
model             : 42
model name        : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
stepping          : 7
cpu MHz           : 2393.714
cache size        : 6144 KB
physical id       : 0
siblings          : 2
core id           : 0
cpu cores         : 2
apicid            : 0
initial apicid    : 0
fpu               : yes
fpu_exception     : yes
cpuid level       : 5
wp                : yes
...

Pour les fichiers qui contiennent du contenu non lisible par l'utilisateur, vous pouvez utiliser des utilitaires tels que lspci, free, top et sysctl pour accéder aux informations. Par exemple, la commande lspci répertorie les périphériques PCI sur un système :

sudo lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service
00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC'97 Audio Controller (rev 01)
00:06.0 USB controller: Apple Inc. KeyLargo/Intrepid USB
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:0b.0 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller
00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode]
        (rev 02)
...

Reportez-vous à la section procfs Directory Reference pour plus d'informations sur les différents répertoires disponibles sous /proc. Reportez-vous à Gestion des paramètres de noyau lors de l'exécution pour plus d'informations sur la façon dont vous pouvez afficher et modifier les paramètres de noyau dans /proc/sys afin de contrôler le comportement d'exécution du système.

A propos du système de fichiers virtuel /sys

Outre le système de fichiers /proc, le noyau exporte les informations vers le système de fichiers virtuel /sys (sysfs). Des logiciels tels que le gestionnaire de périphériques dynamiques (udev), utiliser /sys pour accéder aux informations des périphériques et des pilotes de périphérique. Reportez-vous à la section Managing System Devices With the udev Device Manager pour plus d'informations sur la gestion des périphériques.

Remarque

/sys expose les structures de données du noyau et les points de contrôle, ce qui implique que le répertoire contient des références circulaires, où un répertoire est lié à un répertoire ancêtre. Par conséquent, une commande find utilisée sur /sys risque de ne jamais s'arrêter.

Reportez-vous à la section sysfs Directory Reference pour obtenir plus d'informations sur les répertoires disponibles dans /sys.