我已阅读维基百科文章 http://en.wikipedia.org/wiki/Sandbox_(software_development),但我不太确定这意味着什么,以及它与版本控制.
如果有人可以用非常简单的术语解释什么是沙箱,那将会很有帮助。
A 沙坑或沙箱 http://en.wikipedia.org/wiki/Sandpit是一个低而宽的容器或浅凹陷,里面装满了沙子,孩子们可以在其中玩耍。许多有孩子的房主在自家后院建造沙坑,因为与许多游乐场设备不同,沙坑建造起来既容易又便宜。 “沙坑”也可以表示露天沙矿。
嗯,软件沙箱与为孩子玩耍而构建的沙箱没有什么不同。通过向孩子提供沙箱,我们模拟了真实游乐场的环境(换句话说,isolated environment
)但对孩子可以做的事情有限制。因为我们不想让孩子被感染或者给别人带来麻烦。 :) 不管原因是什么,我们只是想限制孩子可以做什么Security Reasons
.
现在来到我们的软件沙箱,我们让任何软件(子)执行(播放),但对其可以执行的操作有一些限制。我们能感觉到安全可靠关于执行软件可以做什么。
您已经见过并使用过防病毒软件。正确的?它也是一种沙箱。它对任何程序可以执行的操作进行了限制。当检测到恶意活动时,它会停止并通知用户“此应用程序正在尝试访问某某资源。是否要允许?”。
下载一个名为沙盒 http://www.sandboxie.com/您还可以亲身体验沙盒。使用此程序,您可以在受控环境中运行任何程序。
红色箭头表示从正在运行的程序流入计算机的更改。标有“硬盘”(无沙箱)的框显示正常运行的程序所做的更改。标记为硬盘(带沙箱)的框显示在 Sandboxie 下运行的程序所做的更改。该动画说明 Sandboxie 能够拦截更改并将其隔离在沙箱(描绘为黄色矩形)内。它还说明,将更改分组在一起可以轻松一次删除所有更改。
现在从程序员的角度来看,沙箱限制了应用程序允许使用的 API。在防病毒示例中,我们限制系统调用(操作系统 API)。
另一个例子是像 topcoder 这样的在线编码竞技场。你提交一个代码(程序),但它在服务器上运行。为了safety
服务器的,他们应该限制程序的API的访问级别。换句话说,他们需要创建一个沙箱并在其中运行您的程序。
如果您有合适的 sandox,您甚至可以运行受病毒感染的文件并停止病毒的所有恶意活动,并亲眼看看它试图做什么。事实上,这将是防病毒研究人员迈出的第一步。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)