深入理解Linux内核 - 第二章 内存寻址 04
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解Linux内核 - 第二章 内存寻址 04相关的知识,希望对你有一定的参考价值。
问题:段描述符中的字段含义?
段首地址的线性地址/偏移/粒度/特权限制等信息。
1,快速访问段描述符
在加载段选择符时,相应的段描述符被自动由内存装入对应的非编程CPU寄存器。装入后就不再访问主存中的GDT或LDT。
2,段选择符的字段
index:指定了放在GDT或LDT中相应段描述符的入口
TI:0 GDT 1 LDT
RPL:特权级,特指装入CS段中当前CPU的特权级。
3,段描述符地址换算
GDT地址:0x00020000
index:2
地址:0x00020000+(2*8))0x00020010
GDT最大数目2的13次方-1个。 原因:index刚好16-3=13位。
Linux上的分段:鼓励程序员将程序划分成逻辑上相关的实体,Linux却很有限地使用分段。分段和分页有点多余,他们都可以划分进程的物理地址空间。
分段可以将一个进程分配到不同的线性地址空间,分页可以把同一线性地址空间映射到不同的物理地址。Linux更喜欢分页方式。
Linux的user CS uesr DS kernel CS kernel DS都是0,说明没有用分段来映射不同的线性地址空间。所有的程序都使用了几乎相同的线性地址空间。
以上是关于深入理解Linux内核 - 第二章 内存寻址 04的主要内容,如果未能解决你的问题,请参考以下文章