fbpx
维基百科

全局描述符表

全局描述符表 (GDT) 是一个从 Intel x86-系列处理器 80286 开始用于界定不同内存区域的特征的数据结构。 全局描述表位于内存中。全局描述表的条目描述及规定了不同内存分区的各种特征,包括基地址、大小和访问等特权如可执行和可写等。 在 Intel 的术语中,这些内存区域被称为  。

全局描述表用于内存地址的转换。所有程序的内存访问都需要用到GDT中的有关内存区域即x86内存分段的信息。访问GDT需要使用segment selector和segment offset。处理器使用segment selector为索引查找GDT的条目。当适当的条目找到后,处理器将会做一系列的检查,包括检查segment offset尝试访问区间是否在此内存分段内,代码是否有权限访问此内存分段(检查分级保护域权限)等。[1]

为了加速全局描述表的访问,往segment寄存器里载入segment的值会使得GDT的特定条目被读入处理器内部的缓存中。之后的内存访问将会通过缓存进行处理。

GDT条目结构


GDT作用

GDT的是提供内存保护。在80286之前的处理器中只有实模式,所有程序都可访问任意内存。GDT是保护模式下限制非法内存访问的一种方式。

GDT 结构 

GDT description structure

 

GDT description structure描述了GDT的位置及大小(并非GDT的一部分)。储存于GDTR 寄存器中。可通过LGDTR指令从内存中往GDTR中加载GDT description structure。

  • Size: GDT的大小(bytes) - 1
  • Offset: GDT的线性地址

GDT

GDT实例

gdt:  .long 0  .long 0 code_seg:  .long 0x0000FFFF  .long 0x00CF9A00 data_seg:  .long 0x0000FFFF  .long 0x00CF9200 gdt_ptr:  .short 0x100  .long gdt 

参考文献

  1. ^ GDT Tutorial - OSDev Wiki. wiki.osdev.org. [2019-08-12]. (原始内容于2019-08-12). 

全局描述符表, 本條目存在以下問題, 請協助改善本條目或在討論頁針對議題發表看法, 此條目需要編修, 以確保文法, 用詞, 语气, 格式, 標點等使用恰当, 2020年3月5日, 請按照校對指引, 幫助编辑這個條目, 幫助, 討論, 此條目需要精通或熟悉相关主题的编者参与及协助编辑, 2020年3月5日, 請邀請適合的人士改善本条目, 更多的細節與詳情請參见討論頁, 此條目需要擴充, 2018年6月4日, 请協助改善这篇條目, 更進一步的信息可能會在討論頁或扩充请求中找到, 请在擴充條目後將此模板移除, 是一个从,. 本條目存在以下問題 請協助改善本條目或在討論頁針對議題發表看法 此條目需要編修 以確保文法 用詞 语气 格式 標點等使用恰当 2020年3月5日 請按照校對指引 幫助编辑這個條目 幫助 討論 此條目需要精通或熟悉相关主题的编者参与及协助编辑 2020年3月5日 請邀請適合的人士改善本条目 更多的細節與詳情請參见討論頁 此條目需要擴充 2018年6月4日 请協助改善这篇條目 更進一步的信息可能會在討論頁或扩充请求中找到 请在擴充條目後將此模板移除 全局描述符表 GDT 是一个从 Intel x86 系列处理器 80286 开始用于界定不同内存区域的特征的数据结构 全局描述表位于内存中 全局描述表的条目描述及规定了不同内存分区的各种特征 包括基地址 大小和访问等特权如可执行和可写等 在 Intel 的术语中 这些内存区域被称为 段 全局描述表用于内存地址的转换 所有程序的内存访问都需要用到GDT中的有关内存区域即x86内存分段的信息 访问GDT需要使用segment selector和segment offset 处理器使用segment selector为索引查找GDT的条目 当适当的条目找到后 处理器将会做一系列的检查 包括检查segment offset尝试访问区间是否在此内存分段内 代码是否有权限访问此内存分段 检查分级保护域权限 等 1 为了加速全局描述表的访问 往segment寄存器里载入segment的值会使得GDT的特定条目被读入处理器内部的缓存中 之后的内存访问将会通过缓存进行处理 GDT条目结构 目录 1 GDT作用 2 GDT 结构 2 1 GDT description structure 2 2 GDT 3 GDT实例 4 参考文献GDT作用 编辑GDT的是提供内存保护 在80286之前的处理器中只有实模式 所有程序都可访问任意内存 GDT是保护模式下限制非法内存访问的一种方式 GDT 结构 编辑GDT description structure 编辑 GDT description structure描述了GDT的位置及大小 并非GDT的一部分 储存于GDTR 寄存器中 可通过LGDTR指令从内存中往GDTR中加载GDT description structure Size GDT的大小 bytes 1 Offset GDT的线性地址GDT 编辑GDT实例 编辑gdt long 0 long 0 code seg long 0x0000FFFF long 0x00CF9A00 data seg long 0x0000FFFF long 0x00CF9200 gdt ptr short 0x100 long gdt参考文献 编辑 GDT Tutorial OSDev Wiki wiki osdev org 2019 08 12 原始内容存档于2019 08 12 取自 https zh wikipedia org w index php title 全局描述符表 amp oldid 62057285, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。