_nosay
发表于 2016-06-22 14:04
回复 10# amarant
感谢版主的鼓励,我还是新手,问的多,回答的少。
amarant
发表于 2016-06-22 16:00
回复 11# _nosay
年轻人好好学,振兴cu就靠你们拉。
forxy
发表于 2016-06-23 21:10
谢谢!回复 9# _nosay
forxy
发表于 2016-06-23 21:11
版主亲自回复,多谢!回复 8# amarant
forxy
发表于 2017-02-25 13:30
captivated 发表于 2016-06-20 18:20
其实是集成在CPU里面的MMU发现的?O(∩_∩)O~
谢谢回答,如果进程访问的是另外一个进程的某个地址,他们的特权等级是一样的,mmu只是做地址计算,他如何发现异常,难道计算过程还有进程id之类的元素参与计算吗?可是cpu在那么低的层次,应该看不到进程id吧。
forxy
发表于 2017-02-25 13:31
amarant 发表于 2016-06-18 21:32
是cpu发现的
谢谢回答,如果进程访问的是另外一个进程的某个地址,他们的特权等级是一样的,mmu只是做地址计算,他如何发现异常,难道计算过程还有进程id之类的元素参与计算吗?可是cpu在那么低的层次,应该看不到进程id吧。
forxy
发表于 2017-02-25 13:32
amarant 发表于 2016-06-22 09:28
nosay同学说的挺有意思。
lz问的问题都是体系架构的基础知识。cpu在执行指令的时候,有取值,解码,执行, ...
谢谢回答,如果进程访问的是另外一个进程的某个地址,他们的特权等级是一样的,mmu只是做地址计算,他如何发现异常,难道计算过程还有进程id之类的元素参与计算吗?可是cpu在那么低的层次,应该看不到进程id吧。
_nosay
发表于 2017-02-25 14:01
回复 17# forxy
1. 硬件工程师通过电路的知识,为硬件设计了一条规则,“段寄存器rpl值为3时,好多事就不准做了”
2. 软件刚执行时,段寄存器rpl值为0,想干啥就干啥,包括把段寄存器rpl值设置为3(自宫{:qq1:})
因为1,软件才有基础划分出内核和应用;
由于2,硬件要考虑,软件权限降级后,如何恢复(把内核和所有正在执行的应用想象成一个软件),所以设计了各种门
硬件相对于软件,内核相对于应用,都可以理解为“框架”,设计框架时,不用知道将来有人会向框架里填些什么,但框架的设计却是根据上层的需求来的。
for_truth
发表于 2017-02-25 17:31
应该是内核的内存管理机制会对入栈的实参做判断的吧,具体的要看一下memset的怎么实现了吧
for_truth
发表于 2017-02-25 17:35
当然归根结底还是CPU啊