沙盒与虚拟化

Sim*_*mon 6 virtualization memory-management sandbox

也许我错过了一些东西,但不是沙盒和虚拟化完全相同的概念,即分离并行运行的应用程序的内存空间.所以我想知道为什么他们有不同的名字,他们的雇用方式可能存在差异吗?

非常感谢,西蒙

And*_*ack 7

这些概念解决了不同的问题:当我们虚拟化时,我们隐藏了机器的物理限制.另一方面,沙盒设置了对机器访问的人为限制.将记忆视为代表性的类比.

内存的虚拟化是允许每个程序访问32位或64位空间中的每个地址,即使没有那么多物理RAM也是如此.

内存的沙盒是为了防止一个程序看到另一个程序的数据,即使它们可能占用内存中的neigboring单元.

这两个概念肯定与虚拟内存的通用实现有关.但是,这是实现的方便工件,因为硬件页表只能由内核访问.

考虑如何在x86机器上单独实现它们:您可以使用页表隔离程序的内存而无需交换到磁盘(没有虚拟化的沙盒).或者,您可以实现完整的虚拟内存,但也可以提供对硬件页表的应用程序级访问权限,以便他们可以看到他们想要的任何内容(没有沙盒的虚拟化).


And*_*rey 1

沙盒仅意味着隔离,而虚拟化通常意味着模拟某种硬件(虚拟机)。虚拟化无需沙箱即可实现。