Vmlinux

Sur des systèmes du Linux , le vmlinux est un dossier exécutable statiquement lié du qui contient le grain de Linux de dans un des formats de fichier exécutables soutenus par Linux, y compris le ELF , le COFF et le a. Le dossier du vmlinux de pourrait être exigé pour l'élimination des imperfections de grain, produisant de la table des symboles ou d'autres opérations, mais doit être rendu amorçable avant d'être employé comme grain du système d'exploitation en ajoutant un en-tête du multiboot , un bootsector et des routines d'installation.

Endroit

Traditionnellement, le grain est situé dans le répertoire racine de la hiérarchie de système de fichiers ; cependant, car le chargeur-amorce doit employer des conducteurs de BIOS pour accéder au disque dur , les limitations sur quelques systèmes du I386 ont signifié que seulement le les 1024 premiers cylindres du disque dur étaient accessible.

Pour surmonter ceci, les distributeurs de Linux ont encouragé des utilisateurs à créer une cloison au début de leurs commandes spécifiquement pour stocker le chargeur-amorce et le grain a rapporté des dossiers. le VER , le LILO et le SYSLINUX sont les chargeurs-amorce communs.

Par convention, cette cloison est monté sur la hiérarchie de système de fichiers comme /boot. Ceci plus tard a été normalisé par la hiérarchie standard de système de fichiers de , ou le FHS , qui exige maintenant de l'image de grain de Linux d'être située dans / ou /boot, bien qu'il n'y ait aucune restriction technique imposant ceci.3

Compression

Traditionnellement, en créant une image amorçable de grain, le grain est également comprimé par using l'algorithme de Zlib , qui exige d'un moignon très petit de la décompression d'être inclus dans l'image en résultant. Le moignon décomprime le code de grain, sur l'impression de quelques systèmes pointille à la console pour indiquer le progrès, et puis continue le processus de botte.

La routine de décompression est un facteur négligeable dans le temps de botte, et avant le développement du bzImage de , les contraintes de taille de quelques architectures, notamment i386, étaient extrêmement limitation, faisant à compression une nécessité.

Sur l'architecture de SPARC , le dossier de vmlinux est comprimé using le simple Gzip , parce que le chargeur de botte du SILO décomprime d'une manière transparente des images gzipped.

< ! -- quelle convention ! ? plutôt " ; often" ; ou " ; usually" ; mais il n'y a aucune convention… --> Le nom de fichier de l'image amorçable n'est pas important, mais par convention il s'appelle vmlinuz ou le zImage.

bzImage

Pendant que le grain de Linux mûrissait, la taille des grains produits par des utilisateurs s'est développée au delà des limites imposées par quelques architectures, où l'espace disponible stocker le code comprimé de grain est limité.

Le format du bzImage (zImage d'ig de b ) a été développé pour surmonter cette limitation en dédoublant abilement le grain au-dessus des régions discontiguous de la mémoire .

Le format du bzImage de est encore comprimé using l'algorithme de zlib. Bien qu'il y ait l'idée fausse populaire que le BZ que le préfixe de signifie que la compression du Bzip2 est employée (le paquet bzip2 est souvent distribué avec des outils mis en tête avec le BZ , tel que le bzless, le bzcat , etc.), ce n'est pas le cas.

Le dossier de bzImage est dans un format spécifique : Il contient enchaîné bootsect.o contient le dossier gzipped de vmlinux dans sa section de données (ELF) (voir comprimé/fichier makefile piggy. Tous les fichiers source mentionnés sont dans arch/i386/boot/.

Aucun outil spécifique n'existe pour déballer le dossier de bzImage, mais là existe un manuscrit appelé extraient-ikconfig, qui décomprime l'image et les extraits établissent des directives de configuration de l'image. On peut la modifier pour obtenir l'image décomprimée directement. Quelques distributions (par exemple Red Hat et des clones) peuvent venir avec un grain-debuginfo T/MN qui contient le dossier de vmlinux pour le grain assorti T/MN, il obtient typiquement installée sous l'uname de `de /usr/lib/debug/lib/modules/- le `/vmlinux de r

Voir également ce poteau de LKML et le cet article.

Étymologie

Traditionnellement, plates-formes d'UNIX appelées l'image /unix de grain. Avec le développement de la mémoire virtuelle virtuelleee , des grains qui ont soutenu ce dispositif ont été donnés le préfixe de la VM pour les différencier. Le vmlinux nommé de est une mutation de Vmunix , alors que dans le vmlinuz de le z de lettre à l'extrémité dénote qu'il est comprimé.

Format exécutable

C'est l'en-tête d'ELF d'une image exécutable du grain i386 2.

 $ de readelf - vmlinux de h En-tête d'ELF : Magie : 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Classe :      ELF32 Données :     le complément de 2, peu endian Version :     1 (courant) OS/ABI :     UNIX - système V Version d'ABI :     0 Type :     EXEC (dossier exécutable) Machine :     Intel 80386 Version :     0x1 Adresse de point d'entrée :   0xc019d000 Début des en-têtes de programme :  52 (bytes dans le dossier) Début des intitulés :  3135092 (bytes dans le dossier) Drapeaux :      0x0 Taille de cet en-tête :   52 (bytes) Taille des en-têtes de programme :   32 (bytes) Nombre d'en-têtes de programme :  3 Taille des intitulés :   40 (bytes) Nombre d'intitulés :  33 Index de tableau de chaîne d'intitulé : 30 

Voir également

Grain de Linux de
Module de (Linux)

.

Random links:Danny Carey | Bagram | Umzinto, KwaZulu-Natal | Petite fille étrange | Dumbarton (collège électoral BRITANNIQUE du Parlement) | Vmlinux