Global Descriptor Table
Cet article est une ébauche concernant l’informatique.
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 la 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.

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é.
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 à l'amorçage).
Autres chargeurs
Utilisation de GDT par linux
Sous Linux, il n'existe qu'une seule 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 :
Sources
- Michael Tischer, Bible PC - Programmation Système. Micro Application, 1996.
- Volume III: Intel System Programming Guide (édition relative au Pentium IV)
Voir aussi
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.