首页
社区
课程
招聘
[求助]windows 分段机制
发表于: 2008-12-2 09:15 6602

[求助]windows 分段机制

2008-12-2 09:15
6602
为什么很少有听到有人说windows分段机制的,咱们平时在反汇编所看到的是虚拟地址吧,它跟物理地址的转换必须先分段转成线性地址在分页成物理地址。。。但是我们实际推算物理地址的操作中都不考虑分段,直接把虚拟地址等价与线性地址,进行分页找物理地址。。。那么分段机制哪里去了,以前我一直以为windows是靠分段机制进行进程隔离的。。。那么windows到底是靠什么进行进程隔离的。。。思维极度混乱

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 331
活跃值: (57)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
windows只靠分页来隔离的
windows下虚拟地址=线性地址
windows下的CS,DS对应的段描述符实际指向的是同一个段(就一个4G的平坦段),只是使用了别名技术,顺便规定了访问权限
2008-12-2 10:22
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我建了驱动开发群,群号--67181435
2008-12-2 10:42
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
的确如better同学所说的虚拟地址=线性地址,我调试windows时也发现ring3下cs对应的段基址为0,表明ring3下虚拟地址跟线性地址数值上是相等的,这样我就混乱了。。。但是现在cs值固定,段基址不是都是0,如果有两个进程同时运行,那同样虚拟地址,岂不是都对应同样的线性地址,也就是说对应同样的物理地址,这样不会发生相互干扰吗。。。。
分页怎么隔离,是不是每个进程都有自己的cr3,然后定出不同的页目录,页表,以实现相同的虚拟地址也能定位到不同的物理地址??。。。。cr3是每个进程独有一份吗??,如果这样的话,貌似还可以实现隔离。。。。
2008-12-2 10:53
0
雪    币: 331
活跃值: (57)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
分页怎么隔离,是不是每个进程都有自己的cr3,然后定出不同的页目录,页表,以实现相同的虚拟地址也能定位到不同的物理地址??。。。。cr3是每个进程独有一份吗??,如果这样的话,貌似还可以实现隔离。。。。

that's right!!
2008-12-2 10:56
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
6
你说对了,每个进程都有自己的PDE,KeAttachProcess的主要工作也就是切换cr3
2008-12-2 10:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不需要去乱理解,进程A有4G可见内存地址,和物理地址有个对应关系,我们使用时 使用的是可见的内存地址,比如00400000,另一个进程B内也有00400000内存地址,进程A访问00400000,不会跑到B的00400000,各进程之间地址是独立的,不能互相访问的,只对当前进程可见,我们无法直接的访问物理地址,新手能真正的理解到这个简单的问题就不会感到莫名其妙的困惑了,我之前也困惑过。想研究内核和换页机制的sys kernel design的问题,以后再学咯!
2008-12-2 11:03
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
哦。。。谢谢ls几位大大的帮忙。。。昨晚想这个问题想了一个晚上,头脑混乱滴不行。。今天终于解决了。。。真开心。。
2008-12-2 11:32
0
游客
登录 | 注册 方可回帖
返回
//