garyv 发表于 2010-08-11 20:09

回复 9# rawa9999


    请高人提供以前讨论的链接地址,谢谢

rawa9999 发表于 2010-08-12 08:12

那个帖子也没有讨论清楚,386的MMU(内存管理单元)提供了四种管理内存的方法,平坦、段、页、段页结合,纯粹分段确实不能管理超过4G的内存,但是在分段模式下采用段页结合的方式可以管理最大虚拟地址空间的存储器,也就是64TB,请有心者仔细参看Unix的386实现,这件事在当年Unix向386移植的时候就已经实现了,老技术了。

beepbug 发表于 2010-08-12 21:08

不要把实空间跟虚空间搞混淆了。

rawa9999 发表于 2010-08-13 04:23

我不擅长CPU,最多我写过堆栈式虚拟机和寄存器虚拟机,依靠C语言的寄存器变量处理数据,最大限度发挥C语言的操作CPU的效能,至于MMU,这属于CPU自身的功能,是CPU内部实现的,操作系统依靠这些硬件基础编写内存管理程序,可以使用纯软件根本不依靠硬件,可以软硬结合的方式,早期的windows依靠纯硬件所以只能管理4G内存,虚拟地址空间和寻址空间确实有区别,但不是你们解释的那样两者是水火不容,某些情况寻址空间可以达到虚拟地址空间那么大,比如Unix的386移植版本后来带补丁的linux都可以,不多说了,有心者细细讨论,专长不同,但是至少我明白很多东西了。

liuiang 发表于 2010-08-13 10:48

深入理解linux讲的很详细了,CPU寻址都是逻辑地址,物理地址只有映射过来才能由系统访问,映射的过程就是MMU了,mmu就可以通过一些寄存器扩展物理地址空间了。
页: 1 [2]
查看完整版本: CPU寻址问题