虚拟机:电脑中的安全沙盒世界
文章目录虚拟机目的使用其它系统实现危险操作隐私保护优缺点优点缺点原理与细节Hypervisor全虚拟化与半虚拟化硬件虚拟化常见的虚拟机软件Hyper-VKVMVMwareVirtualBoxGNOME Boxes基于QEMUXEN结尾本文由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-VKVM等。这类Hypervisor运行速度快性能损失也小。类型二Type 2 Hypervisorbe like“高级软件”安装在电脑的系统如Windows中然后再在里面创建虚拟机如VirtualBox、VMware Workstation。更适合个人电脑使用如开发、测试可自定义化程度较高。可以看看这幅图Type 1 Hypervisor硬件HardwareHypervisor虚拟化管理程序虚拟机操作系统Guest OS 1虚拟机操作系统Guest OS 2虚拟机操作系统Guest OS nType 2 Hypervisor硬件Hardware实体机操作系统Host OSHypervisor虚拟化管理程序虚拟机操作系统Guest OS 1虚拟机操作系统Guest OS 2虚拟机操作系统Guest OS n全虚拟化与半虚拟化虚拟化的方式也有两种全虚拟化和半虚拟化。它们的区别之一在于开发者是否需要对操作系统进行修改。半虚拟化是这样的客体机即虚拟的操作系统和提供虚拟机环境的软件相互配合比如客体机通过一些特殊调用把性能开销大的事情交给虚拟机软件去做以减小工作量同时提高效率。而全虚拟化则是“自己动手丰衣足食”客体机全权处理所有事情不会把任务“外包”给虚拟化软件。所以说对于闭源的操作系统来说如Windows不太可能实现半虚拟化因为这么做需要修改操作系统的源代码。不过随着CPU硬件虚拟化技术越来越NB现在的“全虚拟化”也能通过硬件加速实现高性能性能很接近实体机了所以半虚拟化的重要性已渐渐不如从前比如说在这之前你听说过半虚拟化吗如果听说过那你很厉害。硬件虚拟化前面说到了CPU硬件虚拟化可以把虚拟机性能搞得非常强。那他究竟是啥嘞简单来说就是用硬件支持虚拟机的运行而不单单停留在软件层面上。比如当虚拟机执行到一些敏感指令时CPU就会被触发某些机制把控制权交给Hypervisor。常见的虚拟机软件这里罗列一些虚拟机软件你可以挑一款喜欢的试试自己配制一个虚拟机啦Hyper-V项目内容可运行在Windows开源否类型Hypervisor IKVM项目内容可运行在Linux开源是类型Hypervisor I官网KVMVMware项目内容可运行在WindowsLinuxMac开源否类型Hypervisor II官网VMwareVirtualBox项目内容可运行在WindowsLinuxMac开源是类型Hypervisor II官网VirtualBoxGNOME Boxes基于QEMU项目内容可运行在Linux开源是类型Hypervisor II官网GNOME BoxesXEN项目内容可运行在Linux开源是类型Hypervisor I官网XEN结尾如果你想探索不同操作系统但是太懒 不想装机那么虚拟机就是你的游乐场。好啦也说得差不多了下期再见