Dernière modificiation le 30/11/2007
Le site des Hiboux

Les options du noyau Linux

Incidence des options de compilation sur le poid du kernel

rechercher sur le site accueil Linux Favoris Linux
 

Ni vraiment modulaire, ni vraiment tout à fait monolithique, le noyau Linux peut poser des problèmes de poid pour les architectures anciennes que la responsabilité envers l'environnement devrait interdire de jeter à la nature, tout autant que pour les systèmes embarqués dont les caratéristiques techniques sont les plus souvent encore plus sévères que celles de l'ordinnateur de base des années 1990. Cette page vous donne des mesures de l'incidences de certaines options de compilation sur le poid du noyau, ce qui vous sera utile à savoir quoi élaguer et quoi conserver.

Commentaires sur le choix des options

On pourra répartir les options de compilation du noyau en trois catégories principales. Les options devront êtres traitées d'une manière appropriée à la catégorie à laquelle elles appartiennent.

  • Options de l'API système
  • Options de l'implémentation du système
  • Options de support du matériel

Les options ayant un impact sur l'API système devraient être celles que l'on supprimera en dernier recours. Le plus souvent, si le support d'une fonction de l'API Linux pose des problèmes de poid, il faudra en premier lieu tenter de réduire le poid de son implémentation. Si cela n'est pas possible, il faudra effectuer des prévisions à long terme sur les conscéquences de l'abscence de telles ou telles fonctionnalité.

Les options agissant sur l'implementation sont assez rares, car l'implementation est assez statique. C'est une bonne chose, en soi, car c'est ce qui garantie la stabilité du système : une implémentation est d'autant plus stable qu'elle est connue et qu'elle a connu un usage de longue date.

Les options de support du matériel sont les plus souples parmis toutes, mais sont aussi celles qui en pratique génèrent le plus de deceptions potentielles. Les pilotes de périphérique sont d'ailleur la première source de « plantages » avec les systèmes d'exploitation destinés aux utilisations de type « bureautique et loisir ». Contrairement aux choix d'options impactant l'API système et son implémentation, les options impactants le support du matériel devront êtres évaluées auprés d'un certain nombres de personnes équipées de matériels de types différents, avant d'être considérées comme validées (contrairement aux aspects logiciels qui peuvent êtres évalués par une seule personne sur une seule machine, car plus abstraits).

Table des poids des options principales

Les poids sont donnés en K avec 1K = 1000 au lieu de 1024, et sont donnés pour un support en dur. Les mesures sont faites en compilant un noyau 2.6.23, procédant simplement comme suit : compilation sans l'option cible, ajout de l'option, recompilation, puis mesure de la différence de poid des deux versions du noyau. Ce sont ces différences de poid qui sont indiquées dans le tableau qui suit. En raison du temps que prend cette méthode (mais il n'est pas possible d'opérer autrement), seuls les poids des options les plus importantes ou les plus courement manipulées on été mesurés.

Poids des options du noyau
Option Poid moyen Commentaires
System V IPC 20K Standard sous Linux
POSIX Message Queue 18K Le poid réel devrait intégré le poid du sous système reseau, surlequel repose cette option
SLUB Allocator SLOB + 110K Le poid est donné relativement par rapport à celui de SLOB
SLAB Allocator SLOB + 13K Le poid est donné relativement par rapport à celui de SLOB
SLOB Allocator SLOB + 0K Le poid est donné relativement par rapport à celui de SLOB
Hot-Plug 7K En pratique il faudrait y ajouter le poid du support pour le PCI
Futexe 10K API système, mais rarement utilisée
Eventpoll + Signalfd + Eventfd 11K *
SHMem (POSIX shared memory support) 10K *
Module support 100K Option de base, sans le support forced-unload et module-versioning
Module versioning 120K Option du support de la version des modules en elle-même seule
Module auto load 2K Option de chargement automatique en elle-même seule (ajoutez-y le poid du support dans l'espace utilisateur)
Power management 2K *
ISA/EISA 19K *
PCI [Any] 131K L'option PCI-Any pèse à peine plus lourd que l'un des trois autres mode d'accès exclusif
PCI [Direct] 129K *
PCI [BIOS] 130K *
PCI [MMC] 128K *
ELF Support 11K *
Floppy drive 41K *
IDE/ATA2 10K *
IDE/MFM/RLL 51K *
Boot logo 4K Avec un logo en 16 couleurs
VGA Support + 8x12 font 191K *
AT Keyboard 11K *
Ext2 41K *
LoopBack 10K *
Support de base pour le son 100K Pilotes génériques pour le wave et le MIDI
Mouse interface + Série + PS/2 12K *
Joystick interface + classic joystick 10K *
Misc interface + PC Speaker 1K *
Zip parellèle SCSI 95K *

En pratique, un noyau avec un support descent pour un PC/AT pése environ 1390K, et un noyau avec un support descent pour un PC plus récent pèse environ 1800K (non compressé).

Google
 
Index

Comprendre l'installation Linux

Suite de cette page

Le processus permanent Init

Page dont celle-ci est la suite

Comprendre l'architecture des PC

Accueil du site

Accueil

Contact

Contact

Lien inactif

Info