虚拟机:电脑中的安全沙盒世界
文章目录
本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 BY-NC-SA协议。
因此,若需转载/引用本文,请注明作者并附原文链接,不得用于商业用途。
违者必究,谢谢配合。
个人主页:blog.csdn.net/jzwalliser
你是否遇到过想试试新软件又怕搞乱系统?或是想测试一个病毒,但又担心电脑被干废?那么有没有一种“安全沙盒”呢?
有,它就是虚拟机。
虚拟机
“虚拟机”这个词,其实很好理解:“虚拟”,即“假的”“非真实存在的”;而“机”则代表“计算机”“电脑”。连在一起,就是“非真实存在的计算机”。这有点像“套娃”——即电脑里的电脑。
实际上,它不是一台真实的物理电脑,而是用你现有电脑的一部分资源(如内存、硬盘空间)**模拟**出来的另一台完整电脑。
例如,这幅图就展示了一款很特殊的虚拟机:作者通过WebAssembly等技术,成功地用浏览器模拟出了计算机硬件(包括CPU、内存、网卡、声卡、磁盘),这样便有了完整的环境,使操作系统甚至可以运行在浏览器中。使用起来也很简单,只需要打开网站,选中你喜欢的操作系统就行了。
有兴趣的话可以看这里:v86。


在物理机中所能实现的事情,一般也能在虚拟机中实现——只不过,可能有些许差别,我们会在下面展开详细讨论。
目的
明明已经有实体机可以用了,为什么还非得搞个虚拟机出来呢?
使用其它系统
比如说,你电脑上运行着Windows。那么假如你想要使用Linux,在没有虚拟机的情况下,只能安装其它系统——既麻烦又有风险:万一弄坏了硬盘导致数据丢失呢?所以,虚拟机就派上了用场。
实现危险操作
假如你想测试一下自己搞破坏的能力,比如运行个病毒,那你肯定不会在实体机上尝试(除非真的想弄坏电脑)。于是,你就把目光投向了虚拟机:在虚拟机里面运行病毒,这样不仅能看到效果,而且还不会弄坏实体机——顶多就是虚拟机废了,这种情况下直接把虚拟机删了然后重新配置一下即可,或者恢复之前的快照,方便得很。
隐私保护
又比如,你想要上网,但是不希望留下任何形式的本地记录。此时,就可以创建一个用完即删的虚拟机,在里面进行操作。结束后,把整个虚拟机连同所有记录一起删除即可。
优缺点
又来到了“对比环节”了。这里,列举一下虚拟机的优缺点:
优点
- 可以执行具有破坏性的实验,而不影响到实体机。
- 可以体验不同的操作系统。
- 可以为虚拟机创建备份(快照),需要时可恢复到之前的状态。
- 虚拟机还可以分享给别人。
- 实现系统多开,可以同时运行多个操作系统。
- 可用于服务器整合、软件测试、持续集成/交付(CI/CD)环境搭建,极大节约硬件成本和时间。
听起来很完美?但一切都有两面性 (双刃的刀):
缺点
- 有点费资源——CPU、内存等的工作强度不小。
- 速度和性能一般比实体机差。
- GPU图形性能、USB设备直通等支持有限,不适合玩大型3D游戏或专业图形处理。
- 网络配置、共享文件夹设置等对新手可能有一定门槛。
原理与细节
运行虚拟机,你就需要一款虚拟化软件,用它分配出一些资源,然后像给新电脑装系统一样,在虚拟机里安装操作系统。
虚拟机软件内会模拟出虚拟的CPU、虚拟内存、虚拟外存、虚拟网卡等硬件。之后,就可以在其中载入操作系统,让后让操作系统运行在这些虚拟的硬件上了。
Hypervisor
虚拟机有一个重要组件,叫“虚拟机监视器”,即Hypervisor。
Hypervisor,又称虚拟机监视器(英语:virtual machine monitor,缩写为 VMM),在电脑上的软件,韧体或是硬件,能用来创建与运行虚拟机。
——维基百科
就是它负责着硬件的抽象(模拟各种硬件)、系统资源分配等重要工作。一共有两种类型:
类型一(Type 1 Hypervisor):有点像那种“超级管家”,直接住在硬件上管理虚拟机,效率挺高,如Microsoft Hyper-V,KVM等。这类Hypervisor运行速度快,性能损失也小。
类型二(Type 2 Hypervisor):be like“高级软件”,安装在电脑的系统(如Windows)中,然后再在里面创建虚拟机,如VirtualBox、VMware Workstation。更适合个人电脑使用,如开发、测试,可自定义化程度较高。
可以看看这幅图:
全虚拟化与半虚拟化
虚拟化的方式也有两种:全虚拟化和半虚拟化。它们的区别之一在于开发者是否需要对操作系统进行修改。
半虚拟化是这样的:客体机(即虚拟的操作系统)和提供虚拟机环境的软件相互配合,比如客体机通过一些特殊调用,把性能开销大的事情交给虚拟机软件去做,以减小工作量,同时提高效率。
而全虚拟化则是“自己动手,丰衣足食”,客体机全权处理所有事情,不会把任务“外包”给虚拟化软件。
所以说,对于闭源的操作系统来说(如Windows),不太可能实现半虚拟化,因为这么做需要修改操作系统的源代码。
不过,随着CPU硬件虚拟化技术越来越NB,现在的“全虚拟化”也能通过硬件加速实现高性能(性能很接近实体机了),所以半虚拟化的重要性已渐渐不如从前(比如说,在这之前你听说过半虚拟化吗?如果听说过那你很厉害👍)。
硬件虚拟化
前面说到了CPU硬件虚拟化,可以把虚拟机性能搞得非常强。那他究竟是啥嘞?
简单来说,就是用硬件支持虚拟机的运行,而不单单停留在软件层面上。比如,当虚拟机执行到一些敏感指令时,CPU就会被触发某些机制,把控制权交给Hypervisor。
常见的虚拟机软件
这里,罗列一些虚拟机软件,你可以挑一款喜欢的,试试自己配制一个虚拟机啦!
Hyper-V
| 项目 | 内容 |
|---|---|
| 可运行在 | Windows |
| 开源 | 否 |
| 类型 | Hypervisor I |
KVM
| 项目 | 内容 |
|---|---|
| 可运行在 | Linux |
| 开源 | 是 |
| 类型 | Hypervisor I |
| 官网 | KVM |
VMware
| 项目 | 内容 |
|---|---|
| 可运行在 | Windows,Linux,Mac |
| 开源 | 否 |
| 类型 | Hypervisor II |
| 官网 | VMware |
VirtualBox
| 项目 | 内容 |
|---|---|
| 可运行在 | Windows,Linux,Mac |
| 开源 | 是 |
| 类型 | Hypervisor II |
| 官网 | VirtualBox |
GNOME Boxes(基于QEMU)
| 项目 | 内容 |
|---|---|
| 可运行在 | Linux |
| 开源 | 是 |
| 类型 | Hypervisor II |
| 官网 | GNOME Boxes |
XEN
| 项目 | 内容 |
|---|---|
| 可运行在 | Linux |
| 开源 | 是 |
| 类型 | Hypervisor I |
| 官网 | XEN |
结尾
如果你想探索不同操作系统,但是太懒, 不想装机,那么虚拟机就是你的游乐场。好啦,也说得差不多了,下期再见!
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)