前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >虚拟机、容器与沙盒技术有什么区别?

虚拟机、容器与沙盒技术有什么区别?

原创
作者头像
海岛船长加西亚
发布2022-11-01 23:50:39
1.3K0
发布2022-11-01 23:50:39
举报
文章被收录于专栏:用户8927754的专栏

首先,什么是沙箱?

它本身就是一种线下生活现象的虚拟化。现实世界里,小孩子们在沙地、沙滩上用木板隔离出一个方盒子,在盒子里堆砌、创造各种东西 - 城堡、房屋、山丘... 这就是一个沙箱。

它有两个根本特点:

1、它有边界,通过木板设定了游戏创造的范围只在围墙内;

2、它的游戏材料是沙,任何的创造,一抹就平,瞬间无影无踪不留痕迹。

这两个特点,在计算机世界被模拟了。在一台设备(不管是一台服务器还是一个手机,我们称之为“宿主”)中,通过软硬件手段的结合,可以模拟出一个“管控”区域,它的里面是预先指定、划分出来的运算与存储资源,与宿主的其他资源完全隔离。应用代码可以被丢到这个区域里运行,即使它是病毒、木马、DDoS攻击软件,它也只能在这么一个资源受限的模拟世界折腾,它就像在Matrix里的人,看不到宿主里其他的平行世界,甚至不知道宿主的存在,无法滥用宿主资源从而毁灭宿主(和其他平行世界)。此外,任何这样的区域,既然是模拟的,不管里面跑着什么,都可以被“一键删除”,一切归零。

虚拟机、容器和沙箱的关系

虚拟机和容器技术都可以看作是沙箱的不同表现。

虚拟机和容器。前者是对硬件的虚拟化,后者则更像是操作系统的虚拟化。两者都提供了沙箱的能力:虚拟机通过硬件级抽象提供,而容器则使用公共内核提供进程级的隔离。

不过严格来讲,虚拟机是可以视为安全沙箱的,但是容器技术还差点意思,理由如下:

  • 虚拟机模拟出一整台服务器或者桌面电脑,你可以在里面跑企业服务、也可以在里面打游戏,并不能影响宿主的安全稳定运行,你也可以把这个虚拟机一键删除,不管里面安装了什么东西。
  • 容器类技术,诸如docker、LXC等,有沙箱隔离的特点,但因为共享宿主操作系统的内核,并不提供彻底全模拟的环境,所以往往并不被视为安全沙箱。

近期深度了解了一下前端安全沙箱技术—— FinClip,这是一种嵌入式安全沙箱,又被称之为小程序容器,它的本质其实是建立在Security Capability model基础上的浏览器内核的扩展,其沙箱的特点,体现在三个方面:

  1. 沙箱内小程序之间的隔离
  2. 沙箱对运行其中的小程序代码,隔离其对宿主环境的资源访问。
  3. 沙箱隔离了宿主对于沙箱中运行的小程序所产生的数据。

这种安全沙箱中运行的主要是轻应用、小程序,在应用范式上兼容互联网主流的小程序规范,应用落地的门槛很低,能迅速投入应用。对于对接大量外部应用的企业来说,这个设计是非常巧妙的。换句话说,不管小程序的“供应商”是谁,它们的代码都被隔离、同时也被保护在沙箱环境中。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首先,什么是沙箱?
  • 虚拟机、容器和沙箱的关系
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档