虚拟地址在某些地方被描述为线性地址,而在其他地方被描述为逻辑地址。 我想知道一个明确的虚拟地址概念是正确的。
答案 0 :(得分:0)
虚拟地址的概念是,您有一个伪造/伪装的地址空间,并出于一个或多个原因(为了提高灵活性,提高可移植性,提高安全性等)以某种方式将其转换/映射为实际/物理地址空间。 )。在实践中如何实现这一点并不会真正影响理论概念。
用于在80x86上实施该概念;使用分段将虚拟地址转换为线性地址,然后使用分页将线性地址转换为物理地址。然而;可以将分段配置为“虚拟=线性”(通过将分段基准设置为零,将分段限制设置为最大值,如果将FS和GS配置为不执行任何操作,则包括在64位代码中);可以禁用分页,从而导致“线性=物理”;如果既不使用分段也不使用分页,则最终结果是“虚拟=线性=物理”。
大多数用于80x86的操作系统不使用分段,但使用分页。因此对于80x86上的大多数操作系统(和大多数应用程序),虚拟地址可以描述为线性地址;但是“技术上可以”不是增加混乱的一个好理由,几乎没有人会无缘无故地称它们为线性地址(而不是虚拟地址)-通常,如果差异可能很重要,您只会看到“线性”一词。
对于逻辑地址,我不知道您在哪里看到的,如果没有上下文,我会(正确或错误地)假定它与存储空间有关,并且与内存无关(例如,“逻辑块地址”到旧硬盘的“汽缸,汽缸盖,扇区寻址”。
答案 1 :(得分:0)
您需要了解的三个基本概念:
物理-实际的特定设备
逻辑-重定向到设备
虚拟-模拟设备
在过去的大型内存系统时代,虚拟地址和逻辑地址经常混为一谈。实际上,没有虚拟地址这样的东西。逻辑地址可以完全映射为空,也可以映射为物理地址,也可以映射为虚拟模拟的内存。
您可以拥有通过逻辑地址访问的虚拟内存。