首页 > 系统服务 > 详细

深入理解Linux内核 - 第二章 内存寻址 04

时间:2017-08-25 00:34:05      阅读:239      评论:0      收藏:0      [点我收藏+]

问题:段描述符中的字段含义?  

段首地址的线性地址/偏移/粒度/特权限制等信息。

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

原文:http://www.cnblogs.com/fresh-fish/p/7425786.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!