"指针运算"跟"实地址内存",内存映射...有什么关系?

方小葱 发布于 2014/02/14 11:07
阅读 1K+
收藏 3

【Gopher China万字分享】华为云的Go语言云原生实战经验!>>>

我请教一下: "由于没有指针运算,系统可以直接使用“实地址”模式进行内存管理,从而不再需要现代处理器提供的内存映射机制以及 TLB。"

大家对这句话的理解是什么?其中的因果关系什么?我完全被他搞蒙了!

以下是问题补充:

@方小葱:我对他们的因果逻辑关系是这样看的:没有指针->不会有任何安全问题存在(也就不需要任何安全保护机制)->于是就不需要使用虚拟地址了! 但是我觉得这种因果关系是不正确的,首先没有指针并不会消除不同权限代码之间相互串门导致的安全问题,在我看来汇编(或者机器语言)并没有指针这个概念,唯一相似的东西是"间接寻址"!就算没有间接寻址也不能保证系统的安全!只要做能内存寻址 ,这种安全问题就是必然存在的! (2014/02/14 13:02)
加载中
0
方小葱
方小葱
@中山野鬼 鬼哥求教一下!
0
0
方小葱
方小葱
@Toxsch 为什么@不到你?
Toxsch
Toxsch
不知道,bug吧
0
方小葱
方小葱
这个问题 @红薯 薯哥,为什么没人鸟我的?请大神出马解答一下?
0
方小葱
方小葱
@铂金小猪 猪,你怎么看?
铂金小猪
铂金小猪
不懂吖
方小葱
方小葱
回复 @铂金小猪 : 猪哥,从语文的角度来讲这句话的因果先后关系是不是:(由于)没有指针运算->所以(没有任何安全问题)不需要地址保护,直接实地址访问具体设备->(从而)不需要内存映射和TLB?
铂金小猪
铂金小猪
我主业是医院设备科工程师。
方小葱
方小葱
回复 @铂金小猪 : 业余前端,主业应该很强啊?好吧!猪哥觉得谁能帮我解惑?
铂金小猪
铂金小猪
不懂啊,猪哥只是个业余前端
0
i
ibmo

内存映射机制和TLB可以实现不同进程地址空间的独立。没有指针运算的话,一个程序就不能到访问另外一个程序的地址空间,因此就不需要内存映射了。

i
ibmo
回复 @方小葱 : 内存映射一个很大的作用确实是实现进程空间的独立,但是可能也有其他的作用。 http://wenku.baidu.com/view/f9c02c2d4b73f242336c5fc7.html
方小葱
方小葱
你确定吗?
0
Brin想写程序
Brin想写程序

这句话的逻辑有点狭隘了。其实没啥道理。

估计说的是早期CPU和EMS延伸来的问题。

不过这种也是微软的商业上的兼容概念带来的后果之一。在64位CPU的时代,直接用实地址是有可能的。但是这样要动x86 CPU的设计了,现在商业上应该行不通。


方小葱
方小葱
回复 @gvim : 哥跟你一样是国产货啊!其实我只希望你来证明以下我是对的!-_-!这个世界很多人讨论问题的方式很奇怪,好多挺科学家的上来一句"你远没达到他的高度",然后就....跟他们讨论实际问题的时候就会说"反正了"(反正...就...我不予置评!)!
gvim
gvim
回复 @方小葱 : 要讨论也应该是"protected"而不是“保护”,洋货用汉字来讨论也是骨科医生的干活,别纠结字眼了,这行当里名不其实的东西太多了。
方小葱
方小葱
弱弱的问一句: @gvim 你觉得"保护"是什么意思啊?
方小葱
方小葱
回复 @Brin想写程序 : GTD或者LTD中的描述符(貌似是六十四位的)其中除了描述一段内存的其实地址和最大偏移,内存粒度...具体多少位忘了,还有同样的2为一段内存的权限描述!计算机在寻址的时候会自动的比较寄存其中的权限为和描述符中的权限位来确定是否允许访问内存!分页模式也差不多是这样的概念!
方小葱
方小葱
回复 @Brin想写程序 : 早期的分段是为了让16位寄存器和16位偏移地址"组合相加"之后获得20位的寻址能力的,后来因为历史原因这种机制被保留了下来,在保护模式下段寄存器有13位表示索引,1位好像是确定GTD还是LTD的,剩下的两位可表示四个安全级别!是不是这样啊?
下一页
0
piyoma
piyoma
楼主去查一下什么叫保护模式就知道了
方小葱
方小葱
回复 @piyoma : 首先我对这些概念是清楚的啊,然后我对他的话的语法上的逻辑(因果)关系不是很明白,因为按照我的理解,这样的因果关系是不正确的,没有指针并不能消除不同权限的代码相互串门!不能消除任何权限引起的安全问题!---是这样么?恕我愚钝!
piyoma
piyoma
看了每个回复,楼主又明白又糊涂的回答真是让人搞不懂
方小葱
方小葱
哥知道什么事保护模式!!我只问这句话的(语法)逻辑:没有指针->不会有任何安全问题存在(也就不需要任何安全保护机制)->于是就不需要使用虚拟地址了!
返回顶部
顶部