首先,什么是沙箱?
它本身就是一种线下生活现象的虚拟化。现实世界里,小孩子们在沙地、沙滩上用木板隔离出一个方盒子,在盒子里堆砌、创造各种东西 - 城堡、房屋、山丘... 这就是一个沙箱。
它有两个根本特点:
1、它有边界,通过木板设定了游戏创造的范围只在围墙内;
2、它的游戏材料是沙,任何的创造,一抹就平,瞬间无影无踪不留痕迹。
这两个特点,在计算机世界被模拟了。在一台设备(不管是一台服务器还是一个手机,我们称之为“宿主”)中,通过软硬件手段的结合,可以模拟出一个“管控”区域,它的里面是预先指定、划分出来的运算与存储资源,与宿主的其他资源完全隔离。应用代码可以被丢到这个区域里运行,即使它是病毒、木马、DDoS攻击软件,它也只能在这么一个资源受限的模拟世界折腾,它就像在Matrix里的人,看不到宿主里其他的平行世界,甚至不知道宿主的存在,无法滥用宿主资源从而毁灭宿主(和其他平行世界)。此外,任何这样的区域,既然是模拟的,不管里面跑着什么,都可以被“一键删除”,一切归零。
虚拟机、容器和沙箱是什么关系?
虚拟机和容器技术都可以看作是沙箱的不同表现。
虚拟机和容器。前者是对硬件的虚拟化,后者则更像是操作系统的虚拟化。两者都提供了沙箱的能力:虚拟机通过硬件级抽象提供,而容器则使用公共内核提供进程级的隔离。
具体来说ÿ