Annexe A. Options de configuration du noyau

Table des matières
A.1. Menu « General setup »
A.2. Menu « Loadable module support »
A.3. Menu « Block layer »
A.4. Menu « Processor type and features »
A.5. Menu « Power management options (ACPI, APM) »
A.6. Menu « Bus options (PCI, PCMCIA, EISA, MCA, ISA) »
A.7. Menu « Executable file formats / Emulations »
A.8. Menu « Networking »
A.9. Device Drivers
A.10. Menu « File systems »
A.11. Menu « Instrumentation Support »
A.12. Menu « Kernel hacking »
A.13. Menu « Security options »
A.14. Menu « Cryptographic options »
A.15. Menu « Library routines »

Les questions posées par le programme de configuration du noyau 2.6.20 sont récapitulées ci-dessous. Les réponses recommandées ont été choisies pour correspondre à la plupart des cas courants. Il ne s'agit pas des options recommandées pour installer un serveur ou pour un machine contenant des périphériques exotiques (carte vidéo, port infrarouge, etc.). Avec ce jeu d'options, un PC standard est supposé démarrer sans poser de problèmes. Vous devrez cependant certainement les adapter selon vos besoins. La plupart de ces options sont décrites plus en détail dans le chapitre traitant de la configuration du matériel.

Je tiens à préciser que certaines de ces options m'ont laissé dubitatif, étant dans l'incapacité absolue de les comprendre et de les tester. Ces options sont en général les options concernant des fonctionnalités avancées ou des périphériques rarement utilisés.

A.1. Menu « General setup »

Ce menu comprend les options générales de configuration de Linux.

L'option « Prompt for development and/or incomplete code/drivers », permet d'activer les options de configuration des fonctionnalités en cours de développement dans le reste du programme de configuration du noyau. Vous devez répondre 'Y' si des pilotes particuliers sont nécessaires. Si l'on répond 'N', les questions de configuration concernant ces fonctionnalités ne seront pas posées. Il est recommandé de répondre 'Y' à cette question, car nombre de fonctionnalités récentes sont marquées comme étant « expérimentales », bien qu'étant tout à fait stable.

L'option « Local version - append to kernel release » permet d'ajouter une chaîne de caractères spécifique au nom du noyau, afin de lui donner un nom spécifique et de le distinguer des noyaux génériques pour une installation particulière. Il est recommandé de laisser cette chaîne vide.

L'option « Automatically append version information to the version string » permet d'ajouter automatiquement des informations de version pour les versions de développement du noyau dans le numéro de version. Cette fonctionnalité n'est utilisée que par les développeurs du noyau et n'est pas utile pour les utilisateurs normaux. Toutefois, on peut laisser la valeur par défaut 'Y' sans crainte.

La question « Support for paging of anonymous memory » permet d'activer le mécanisme de pagination de la mémoire virtuelle de Linux, couramment appelé le « swap ». Comme cette fonctionnalité permet d'exploiter plus efficacement la mémoire vive pour les machines disposant d'une mémoire de taille raisonnable, il est recommandé d'activer cette option et de répondre 'Y' à cette question.

L'option « System V IPC » permet d'activer la gestion des communications inter-processus compatibles System V. C'est quasiment un standard sur tous les systèmes Unix, il faut donc répondre par 'Y'.

L'option « POSIX Message Queues » permet d'activer l'implémentation d'un certain type de communications inter-processus appelé les files de messages selon le standard POSIX. C'est une fonctionnalité standard qu'il est recommandé d'activer sur tous les systèmes Unix, il faut donc répondre par 'Y'.

L'option « BSD Process Accounting » permet d'activer les statistiques des applications utilisé sur les système BSD. Ce mécanisme de surveillance peut être utilisé par quelques applications, aussi est-il recommandé de répondre par 'Y'.

L'option « BSD Process Accounting version 3 file format » permet d'utiliser le format de fichier version 3 des fichiers de traces pour la surveillance des applications. La version recommandée est 'N'.

L'option « Export task/process statistics through netlink (EXPERIMENTAL) » permet d'activer les statistiques sur les applications via le mécanisme de communication générique entre le noyau et les processus utilisateurs NETLINK. Contrairement au mécanisme de surveillance BSD, celui-ci permet d'optenir les statistiques des applications sont disponibles par un envoir commande. Les informations sur le processus sont également fournies lors de la fin du processus. La réponse recommandée est 'N'.

L'option « Enable per-task delay accounting (EXPERIMENTAL) » permet d'activer la comptabilisation du temps passé par les processus dans les opérations bloquantes. Ces informations peuvent être utilisées pour un meilleur ordonnancement des tâches dans le système. La réponse recommandée est 'N'.

L'option « Enable extended accounting over taskstats » permet d'activer la collecte de statistiques complémentaires pour les transférer via l'interface taskstats. Cette option vous donnera l'accès à l'option « Enable per-task storage I/O accounting » , qui permet de prendre en charge les statistiques sur les entrées/sorties de chaque processus. La réponse recommandée est 'N' pour ces deux options.

L'option « User Namespaces » permet d'activer une fonction du noyau destinée à certains logiciels de virtualisation, et dont le but est de modifier les informations sur la nature du système renvoyée aux programmes exécutés dans des serveurs virtuels. La réponse recommandée est 'N'.

L'option « Auditing support » permet de prendre en charge les fonctionnalités d'audit pour les autres sous-système de sécurité de Linux tels que SELinux. Cette fonctionnalité est encore peu utilisée et la réponse recommandée est 'N'.

L'option « Enable system-call auditing support » permet d'activer les fonctionnalités d'audit des appels systèmes conjointement avec d'autres sous-système de sécurité de Linux tels que SELinux. Cette fonctionnalité est encore peu utilisée et la réponse recommandée est 'N'.

L'option « Kernel .config support » permet d'inclure les options de configuration ainsi que la description complète de l'environnement de compilation du noyau dans le noyau lui-même. Cela permet de retrouver la configuration utilisée pour compiler le noyau, soit pour en regénérer un, soit pour mieux pouvoir déboguer le noyau. Cette option vous donnera accès à l'option « Enable access to .config through /proc/config.gz », qui permet de créer une entrée dans le système de fichiers virtuel /proc/ afin de récupérer ces informations. Ces options étant plus réservées aux développeurs du noyau qu'aux utilisateurs normaux, la réponse recommandée est 'N'.

L'option « Kernel log buffer size (16 => 64KB, 17 => 128KB) » permet de spécifier la taille du tampon circulaire utilisé pour l'affichage des messages de traces du noyau. Si cette taille est trop petite et que le noyau génère beaucoup de messages lors du démarrage ou lors du chargement du périphérique, certains messages peuvent être perdus. De ce fait, le déboguage de la configuration peut en être compliquée, et cette option devient alors utile. La taille indiquée est la puissance de deux à utiliser pour spécifier la taille effective du tampon. Les noyaux utilisant l'ACPI peuvent générer beaucoup de messages de traces lors de la détection du matériel, aussi est-il recommandé de fixer la taille de ce tampon à 15 au moins.

L'option « Cpuset support » permet d'activer les fonctionnalités de partitionnement du système en groupes de processeurs et de nœuds de mémoire sur les architectures multiprocesseur NUMA. La réponse recommandée est 'N'.

L'option « Create deprecated sysfs files » permet de prendre en charge à des fins de compatibilité ascendante certains fichiers du système de fichiers virtuel /sys/ qui sont devenus obsolètes. Ces fichiers ne doivent plus être utilisés de nos jours, aussi est-il recommandé de répondre 'N' à cette question, sauf si votre distribution est antérieure à 2006.

L'option « Kernel->user space relay support (formerly relayfs) » permet de prendre en charge une interface spéciale exposée par certains systèmes de fichiers virtuels permettant de transférer rapidement des grandes quantités de donnéesentre le noyau et l'espace utilisateur. La réponse recommandée est 'N

L'option « Initial RAM filesystem and RAM disk (initramfs/initrd) support » permet d'activer la gestion des système de fichiers virtuels en mémoire que les gestionnaires de chargement peuvent utiliser pour charger le système de fichiers racine lors du démarrage sans disque. Cette fonctionnalité est utilisée par les programmes d'installation, les disquettes de récupération et les Live CD de démonstration. Cette opion vous donnera accès à l'option « Initramfs source file(s) » et aux options « User ID to map to 0 (user root) » et « Group ID to map to 0 (group root) » , qui permettent d'activer la prise en charge du système initrd et d'indiquer respectivement un identifiant d'utilisateur et un identifiant de groupe pour les fichiers qui devront être affectés au superutilisateur dans le système de fichiers racine du disque virtuel. Cette n'étant généralement utilisée que pour les programmes d'installation, vous pouvez répondre 'N' à cette question.

L'option « Optimize for size (Look out for broken compilers!) » permet d'optimiser la compilation du noyau pour réduire sa taille. Certaines versions de GCC génèrent du code faux avec ces options, auquel cas une mise à jour s'imposera. La réponse recommandée est 'N'.

L'option « Configure standard kernel features (for small systems) » permet d'accéder à un sous-menu contenant des options de fonctionnalités que l'on désactive généralement lorsque l'on veut faire un noyau de petite taille, par exemple pour un système embarqué. Les options de ce sous-menu sont décrites ci-dessous. La réponse recommandée est 'N'.

L'option « Choose SLAB allocator » permet de choisir l'allocateur mémoire utilisé en interne pour les opérations de gestion mémoire courantes dans le noyau. Deux algorithmes sont disponibles, l'algorithme classique (SLAB) et un nouvel algorithme plus performant (SLUB). Le nouvel algorithme est appelé à remplacer l'ancien mais n'est pas forcément totalement stabilisé. Il est donc recommandé d'utiliser l'ancien algorithme pour quelques temps encore et la réponse recommandée est 'SLAB'.

A.1.1. Sous-menu « Configure standard kernel features (for small systems) »

L'option « Enable 16-bit UID system calls », permet de désactiver le support des appels systèmes utilisant les identifiants d'utilisateurs codés sur 16 bits, pour ne conserver que les appels systèmes 32 bits. La réponse recommandée est 'N', car des programmes peuvent encore utiliser des identifiants 16 bits.

L'option « Sysctl syscall support », permet d'activer l'appel système sysctl permettant de modifier les paramètres de configuration généraux du noyau. Cet appel système s'est avéré difficile à maintenir et a été remplacé par un accès plus simple à ces paramètres via le système de fichiers virtuel /proc/. Il est donc possible de désactiver cet appel système sur les systèmes les plus récents. Toutefois, on répondre 'Y' pour assurer la compatibilité ascendante.

L'option « Load all symbols for debugging/kksymoops », permet de supprimer les informations symboliques de débogage du noyau pour le cas où celui-ci planterait. Cela permet de réduire la taille du noyau sensiblement. La réponse recommandée est 'N'. La sous-option « Include all symbols in kallsyms » permet d'ajouter toutes les informations symboliques de déboguage au noyau. Ces informations ne sont pas utilisées par le noyau en général, mais peuvent l'être par certains débogueurs. La réponse recommandée est donc 'N'. La sous-option « Do an extra kallsyms pass » est une option qui ne doit normalement jamais être activée. Elle permet de contourner un bogue de génération du noyau qui est en attente de correction. La réponse recommandée est 'N'.

L'option « Support for hot-pluggable devices » permet d'activer la gestion des périphériques connectables à chaud (c'est-à-dire pendant que le système fonctionne). Parmi ces périphériques, on rencontre couramment les cartes PCMCIA des portables, mais également les périphériques USB et FireWire, ainsi que les cartes PCI connectables à chaud. Cette option est en particulier nécessaire pour l'utilisation des cartes PCMCIA sur les portables. Elle vous donnera l'accès au menu « PCCARD (PCMCIA/CardBus) support », qui permet d'activer la gestion des cartes PCMCIA 32 bits (cela n'est pas nécessaire pour utiliser les cartes PCMCIA 16 bits), au menu « PCI Hotplug Support », qui permet de prendre en charge la gestion des cartes PCI connectables à chaud, et à l'option « Hotplug firmware loading support », qui permet le chargement des firmwares via une interface standard du noyau par les gestionnaires de périphériques. Cette option est facultative, mais fortement conseillée, pour l'utilisation des périphériques USB. Ces périphériques ne seront parfois pas configurés automatiquement lorsque vous les connecterez à chaud si vous ne l'activez pas. En fait, pour que la configuration des périphériques USB connectés à chaud fonctionne, vous devez également activer la gestion des modules du noyau, ainsi que les options « Kernel module loader » et « Hotplug firmware loading support ». Si cette option est activée, le noyau appellera alors le programme de configuration udev, ou, selon votre distribution, le programme hotplug pour charger le gestionnaire de périphériques approprié lorsqu'un périphérique sera connecté et pour les configurer. La réponse recommandée est 'Y'.

L'option « Enable support for printk » permet d'activer les traces du noyau. Ces traces sont parfois désactivées afin d'en réduire la taille. Cette fonctionnalité est utile pour les systèmes embarqués, mais en exploitation normale ces traces sont souvent d'une grande aide. Aussi la réponse recommandée est-elle 'Y'.

L'option « BUG() support » permet d'activer le support des vérifications des des erreurs fatales ou irrécupérables dans le noyau. Ces vérifications sont parfois désactivées dans les systèmes embarqués, mais elles sont vivement recommandées pour les systèmes normaux. La réponse recommandée est 'Y'.

L'option « Enable ELF core dumps » permet de prendre en charge la fonctionnalité de vidage sur incident de la mémoire des processus dans les fichiers « core ». Supprimer cette fonctionnalité peut économiser un peu de mémoire. La réponse recommandée est 'Y'.

L'option « Enable full-sized data structures for core » permet d'autoriser l'utilisation des structures de données complètes des algorithmes du noyau. Certaines structures peuvent être réduites en taille, moyennant une perte de performances. Cela peut être utile pour les systèmes embarqués, mais pour les systèmes normaux, il faut répondre 'Y'.

L'option « Enable futex support » permet de réaliser des synchronisations rapides entre les différents processus utilisateurs. Cette fonctionnalité est nouvelle et n'est pas forcément utilisée par les applications des systèmes embarqués, auquel cas elle pourra être supprimée. Sur un système normal en revanche, cette option est intéressante, aussi la réponse recommandée est-elle 'Y'.

L'option « Enable eventpoll support » permet d'optimiser les opérations d'entrée/sortie des processus. Cette fonctionnalité étant récente, certains systèmes embarqués, qui ne l'utilisent pas, peuvent ne pas en avoir besoin. Un système classique en revanche peut en bénéficier, aussi la réponse recommandée est-elle 'Y'.

Les options « Enable signalfd() system call », , « Enable timerfd() system call », et « Enable imerfd() system call » permettent de prendre en charge des appels systèmes qui peuvent être utiles à des applications pour gérer les différents événements que le système d'exploitation peut produire de manière générique. Ces fonctionnalités sont très utiles et de nombreux programmes les utiliseront sous peu, aussi est-il recommandé de répondre 'Y' à ces questions.

L'option « Use full shmem filesystem » permet d'activer la gestion complète du système de fichiers virtuel /dev/shm/, qui est utilisé pour la gestion des segments de mémoire partagés. En désactivant cette option, ce système de fichiers est remplacé par un système de fichiers virtuel en mémoire plus léger, ce qui peut être utile pour des configurations sans swap. La réponse recommandée est 'Y'.

L'option « Enable VM event counters for /proc/vmstat » permet d'activer la prise en charge des statistiques concernant la gestion de la mémoire. Ces statistiques ne sont pas nécessaires pour le noyau, aussi est-il possible de ne pas les prendre en charge afin d'économiser de la place. La réponse recommandée est 'Y'.

L'option « Enable SLUB debugging support » permet d'activer la gestion des fonctions de déboguage et de diagnostic du nouvel allocateur mémoire SLUB. La réponse recommandée est 'Y'.