Global Descriptor Table

Global Descriptor Table

La Table globale de descripteurs ( GDT : Global Descriptor Table en anglais ) est une structure de données utilisée par les processeurs de la famille x86 (le premier à l'avoir utilisée est le Intel 80286) pour référencer les descripteurs de segment les plus utilisés par les processus.

C'est une partie spéciale de la mémoire principale utilisée dans le mode protégé. Dans ce mode, au contraire du mode réel, on ne peut pas accéder comme on le désire à n'importe quelle portion de la mémoire. La gestion de la mémoire en mode protégé est plus complexe, mais offre de nombreux avantages dont la protection de l'espace d'adressage de chaque programme.

En mode protégé, les adresses de segments contenues dans les registres de segments CS, DS, ES et SS ont toujours 16 bits mais ne représentent plus des endroits physiques. Les registres de segments contiennent des "sélecteurs", dont une partie sert d'indice dans GDT où se trouvent décrits les segments de la mémoire. En consultant cette table, le processeur prend connaissance de l'adresse de base du segment. Enfin l'adresse finale est déterminée en ajoutant un décalage donné sous la forme d'un pointeur FAR à l'adresse trouvée.

Schéma de principe de la segmentation avec la GDT.


La structure d'un sélecteur est la suivante :

  • bit 0 à 1 : RPL → Requested Privilege Level, c'est-à-dire le niveau de privilège du segment référencé.
  • bit 2 : TI → Task Indicator, indique si l'index est relatif à la GDT ou à une LDT (Local Descriptor Table)
  • bit 3 à 15 : INDEX → indice dans la GDT ou une LDT.


Les 8 premiers indices de la GDT sont réservés à une utilisation particulière. L'indice 0 de la GDT n'est pas utilisé.

Sommaire

Utilisation de GDT par Windows

Chargeur d'amorçage NTLDR

Le chargeur d'amorçage NTLDR fait passer le processeur du mode réel au mode protégé (voir Processus de démarrage de Windows NT#Phase de chargement au boot).

Autres chargeurs

Utilisation de GDT par linux

Sous Linux, il n'existe qu'une seul GDT par processeur. En effet, Linux n'utilisant que très peu la segmentation, les adresses linéaires correspondent aux adresses logiques et sont donc identiques pour tous les processus (systèmes ou utilisateurs).

Voir les chargeurs d"amorçage de linux :

Voir aussi

Sources

  • Michael Tischer, Bible PC - Programmation Système. Micro Application, 1996.
  • Volume III: Intel System Programming Guide (édition relative au Pentium IV)

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Global Descriptor Table de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Global Descriptor Table — The Global Descriptor Table or GDT is a data structure used by Intel x86 family processors starting with the 80286 in order to define the characteristics of the various memory areas used during program execution, for example the base address, the …   Wikipedia

  • Global Descriptor Table — Die Global Descriptor Table ist eine Tabelle, die von Intels Protected Mode verwendet wird, um den Speicher, Multitasking, und verschiedene Gates zu verwalten. In ihr haben maximal 8192 Deskriptoren zu je acht Bytes Platz. In der GDT können… …   Deutsch Wikipedia

  • Local Descriptor Table — The Local Descriptor Table (LDT) is a memory table used in the x86 architecture in protected mode and containing memory segment descriptors: start in linear memory, size, executability, writability, access privilege, actual presence in memory,… …   Wikipedia

  • Table globale de descripteurs — Global Descriptor Table La Table globale de descripteurs ( GDT : Global Descriptor Table en anglais ) est une structure de données utilisée par les processeurs de la famille x86 (le premier à l avoir utilisée est le Intel 80286) pour… …   Wikipédia en Français

  • Segment descriptor — In memory addressing for Intel x86 computer architectures, segment descriptors are a part of the segmentation unit, used for translating a logical address to linear address. Segment descriptors describe the memory segment referred in the logical… …   Wikipedia

  • File Allocation Table — For other uses, see Fat (disambiguation). FAT Developer Microsoft Full Name File Allocation Table FAT12 (12‑bit version) FAT16/FAT16B (16‑bit versions) FAT32 (32‑bit version with 28 bits used) Introduced …   Wikipedia

  • GDTR — Global Descriptor Table Register (Computing » General) …   Abbreviations dictionary

  • GDT — • Global Descriptor Table • Grand Turk, British West Indies internationale Flughafen Kennung …   Acronyms

  • GDTRC — Global Descriptor Table Register Cache …   Acronyms

  • GDTRC — Global Descriptor Table Register Cache …   Acronyms von A bis Z

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”