文章开头必须介绍下这位github开源大佬,是腾讯的一位前辈,仓库地址:https://github.com/yifengyou
,里面有他学习的各种资料,包含linux内核态、用户态、虚拟化、云原生、编程语言等分类,很震撼。大家可以看下贡献图,感受下压迫感,这位大佬大年三十都还在学习!
全虚拟化利用虚拟机监视器(VMM)或者称为 hypervisor 的软件层来模拟底层硬件。Hypervisor 位于宿主硬件和虚拟机之间,负责协调虚拟机对硬件的访问请求。
半虚拟化需要客户操作系统知道它们在虚拟环境中运行,并且要进行相应的修改来与 hypervisor 交流。这意味着客户操作系统中的关键元素,如内存管理和 I/O 设备操作,需要针对虚拟化环境进行优化。
容器化是一种轻量级的虚拟化形式,其中虚拟化发生在操作系统层面。容器内的应用程序使用宿主机的操作系统内核,但运行在隔离的用户空间内。
KVM(Kernel-based Virtual Machine)是一种虚拟化解决方案,可以在Linux系统上运行多个隔离的虚拟机。每个虚拟机都有私有的虚拟化硬件:CPU、内存、磁盘等,使得它们可以运行各自的操作系统。
KVM是一种基于硬件的虚拟化技术,它利用了现代处理器中的虚拟化扩展(如Intel的VT-x技术或者AMD的AMD-V技术),从而提供了高效的虚拟机性能。KVM本身是Linux内核的一部分,这意味着它能够利用Linux内核的所有功能和优化。
KVM是开源的,成为了许多虚拟化平台和云计算解决方案的基础,例如OpenStack和Proxmox VE。用户可以通过诸如libvirt这样的工具和API来管理KVM虚拟机,也可以使用图形界面前端如Virt-Manager来进行虚拟机的创建、监控和管理。
KVM与VMware以及OpenStack的主要区别在于它们的定位、使用的技术和功能。
总的来说,KVM主要是虚拟化技术,VMware是提供更广泛虚拟化解决方案的商业公司,而OpenStack是以KVM为其中一个选项的云平台管理框架。