• [^] # Re: Taille du noyau

    Posté par . En réponse à la dépêche Entretien avec Linus Torvalds sur ZEIT ONLINE. Évalué à 9.

    La taille d'un noyau compilé reflète mieux la complexité du noyau.

    Noyau 2.4.37 allnoconfig: vmlinux:590 Ko
    Noyau 3.1 allnoconfig: vmlinux:1885 Ko
    Rapport: 3,2
    Ça représente le code inertiel du coeur du système (gestion de la mémoire et du CPU), sans aucune gestion matérielle.

    Noyau 2.4.37 avec support matériel minimal (generic ATA + VGA console + AC97 + RTL8139 + IPv4 + UHCI+OHCI+HID + SMP) sur ma machine: vmlinux:1382 Ko
    Noyau 3.1 compilé avec les mêmes options: vmlinux: 4571 Ko (et seulement 4056 Ko si on vire SMP)
    Rapport: 3,3
    Ça représente le code inertiel des sous-systèmes de base: PCI, entrées/sorties disque, VFS, pile réseau, ATA, USB.
    Ces sous-systèmes ont l'air d'avoir augmenté dans les mêmes proportions que le coeur du système.

    Enfin, le code complet:
    Taille de linux-2.4.37.tar non comprimé: 175 Mo
    Taille de linux-3.1.tar non comprimé: 454 Mo
    Rapport: 2,6

    Paradoxalement, bien que le code central du noyau (coeur+sous-systèmes de base) soit en proportion, beaucoup plus petit que le code des pilotes (4571 Ko de code binaire correspond peut-être à 3 ou 4 fois plus en taille source, soit, au maximum une vingtaine de méga sur 454, soit moins de 5% du code total) il semblerait que la complexité d'un noyau basique (facteur environ égal à 3.3) ait un peu plus augmenté que le nombre (multiplié par la taille) des pilotes gérés (facteur environ égal à 2.6).

    Tous ces chiffres sont à prendre avec des pincettes, mais j'espère que ça donne une idée de l'évolution.