当前位置: 首页 > Linux

关于“虚拟化”的一些知识(IntelVT和AMDSVM)

时间:2023-04-07 01:42:37 Linux

为零。前言前几天翻了一下BIOS,关掉了一个不明白的功能,然后重启系统(黑苹果),发现有些软件不能正常运行,主要有虚拟机软件(VMware),ParaDesktop)和一些用来搭建开发环境的软件(XAMPP,Docker等),但除了这些,其他的软件都运行良好,于是我开始思考到底是什么机制。于是上网一查,原来我关闭的功能竟然是“虚拟化”!因为平时用Docker,所以好奇的查了下相关资料。1、什么是虚拟化?虚拟化就是将一台计算机模拟成多台逻辑计算机,在这些逻辑计算机上同时运行不同的程序,互不干扰。通俗地说,就是提供一个运行环境,利用现有的软硬件模拟出一套“虚拟层”硬件,然后在这个虚拟硬件上运行软件。所以,我们平时使用的各种虚拟机,其实都是基于虚拟化的功能。也就是说,如果没有虚拟化功能,就不会有那么多的虚拟机软件。普通计算机的结构图:操作系统运行在硬件上,软件由操作系统直接管理。传统虚拟机结构图:宿主软件运行在真实的操作系统上,而虚拟机的操作系统运行在虚拟硬件上。虚拟机中的软件运行在虚拟操作系统上。虚拟机的软件感觉不到主机系统。没有真正的硬件。Linux版Docker结构图:Docker是基于Linux的容器,但它不是虚拟机。它实现了内核隔离,低于虚拟机。容器中的软件无法感知同一台计算机上的其他软件,但容器中的软件在同一系统上。Mac版Docker结构图:容器中的软件运行在Linux虚拟机中,只能看到Linux系统和虚拟硬件,看不到Mac系统和真实硬件。第二,必须是使用虚拟化功能的通用软件虚拟机。Docker虽然不是虚拟机,但也离不开虚拟化。但是为什么当我关闭虚拟化时XAMPP不可用?查阅资料后发现Mac版的XAMPP本质上是一个虚拟机虚拟出来的Linux系统!(难怪Mac版需要一分钟才能启动,而Windows和Linux版可以瞬间启动服务。。。)其他没有使用虚拟化技术的软件(各种日常软件,IDE等)自然不受影响了。JAVA运行环境也能正常运行。3、Intel和AMD自己的虚拟化技术作为全球最大的PC处理器出货商,Intel和AMD的虚拟化技术并不相同。我没有能力从底层理解它。我只能谈一些粗浅的认识。Intel的虚拟化技术称为Intel-VT(VirtualTechnology),而AMD的称为AMD-V(AMDVirtualization,在AMD主板的BIOS中称为SVM)。主流的虚拟化软件产品都可以支持这两种技术。但是,Apple的产品需要特殊说明。由于Apple的PC没有使用AMDCPU,因此MacOS不支持AMD-V。这一点为神秘的黑苹果计划提供了理论依据:在Intel平台CPU上安装MacOS并不是特别困难;AMD的CPU就没那么幸运了,即使有办法在AMD平台上启动系统,由于指令集不同,也无法实现所有功能。缺少最重要的功能,恐怕就是虚拟化了。所以AMD平台即使安装了黑苹果也无法用于开发,因为没有虚拟化功能,根本无法搭建服务。4.总结前几天的一次偶然尝试,让我在不经意间对虚拟化有了一个简单的认识。还了解到利用虚拟化功能,我们可以在物理机上搭建集群。后来才知道腾讯云、百度云等著名的云计算平台都使用了虚拟化技术。一个小服务器其实就是一台一台的虚拟机。这次探索的意义在于为我接下来的虚拟化系统(KVM)研究提供理论知识。