能力值:
( LV9,RANK:260 )
|
-
-
2 楼
1.应该是windows内存管理设计的原因.所谓gdt或者ldt其实都是可以存段选子的.(具体是什么类型的段选择字已经不记得了)
windows在设计内存处理的之初,为了方便,用户模式下的段选择子就是lz的那几个值(应该一般是不会变的).建议lz使用syser|softice|icesword具体看一下这几个具体的段选择字所代表的段基址及其limit即可知23类基本没有什么"选择"作用,因为base addr=0,则虚拟地址直接等于线性地址了(不知道记忆是否出错了)
2.如上所述,段选择子只是一个分段功能...具休还得看page directory table&page table对内存进行分页.不同的进程在cr3是不同的,也就是说其有着不同的page directory table&page table.因此具体的物理地址就不同了.这样就达到一个虚拟内存的功能.
3.因许久没有搞底层了.有一些不记得了.有错,勿怪.推荐楼主看:<intel manuals>.那里都有,然后使用一些工具(ie.syser|softice|od)验证一下.这种问题就会迎刃而解了.
---
尽量自己先试着解决问题,在问问题的同时,试着自己解决问题.
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
windows 是没有LDT的
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
第二点好像不对吧?cr3不同,虚拟地址还可能相同,进程隔离关键不在CR3,而是空闲物理页管理吧?
|
能力值:
(RANK:260 )
|
-
-
5 楼
现代操作系统,包括WINDOWS,保护的实现通常完全不使用(或几乎不使用)分段机制,主要是通过分页机制来实现保护,因为分页机制更加通用,在多种平台的硬件中都有支持,而分段机制只是x86系统的一种遗留保留下来,因此很少使用。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
1 不明白
2 使用不tongue的CR3,就可以是相同的线性地址对应不通的物理地址。
你可以去看看于渊的 第三章 pmtest8.asm
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
可以看看于渊的《自己动手写操作系统》,应该是第三章里面有的!
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
学习了!谢谢
|
|
|