bzimage
bzimage fait référence à un fichier d'image compressé du noyau utilisé par le bootloader Linux pour charger et initialiser le noyau pendant le démarrage du système. Le logiciel d'amorçage lit le fichier bzimage du dispositif d'amorçage et le décompose en mémoire. Il transfère ensuite le contrôle à l'image décompressée du noyau, qui poursuit le processus d'amorçage.
Le fichier bzimage est le sous-produit de la compilation du code source du noyau Linux, qui inclut la fonctionnalité principale du noyau, les pilotes de périphérique et d'autres éléments vitaux. Lorsque nous compilons le noyau, il génère vmlinux. Cependant, vmlinux est trop grand pour s'adapter dans la mémoire finie disponible pendant le démarrage (le premier 640KB de RAM
). En conséquence
, nous comprimons le fichier vmlinux en une taille plus petite (souvent comprimée en dessous de 512KB) en utilisant l'utilitaire gzip, créant le fichier d'image bzimage.
Le processus de compression réduit considérablement la taille de l'image du noyau, ce qui facilite le processus de démarrage. Le « bz » dans bzimage signifie « big zipped » car nous comprimons l'image du noyau en utilisant l'algorithme de compression gzip.
Examinons quelques-uns des composants présents dans le fichier bzimage.
Tout d'abord, nous avons l'en-tête de la chargeuse de démarrage, qui contient des informations dont le chargeur de démarrage a besoin pour charger et exécuter l'amande. Cet en-tête fournit des détails comme la version amande, la taille du noyau comprimé, le décalage de l'amande comprimé, et l'emplacement du disque RAM initial (
initrd) s'il est présent.
L'itrd est un système de fichiers racine temporaire chargé en mémoire pendant le processus d'amorçage avant que le système de fichier racine réel ne soit monté.
Ensuite, nous avons le fichier bzimage contenant l'image du noyau compressé. Cette image comprend tout le code et les données nécessaires pour initialiser le noyau et démarrer le système d'exploitation. Il se compose du point d'entrée du noyau, des routines d'initialisation, des pilotes de périphérique, des systèmes de fichiers, etc.