码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2017-08-25 01:12:26      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:物理   没有   空间   编程   访问   地址   相关   user   问题:   

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

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

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

标签:物理   没有   空间   编程   访问   地址   相关   user   问题:   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!