类型字段(Type字段,4位) >例如代码段、数据段、任务状态段、局部描述符段等等 段的特权级描述字段(DPL字段,2位) >00b:只能被CPL=00b的内核代码段访问 Descriptor > Privilege Level >11b:可以被任意代码段访问 冬段存在标志(1位) S >0:该段当前不在内存中 >1:该段当前在内存中 嵌入式系统实验室 2023/7/14 Linux OS Analysis 13/54 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 13/54 ❖ 类型字段(Type字段,4位) ➢ 例如代码段、数据段、任务状态段、局部描述符段等等 ❖ 段的特权级描述字段(DPL字段,2位) ➢ 00b:只能被CPL=00b的内核代码段访问 ➢ .. ➢ 11b:可以被任意代码段访问 ❖ 段存在标志(1位) ➢ 0:该段当前不在内存中 ➢ 1:该段当前在内存中 ❖ … Descriptor Privilege Level
段描述符的格式 Data Segment Descriptor 636261605958575655545352515049484746454443424103938373635343332 A UMIT D BMSE24-31) (1619到 TYPE BASE(16-23) BASE(0-15) LIMIT (0-15) 段基址、 313029282726252423222120191817161514131211109876543210 段长度、 其他属性 Code Segment Descriptor 例如,0x00cf9a000000ffff 6362616059585756555453525150494847464544434241403938373635343332 UMIT D BMSE24-31) G (16-19明 1 TYPE BASE(16-23) BASE(0-15) LWT0-15) 313029282726252423222120191817161514131211109876543210 System Segment Descriptor 6362616059585756555453525150494847464544434241403938373635343332 UMIT D BASE24-31) 0 (1619叨 1 TYPE 8ASE16-2B) 0 BASE(0-15) LIMIT (0-15) 统实验室 "EM LAB口RATORY 313029282726252423222120191817161514131211109876543210 YANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 14/54 段描述符的格式 段基址、 段长度、 其他属性 例如,0x00cf9a000000ffff
15 2 1 index TI RPL Segment selector 16位段寄存器与GDT或LDT配合起来对相应的段 进行寻址 段寄存器中的值称为段选择子,16位 >13位的索引,指定GDT表中的相应的段描述符 >l位的TI(Table Indicator) (跟LDT表有关,Linux中基本未使用) >2RPL(request privilege level) 当相应的段选择符装入到cs寄存器中时,表明了CPU 的当前特权级(用户/内核) Science and Technolo 嵌入式系统实验室 2023/7/14 Linux OS Analysis 15/54 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux OS Analysis 15/54 段选择子(Segment Selector) ❖16位段寄存器与GDT或LDT配合起来对相应的段 进行寻址 ❖段寄存器中的值称为段选择子,16位 ➢13位的索引,指定GDT表中的相应的段描述符 ➢1位的TI(Table Indicator) (跟LDT表有关,Linux中基本未使用) ➢2位RPL(request privilege level) 当相应的段选择符装入到cs寄存器中时,表明了CPU 的当前特权级(用户/内核) index TI RPL 15 2 1 0 Segment selector
段选择子的使用和段描述符的快速访问 段 描述符表 ■ 段描述符 段寄存器 非编程寄存器 段选择子 段描述符
2023/7/14 Linux OS Analysis 16/54 段选择子的使用和段描述符的快速访问 段寄存器 段选择子 段描述符 描述符表 段 ( ) 非编程寄存器 段描述符
逻辑地址到线性地址的转换 GDT或LDT 线性地址 Descriptor GDTR或LDTR 8 选择子 偏移 Index 逻辑地址 王 BUZHOU INSTITUTE FON ADVANCED STUDY OF UBIU
2023/7/14 Linux OS Analysis 17/54 逻辑地址到线性地址的转换 GDT或LDT GDTR或LDTR 选择子 偏移 线性地址 逻 辑 地 址