A.4. Menu « Processor type and features »

L'option « Symmetric multi-processing support » permet d'activer le support de plusieurs processeurs. Cela comprend les ordinateurs multiprocesseurs, ainsi que les ordinateurs utilisant un processeur hyperthreadé ou à cœurs cœurs, aussi est-il recommandé de répondre 'Y' à cette question. En pratique, il est même conseillé d'activer cette option même sur les ordinateurs à un seul processeur effectif de nos jours.

L'option « Subarchitecture Type » permet d'accéder à un sous-menu pour indiquer le type de machine pour l'architecture de processeur pour lequel le noyau doit être défini. Pour la plupart des machines basées sur des processeurs x86 ou x86-64 d'AMD, le type d'architecture utilisé est « PC-Compatible », c'est donc l'option recommandée.

L'option « Paravirtualization support » permet d'activer la prise en charge de l'exécution du noyau au sein d'une machine virtuelle sur les processeurs disposant des fonctions de paravirtualisation. Cette option n'est utile que pour les systèmes virtualisés, qui sont ainsi modifiés afin de s'exécuter de manière plus performante dans une machine virtuelle. Toutefois, elle peut ralentir l'exécution du noyau en dehors de ces machines virtuelles. Cette option vous donnera accès aux options de configuration des deux principales technologies de virtualisation, à savoir Xen (option « Enable support for Xen hypervisor) et VMWare (option  VMI Paravirt-ops support). La réponse recommandée est donc 'N'.

L'option « Processor family » vous permet de spécifier le type de processeur sur lequel le noyau fonctionnera. Choisissez le processeur dont vous disposez.

L'option « Generic-x86-64 » permet d'activer la prise en charge du jeu d'instructions 64 bits commun à Intel et AMD, et donc de réaliser des noyaux portables. Cette option est destinée aux noyaux de distributions, qui doivent être génériques. Il est toutefois recommandé de choisir le type processeur effectivement utilisé.

L'option « Generic x86 support » est similaire à la précédente, mais pour les processeurs 32 bits. Elle permet d'activer la prise en charge d'optimisation pour certains processeurs x86, même si le noyau n'est pas compilé spécifiquement pour ces processeurs. Cette option est destinée aux noyaux de distributions, qui doivent être génériques mais qui peuvent chercher à bénéficier de certaines fonctionnalités des processeurs récents. Il est donc recommandé de répondre 'N' à cette option et de choisir le type processeur adéquat dans l'option « Processor family ».

L'option « HPET Timer Support » permet d'activer la prise en charge des horloges temps-réel de nouvelle génération sur les systèmes les plus récent. En l'absence d'une telle horloge, l'horloge standard sera utilisée. Vous pouvez répondre 'Y' à cette question si vous disposez d'un ordinateur récent, autrement répondez 'N'.

L'option « Provide RTC interrupt » permet d'activer l'émulation de l'horloge temps-réel RTC sur les machines 64 bits, qui utilisent normalement systématiquement les horloges temps-réel HPET. La réponse recommandée est 'Y'.

L'option permet de sélectionner le nombre maximum de processeurs disponibles sur la machine. Cette option n'est accessible que si vous avez activé la prise en charge des processeurs multiples en répondant par 'Y' à l'option « Symmetric multi-processing support ». Vous devez dans ce cas indiquer le nombre de processeurs réels ou virtuels dont votre machine dispose. Chaque processeur virtuel des processeur hyperthreadés compte pour un processeur à part entière, ainsi que chaque cœur des processeurs multi-cœurs.

L'option « SMT (Hyperthreading) scheduler support » permet de prendre en charge un ordonnanceur de tâches spécifique pour les processeurs hyperthreadés. Ces processeurs partageant les mêmes caches de mémoire, la migration des tâches d'un processeur virtuel à un autre peut en effet être optimisée. Cet ordonnanceur prend donc en compte les spécificités des processeurs hyperthreadés, tels que les derniers pentium IV. Répondez par 'Y' si vous disposez d'un tel processeur, et par 'N' dans le cas contraire.

De la même manière, l'option « Multi-core scheduler support » permet de prendre en charge un ordonnanceur de tâches spécifique pour les processeurs multi-cœurs. Répondez par 'Y' si vous disposez d'un tel processeur, et par 'N' dans le cas contraire.

L'option « Preemption Model » permet de spécifier si le noyau lui-même peut être préempté pendant les appels systèmes ou non. La préemption des appels systèmes rend le noyau lui-même multitâche, et permet donc d'augmenter la réactivité du système. Dans certaines circonstances, cela peut aussi accroître le taux d'utilisation du processeur. Toutefois, cela peut aussi diminuer légèrement la bande passante dans les opérations d'entrée / sortie. L'activation du multitâche dans le noyau est recommandée pour les noyaux destinés à des applications temps-réel ou multimédia, et déconseillée pour les noyaux destinés aux serveurs. De plus, si vous décidez d'autoriser la prise en charge du multitâche au sein des appels systèmes, vous pourrez faire en sorte que celui-ci soit coopératif (le noyau lui-même vérifiera si d'autres tâches n'ont pas besoin d'être exécutées) ou préemptif (le noyau pourra être interrompu à n'importe quel moment), ce qui augmentera la réactivité du système. Le choix recommandée est « Preemptible Kernel (Low-Latency Desktop) », sauf si vous envisager d'installer un serveur qui sera utilisé intensivement.

L'option « Preempt The Big Kernel Lock » permet d'autoriser les mécanismes de préemption même au sein de la section critique globale du noyau. Cette option permet d'améliorer encore plus la réactivité du système, et est recommandée pour les noyaux destinés à des machines de bureau. La réponse recommandée est 'Y'.

L'option « Local APIC support on uniprocessors » permet d'activer les contrôleurs d'interruptions programmables intégrés dans certains processeurs. Certaines machines disposent d'un tel processeur, si c'est votre cas, vous pouvez répondre par 'Y' à cette question. Cette option n'est disponible que si vous avez répondu 'N' à la question « Symetric multi-processing support ».

L'option « IO-APIC support on uniprocessors » permet d'activer la gestion des contrôleurs d'interruption programmables avancés. Ces contrôleurs sont utilisés sur les machines multi-processeurs, mais certaines cartes mères monoprocesseurs les utilisent. Si c'est le cas de votre carte mère, vous pouvez répondre par 'Y' à cette question.

L'option « Machine Check Exception » permet d'activer la surveillance de l'état de l'ordinateur (élévation anormale de température, pannes, etc.) afin de contourner les problèmes matériels ou d'arrêter le système avant une destruction de composants ou des pertes de données irrémédiables. L'option « Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4 » permet d'activer la surveillance des problèmes mineurs, qui ne nécessitent pas un arrêt de la machine, mais pour lesquels on désire malgré tout avoir une trace dans les traces du noyau. L'option « check for P4 thermal throttling interrupt. » permet de générer une trace sur les systèmes à base de Pentium IV lorsque ceux-ci surchauffent. Pour les machines 64 bits, l'option « Intel MCE features » et « AMD MCE features » permettent d'activer les fonctions de surveillance du systèmes telles que la température du processeur et les erreurs du bus mémoire. La réponse recommandée est 'Y' pour ces options si votre système dispose d'un processeur de ce type.

L'option « Enable VM86 support » permet de prendre en charge le mode 8086 virtuel des processeurs x86 32 bits. Ce mode permet de faire fonctionner les programmes 16 bits, tels que les vieux programmes DOS ou certaines fonctions du BIOS qui n'existent qu'en mode 16 bits. Cette option est en particulier nécessaire pour permettre une exécution performante des émulateurs DOS tels que DOSEMU, ou pour changer de mode graphique sur certaines cartes graphiques. La réponse recommandée est 'Y'.

L'option « Toshiba Laptop support » permet d'activer la gestion d'énergie pour les portables de marque Toshiba. Vous pouvez répondre 'Y' à cette question si vous désirez utiliser votre noyau sur un portable Toshiba. La réponse recommandée est 'N'.

L'option « Dell Laptop support » permet d'activer la gestion d'énergie pour les portables de marque Dell. Vous pouvez répondre 'Y' à cette question si vous désirez utiliser votre noyau sur un portable Dell. La réponse recommandée est 'N'.

L'option « Enable X86 board specific fixups for reboot » permet d'activer un contournement à un bogue matériel et logiciel dans le BIOS présent sur certaines machines et empêchant le système de redémarrer correctement. La réponse recommandée est 'N'.

L'option « /dev/cpu/microcode - Intel IA32 CPU microcode support » permet d'activer la reprogrammation du microcode des processeurs Intel postérieurs aux Pentium Pro. À l'aide de cette fonctionnalité, vous pourrez mettre à jour le microcode de votre processeur (cette mise à jour n'est pas permanente, le microcode doit être rechargé à chaque démarrage de la machine). Notez que cette option impose d'utiliser le système de fichiers virtuel /dev/ du noyau. Il est donc nécessaire d'activer l'option « /dev filesystem support (EXPERIMENTAL) » du menu « File systems ». En général, il n'est pas nécessaire de mettre à jour le microcode de son processeur, à moins que celui-ci ne contienne un bogue incontournable ou que vous n'ayez à optimiser spécialement votre machine pour une utilisation particulière. La réponse recommandée est donc 'N'.

L'option « /dev/cpu/*/msr - Model-specific register support » permet d'activer la gestion du registre MSR sur les processeurs x86. Il existe un registre de ce type pour chaque processeur, que l'on trouvera dans les sous-répertoires portant comme nom les numéros de chaque processeur. La réponse recommandée est 'N'.

L'option « /dev/cpu/*/cpuid - CPU information support » permet d'obtenir les informations fournies par l'instruction CPUID pour chaque processeur de la machine. Il existe un registre de ce type pour chaque processeur, que l'on trouvera dans les sous-répertoires portant comme nom les numéros de chaque processeur. La réponse recommandée est 'N'.

L'option « High Memory Support » vous permet d'indiquer le mode de gestion de la mémoire que le noyau utilisera. Pour la plupart des gens, dont les machines disposent de moins d'un Go de mémoire, la réponse recommandée est « off ». Si votre machine dispose d'un gigaoctet ou plus de mémoire, mais moins de quatre Go, vous pouvez changer le mode d'adressage du noyau pour gérer la totalité de votre mémoire, en choisissant l'option « 4GB ». Les processeurs x86 ne permettent pas d'adresser plus de 4Go de mémoire simultanément en raison de leur bus d'adresses 32 bits. Cependant, ils peuvent gérer jusqu'à 64Go de mémoire par tranches de 4Go, à l'aide d'une extension spécifique aux processeurs de type Pentium Pro. Si vous disposez d'une telle machine, vous devez choisir l'option « 64GB ».

L'option « Memory Split » permet de choisir le type de découpage de l'espace d'adressage des processus entre la plage d'adresses utilisable par les programmes et la plage d'adresse correspondante à une copie de l'espace d'adressage du noyau. Sous Linux, la mémoire du noyau est projetée systématiquement dans l'espace d'adressage de chaque programme utilisateur (mais n'est pas lisible pour des raisons de sécurité évidentes), afin de permettre au noyau d'accéder directement à la mémoire du programme lors des appels systèmes. Il est donc d'usage de réserver le gigaoctet supérieur des quatre gigaotcets d'espace d'adressage des processeurs 32 bits pour y placer une projection de la mémoire du noyau. Cependant, si le système dispose de plus d'un gigaoctet de mémoire, le noyau ne pourra pas accéder directement à la totalité de la mémoire sans frais supplémentaires, car il devra modifier cette projection. Cette option permet donc de spécifier la manière dont ce découpage est réalisé. La valeur classique est « 3G/1G user/kernel split », ce qui est donc la valeur recommandée. Une variante est disponible pour les machines disposant exactement d'un gigaoctet de mémoire. Les autres options permettent d'accroître la taille de l'espace d'adressage du noyau, au détriment de l'espace d'adressage des processus. Utiliser ces options nécessite de bien connaître les processus utilisés, car réduire leur espace d'adressage peut conduire à des situations de fragmentation mémoire ou d'échecs de réservation de mémoire susceptibles de les empêcher de fonctionner correctement.

L'option « PAE (Physical Address Extension) Support » permet d'activer le mode d'adressage des pages étendu sur les processeurs x86. Ce mode est nécessaire pour que le bit NX soit utilisable (bit permettant d'éviter que les zones de données des programmes soient exécutables, et donc éviter toute une catégorie d'attaque des virus et des pirates sur des programmes bogués leur permettant de contrôler une partie de leur mémoire). Toutefois, ce mode étendu consomme plus de ressources dans le système. La réponse recommandée est 'N'. Si vous désirez absolument bénéficier de la protection du bit NX et d'une grande quantité de mémoire vive, il est préférable d'utiliser une distribution 64 bits, ce qui évite d'avoir recours à des contournements plus ou moins efficaces.

L'option « Non Uniform Memory Access (NUMA) Support » (également appelée « NUMA Memory Allocation and Scheduler Support (EXPERIMENTAL) » dans la configuration pour les processeurs 32 bits) permet de prendre en charge les ordinateurs disposant de plusieurs types de mémoire, situés sur les bus de différents processeurs. Ces mémoires ont la spécificité d'avoir un temps d'accès qui n'est pas uniforme et dépend du processeur qui y accède. Ainsi, dans ce modèle, il est important que les processus utilisent au maximum la mémoire la plus proche du processeur sur lequel ils s'exécutent, aussi des traitements particuliers doivent-ils être réalisés lors de l'allocation de mémoire et lors de l'ordonnancement. Les fonctionnalités NUMA pour les processeurs 32 bits sont extrêmement expérimentales et ne doivent jamais être utilisées. Sur les machines 64 bits, elles sont tout à fait utilisables, mais les machines de ce type sont encore relativement rares. De ce fait, la réponse recommandée à cette option est 'N'. Cette option vous donnera accès aux options « Old style AMD Opteron NUMA detection » et « ACPI NUMA detection », qui permet de choisir la méthode de détection des zones de mémoire non uniformes (directement via le bus mémoire ou par les informations de l'ACPI). Elle vous donnera également accès à l'option « NUMA emulation », qui permet de simuler une machine à mémoire non uniforme. Cette option est réservée aux développeurs du noyau, et la réponse recommandée est 'N'.

L'option « Memory model » permet de choisir le modèle utilisé par l'ordinateur pour gérer la mémoire physique. La plupart des ordinateurs ont un modèle mémoire continu et linéaire, ce qui correspond à l'option « Flat Memory » (valeur par défaut recommandée). D'autres ordinateurs peuvent utiliser des modèles où la mémoire est constituée de différentes zones discontiguës, et nécessiter ainsi le choix « Sparse Memory ».

L'option « Allow for memory hot-add » permet d'activer la prise en charge de certains serveurs sur lesquels de la mémoire peut être ajoutée à chaud, sans éteindre la machine. La réponse recommandée est 'N'.

L'option « Page migration » permet d'activer la fonctionnalité de déplacement de pages mémoires d'un noeud NUMA vers un autre, afin de rapprocher au maximum les pages mémoires des processus qui les utilisent. La réponse recommandée est 'N'.

L'option « 64 bit Memory and IO resources (EXPERIMENTAL) », permet d'accéder aux ressources mémoires et d'entrée/sortie en 64 bits sur les machines 32 bits. La réponse recommandée est 'N'.

L'option « Allocate 3rd-level pagetables from highmem », permet de placer les structures de données du gestionnaire de mémoire virtuelle en mémoire haute. Ces structures ayant une taille proportionnelle à la quantité de mémoire effectivement installée, cette option permet d'éviter qu'elles ne saturent la mémoire basse. La réponse recommandée pour cette option est 'Y' si vous vous trouvez dans ce cas de configuration.

L'option « Math emulation » permet d'activer l'émulateur d'unité de calcul en virgule flottante, pour les processeurs qui n'en disposent pas (386 et 486 SX). Si vous avez un ordinateur récent, choisissez 'N'.

L'option « MTRR (Memory Type Range Register) support » permet d'activer le support des plages mémoires du processeur. Celui-ci peut permettre l'accélération des transferts de donnés dans les plages mémoires des périphériques, en particulier pour les cartes graphiques. Cette fonctionnalité n'est disponible que pour les processeurs de type Pentium Pro et postérieurs. Si vous avez un ordinateur récent, choisissez 'Y'.

L'option « Boot from EFI support (EXPERIMENTAL) » permet de prendre en charge les services systèmes EFI disponibles sur certaines machines lors du démarrage. L'option recommandée est 'N'.

L'option « Enable kernel irq balancing » permet de répartir le traitement des interruptions matérielles sur les différents processeurs dont la machine dispose. Cette option n'est disponible que si l'option « Symmetric multi-processing support » a été activée. La réponse recommandée est 'Y'.

L'option « Enable seccomp to safely compute untrusted bytecode » permet d'activer le support de « bacs à sable » pour isoler des applications désirant utiliser du code non authentifié dans un système sécurisé. Cette option permet aux applications de restreindre les appels systèmes qu'elles peuvent réaliser, et empêcher ainsi qu'elles soient détournées de leur fonctionnalité initiale. La réponse recommandée est 'N'.

L'option « Timer frequency » permet de sélectionner la fréquence d'interruptions de l'horloge du noyau. Les commutations de tâche étant réalisées lors de ces interruptions, une fréquence élevée permet d'obtenir une forte réactivité du système. Toutefois, cette fréquence ne doit pas être trop élevée, afin d'éviter de passer trop de temps à exécuter l'ordonnanceur du système. La fréquence de 1000 Hz est donc la fréquence recommandée pour une machine de bureau, alors que les fréquences inférieures sont recommandées sur les machines disposant d'un grand nombre de processeurs ou devant être utilisées en tant que serveur. La fréquence de 300Hz est également intéressante pour les machines destinées au multimédia, parce que cette fréquence est divisible par les fréquences d'image des films au format PAL et NTSC. La réponse recommandée est « 300 Hz ».

L'option « IIOMMU support » permet désactiver le support des accès DMA pour les machines embarquées. Les accès DMA sont utilisés par un grand nombre de pilotes et sont importantes pour les performances, aussi la réponse recommandée est-elle 'Y'.

L'option « IBM Calgary IOMMU support » permet de prendre en charge les contrôleurs DMA Calgary d'IBM, qui permettent de faire fonctionner les périphériques PCI 32 bits sur des machines 64 bits disposant de plus de 3 Go de mémoire. Cette fonctionnalité permet également de diagnostiquer des bugs très graves de corruption de la mémoire que certains pilotes de périphériques mal programmés seraient susceptibles de faire. Le noyau fera normalement le bon choix dans l'utilisation de cette fonctionnalité, mais elle reste dédiée à certaines machines seulement. La réponse recommandée est donc 'N'.

L'option « Should Calgary be enabled by default? » permet d'activer le contrôleur mémoire Calgary par défaut au démarrage du système. La réponse recommandée est 'Y'.

L'option « kexec system call (EXPERIMENTAL) » permet d'activer le support du redémarrage du système directement dans un nouveau noyau, sans avoir à redémarrer complètement la machine. La réponse recommandée est 'N'.

L'option « kernel crash dumps (EXPERIMENTAL) » permet d'activer la génération automatique d'un rapport de plantage après chaque redémarrage par l'intermédiaire de l'appel système kexec. Cela permet d'obtenir des informations même après un plantage du noyau sévère. La réponse recommandée est 'N'.

L'option« Physical address where the kernel is loaded » permet de spécifier l'adresse de chargement du noyau au démarrage. Cela peut en particulier être utile pour s'assurer, dans le cas où la fonctionnalité de génération automatique de rapport de plantage est activée, que le noyau qui effectue le rapport n'est pas rechargé au même emplacement que celui qui a planté. Il est fortement recommandé de ne pas changer la valeur par défaut de cette option.

L'option« Build a relocatable kernel » permet de réaliser un noyau relogeable au delà du premier méga octet de la mémoire. Le noyau ainsi généré est plus gros, mais les informations complémentaires ne sont pas conservées une fois qu'il est chargé en mémoire. La réponse recommandée est 'N'.

L'option« Alignment value to which kernel should be aligned » permet d'indiquer la valeur de l'alignement en mémoire pour le chargement du noyau. Le noyau s'arrange pour être exécuté à partir d'une adresse correctement alignée dans tous les cas, mais il est vivement recommandé de ne pas modifier la valeur par défaut de cette option.

L'option « Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL) » permet de prendre en charge le branchement à chaud de processeurs dans l'ordinateur. Cette fonctionnalité est un prérequis à la fonction de mise en veille sur disque sur les machines multiprocesseur. La réponse recommandée est 'N'.

L'option « Enable -fstack-protector buffer overflow detection » permet d'activer la prise en charge de la détection des débordements de tampons alloués localement sur la pile, qui constituent une catégorie de bugs extrêmement dangereux, car ils peuvent permettre à un pirate de prendre le contrôle du programme fautif. Cette fonctionnalité requiert un compilateur récent. La réponse recommandée est 'N'.

L'option « Use stack-protector for all functions » permet d'activer la détection des débordements de tampons pour toutes les fonctions du noyau, et non uniquement celles qui déclarent des tampons sur la pile. La réponse recommandée est 'N'.

L'option « Function reordering » permet, si l'on dispose d'outils de compilation relativement récent, de réarranger les fonctions de l'ensemble du noyau afin d'optimiser les accès mémoire pour ne pas polluer le cache du processeur destiné à optimiser les mécanismes de gestion de la mémoire virtuelle. La réponse recommandée est 'N'.

L'option « Compat VDSO support » permet de charger la bibliothèque dynamique de réalisation des appels systèmes à un emplacement fixe dans la mémoire des processus. Sous Linux, les appels systèmes sont réalisés via des fonctions placées automatiquement par le noyau dans l'espace d'adressage des processus lors de leur lancement. Ces fonctions sont utilisés par la bibliothèque C, et s'adaptent à la configuration du noyau et aux conventions d'appel qu'il utilise, rendant ainsi la bibliothèque C indépendante du noyau et les appels systèmes plus performants. Les noyaux récents positionnent ces fonctions aléatoirement dans l'espace d'adressage du noyau pour des raisons de sécurité, rendant ainsi difficilement réalisable le détournement des appels systèmes par un attaquant qui aurait réussi à prendre le contrôle d'un programme défaillant. Toutefois, seuls les bibliothèques C 2.3.3 ou plus sont capables de gérer ce placement aléatoire des fonctions d'interfaçage avec le noyau. Cette option permet donc, pour les anciennes bibliothèques, d'utiliser l'ancienne politique de placement (en fin d'espace d'adressage du processus). Si vous utilisez un système récent, cela n'est pas nécessaire et la réponse recommandée est 'N'.

A.4.1. Sous-menu « Firmware Drivers »

Ce sous-menu permet d'activer l'accès à certaines fonctionnalités fournies par les firmware de certaines machines. L'option « BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL) » permet de récupérer dans le BIOS les informations sur le disque dur à partir duquel l'amorçage du système s'est fait.

L'option « EFI Variable Support via sysfs » permet d'accéder en lecture et en écriture aux variables d'environnement des systèmes amorçables par le mécanisme de boot avancé EFI. La réponse recommandée pour ces deux options est 'N'.

L'option « Console device selection via EFI PCDP or HCDP table » permet de définir la console de Linux comme étant la console principale définie par le BIOS EFI. La réponse recommandée pour ces deux options est 'N'.

L'option « BIOS update support for DELL systems via sysfs » permet d'activer la fonctionnalité de mise à jour du BIOS via le système de fichiers virtuel /sys/ pour les ordinateurs DELL. La réponse recommandée est 'N'.

L'option « Dell Systems Management Base Driver » permet d'exposer une interface de gestion de l'ordinateur spécifique à certains ordinateurs DELL via le système de fichiers virtuel /sys/. La réponse recommandée est 'N'.

L'option « Export DMI identification via sysfs to userspace » permet d'exposer les informations DMI via le système de fichiers virtuel /sys/. La réponse recommandée est 'N'.