虚拟机系列:windows 虚拟机相关功能、组件梳理

一. 简介

在这里插入图片描述

英文名称中文名称说明
Container容器
Guarded Host受保护的主机利用远程证明创建并运行受防护的虚拟机
Hyper-V
├Hyper-V Management ToolsHyper-V 管理工具包含 GUI 管理工具和 Power Shell 的 Hyper-V 模块
└Hyper-V PlatformHyper-V 平台
├Hyper-V HypervisorHyper-V 虚拟机监控程序
└Hyper-V ServicesHyper-V 服务
Virtual Machine Platform虚拟机平台
Windows Hypervisor PlatformWindows 虚拟机监控程序平台
Windows SandboxWindows 沙盒
Windows Subsystem for Linux即 WSL 1

在这里插入图片描述
Hyper-V: 就是微软的 Hypervisor 。装了 Hyper-V 下面这两个东西就可以创建基于 Hyper-V 的虚拟机了。

Virtual Machine Platform: 要安装这个才能装 WSL2 [5]。Docker [6]也可以通过这个 API 运行。

Windows Hypervisor Platform:要安装这个才能让VMware等第三方虚拟机和 Hyper-V 共存。

Windows Sandbox: 可以理解为一个临时的虚拟机,关机即焚,在原系统中不留痕迹。我曾经以为它是基于 Hyper- V 的,现在看来不是。

Guarded Host: 这个貌似和虚拟机本身没什么关系。是用来保护远程主机的证书的。

Containers: 这个是 Windows 自己的容器[12]。

在这里插入图片描述
在这里插入图片描述

参考

  1. ^https://superuser.com/questions/1510172/hyper-v-vs-virtual-machine-platform-vs-windows-hypervisor-platform-settings-in-p

  2. ^https://itectec.com/superuser/hyper-v-vs-virtual-machine-platform-vs-windows-hypervisor-platform-settings-in-programs-and-features/

  3. ^https://stackoverflow.com/questions/59125684/difference-between-hyper-v-and-windows-hypervisor-platform-api

  4. ^https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/hyper-v-requirements

  5. ^https://docs.microsoft.com/en-us/windows/wsl/install-win10

  6. ^https://docs.docker.com/docker-for-windows/install/#system-requirements

  7. ^https://github.com/docker/labs/blob/master/windows/windows-containers/README.md

  8. ^https://docs.microsoft.com/en-us/windows/wsl/wsl2-faq

  9. ^https://stackoverflow.com/questions/39858200/vmware-workstation-and-device-credential-guard-are-not-compatible/39867169#39867169

  10. ^https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-sandbox/windows-sandbox-architecture

  11. ^https://docs.microsoft.com/en-us/windows/security/identity-protection/remote-credential-guard

  12. ^https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/

Hyper-V:

Hyper-V,是 Windows 中内置的虚拟机功能。相当于微软开发的类似VMware的产品,具体来说,Hyper-V 提供了计算机硬件的虚拟化。 每个虚拟机都在虚拟硬件上运行。 Hyper-V 允许你创建虚拟硬盘驱动器、虚拟交换机以及许多其他虚拟设备,所有这些都可以添加到虚拟机中。Hyper-V 可用于 64 位 Windows 10 专业版、企业版和教育版。 它无法用于家庭版。
在这里插入图片描述Windows 10 的 Hyper-V 虚拟机,与ESXi一样是裸金属架构,在 Windows10 启用 Hyper-V 功能后,Windows 10 本身也将基于 Hyper-V 之上,故在理论上会有性能损失。

在这里插入图片描述

Hyper-V是微软的一款虚拟化产品,是微软第一个采用类似Vmware ESXi和Citrix Xen的基于hypervisor的技术。这也意味着微软会更加直接地与市场先行者VMware展开竞争,但竞争的方式会有所不同。

VMware能独立通过自己的方式虚拟化。开启Windows的虚拟机平台后VMware就必须使用微软指定的方式虚拟化了

虚拟机监控平台

Hyper-V其实分两个部分:底层的虚拟机平台,以及上层的虚拟机管理软件。

以前的Windows版本,这两个是同一个选项。

现在的新版本则是分成Hyper-V和虚拟机平台两个选项。

wsl2、沙盒本质上是基于Hyper-V的虚拟机,所以虚拟机平台要打开才能用。

但作为Windows的两项特殊功能,无需额外使用管理软件对虚拟机进行管理。

但也因此wsl2缺失了一些虚拟机常见功能,例如网络只能配置为NAT,不能指定IP/网段,虚拟磁盘管理等。
在这里插入图片描述

另一个问题是Hyper-V是Type-I型的虚拟机,Host运行在虚拟机平台上,一方面性能有所下降,另一方面则是其它虚拟机软件可能会有所冲突。

新版本的vmware workstation、virtualbox是没问题的,但旧版的,以及众多安卓模拟器就不好用了。

Windows 沙盒:

沙盒使用了硬件虚拟化技术,是隔离化的桌面环境,可在其中安装软件,同时无需担心长久影响设备。而 Windows 沙盒提供了轻型桌面环境,可安全地隔离运行应用程序。 Windows 沙盒环境中安装的软件保持"沙盒"状态,并独立于主机运行。

强烈推荐软件sandboxie,开源免费了。------我还没用过 之后试试

虚拟机平台:

Windows 功能中的 “虚拟机平台” 功能的作用并不是向用户直接提供一个虚拟机工具,而是用来支持第三方虚拟机平台 (例如 VMware 等) 在 Windows 系统下运行。开启了此功能后,仍然需要您手动下载第三方虚拟机平台进行使用。

虚拟机平台:一般用不到,可以给Android Studio、QEMU等软件进行虚拟化加速

这个虚拟机平台其实就是一个精简版的Hyper-v。

Windows 10 容器:

官方介绍:

https://learn.microsoft.com/zh-cn/virtualization/windowscontainers/about/

https://learn.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-Server

在这里插入图片描述
微软在2016年的Ignite技术大会上正式发布了Windows Server 2016,其中的容器服务已经可以作为生产环境使用。这意味着Windows 内置的容器服务正式进入了大家的视野,虽然之前我们已经有了Docker for Windows,但是在这篇文章中我们要聊的并不是运行在Windows上面的Linux虚拟机里面的容器,而是原生的Windows容器。

1. Windows Container提供2种运行时:Window Server Contianer 或者 Hyper-V Container

Windows 提供2种类型的容器运行时模型。两种都叫Windows Container

其中,Windows Server Container 与大家所熟悉的Linux Contianer容器模型一致,容器与底层操作系统共享内核,所以它们会很轻量而且运行迅速。当你在容器中启动一个进程的时候,这个进程实际上运行在宿主机上,你可以使用任务管理器或者Powershell 命令 Get-Process 获取到这个进程的信息。

Hyper-V Contianer则是一种全新的容器运行时模型,它将在宿主机上启动一个很小的虚拟机,所以容器将具备自己独立的操作系统内核。当你在Hyper-V Container中启动进程的时候,宿主机对这个进程是无感知的。Hyper-V Container提供了更好的隔离性,而且这个虚拟机被裁减得非常小,所以性能仍然会不错。

在这里插入图片描述

在Windows Server 2016上,你可以在2种不同的运行时之间选择;而Windows 10上虽然也提供了容器服务,但是只能运行Hyper-V Contianer。

无论是哪种运行时,你都可以使用标准的Docker命令行进行操作,同时容器镜像的格式也和Linux容器镜像保持一致。这意味着Windows Container 可以通过 docker hub 分发,你之前在Linux容器上的经验积累也可以被继承到Windows容器上。

2. Windows Container 只能运行 Windows应用程序(至少现在是这样)

很多朋友都问过这个问题:我是不是可以在Windows容器服务中运行Linux应用,或者反过来。Docker很厉害,但还木有辣么厉害。你无法在Windows上直接运行Linux进程,同样你也无法在Windows Container中运行Linux进程。这个情况对于以上提到的2中运行时都适用,无论哪种运行时模型,底层操作系统都是Windows,所以你无法运行Linux进程。

这同样意味着,当前Docker Hub上面的大量镜像无法在Windows Container 中使用。微软已经开始在Docker Hub上提供Windows容器镜像,你可以使用同样的docker pull命令或者去这些镜像。比如:microsoft/windowservercore 镜像是一个完整的服务器镜像(大概3G大小),在这个镜像中你可以使用标准的msi安装包,通过Dockerfile来构建你自己镜像,可以安装和运行完整的.net framework和其他的Windows应用程序。microsoft/nanoserver 镜像则是一个精简版的操作系统镜像(大概300M),不提供msi支持,只能运行.net core应用,同时需要使用powershell进行管理。
在这里插入图片描述

具体使用

参考
https://learn.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-Server

分版本 server好像能直接用

在win10 11上 需要docker destop中选择这个

在这里插入图片描述

在这里插入图片描述

目前windows的容器还很大 好像最少3G

3 若要使用linux容器

请安装wsl和docker destop for windows

WSL和WSL2

也就是linux子系统

更详细的看另一篇博客 本篇侧重讲的是与hyper v的关系

打开它不需要开启Hyper-V,只需开启虚拟机平台功能,因为Hyper-V是基于“虚拟化平台”中。

wsl2不需要开启 hyper-v指的是你不需要在 Windows 控制面板的程序与功能设置项里面安装hyper-v和对应的控制台工具
但是实际上wsl2底层还是hyper-v’实现的纯虚拟机,不信你可以看taskmgr里面vmmem 以及虚拟网卡vEthernet
本质上wsl2就是—个安装了不带桌面的linux发行版,它和你自己手动维护一个虚拟机的差别在于他自动映射了localhost这个域名,打通了wsl2和宿主win环境的网络名称,以及自动映射了一个叫做 wsl的samba共享文件夹,打通了文件系统

WSL 2/Docker本质上都是Hyper-V。
WSL 2是一个轻量级的Hyper-V VM;
旧版的Docker for Windows如果要跑Linux镜像,会安装运行一台运行Linux的Hyper-V虚拟机,用Hyper-V的管理工具是可以看到的。
win版的Docker Desktop从18.02开始,使用Windows容器模式,打开体验功能版本,可以直接使用内置的Linux内核跑Linux容器而无需在Hyper-V里面额外安装运行一台Linux VM。

与cygwin、vcxsrv的区别

使用wsl linux图形化的时候会使用到
在这里插入图片描述

区别在于 Cygwin 是把 Linux utility 编译成 windows native binary,然后这样你就可以在 windows 里面用 ls, curl, wget 之类的 Linux utility 了。(utility 换到 windows 的思维上就是 app)所以你在 Cygwin 下面能够看到 ls.exe, curl.exe, bash.exe之类的。假装自己再用 Linux。。。其实用的都是 windows binary。这也就相当于在用户接口(shell)这一层面做的虚拟化。然而 UoW 是在内核进行的虚拟化,把 Linux kernel call 直接转化成 NT kernel call,然后把 Ubuntu 的 user mode 直接扔在上面。所以我们在应用层或者 shell 层是完全看不见 windows 的影子的。是一个真真正正完完全全的 Ubuntu 系统。当然在不触碰内核的情况下。。。UoW 的好处在于。内核的接口肯定比用户层发展的慢,这样保证了兼容性。所以 UoW 上可以毫不费力的装上几乎所有的 Linux 的东西。UoW 应该是除了真正 Linux 系统以外,目前对 Linux 系统兼容最好的系统。(well,目前可能有争议,因为还有个别几个网络协议没有搞好。。。)然后因为微软和 Canonical 一起搞得。。。没人比这两家公司更了解 windows 和 Ubuntu 了吧。。。所以优化也是没得说,效率远高于 Cygwin 和其他的在虚拟方式。最后唯一的缺点在于。。。因为这个从内核层面就开始模拟,所以导致 UoW 与 windows 的文件系统,应用不兼容。也就是说两个系统几乎不能交互。唯一的交互只有微软提供的两个管道,一个是 bash.exe 另一个是 lxrun.exe但是 Cygwin 这一类在 shell 层面虚拟的因为这些都是 exe,所以可以直接在 windows 下调用,Cygwin 下也可以直接调用 windows 的 exe 文件。Cygwin 和 windows 用的是一样的 NTFS,所以完全不存在什么文件系统不兼容的问题。。。至于是不是反过来的 wine,这我不知道。。。不太了解 wine 怎么工作的。

VcXsrv是微软Windows的开源显示服务器。
VcXsrv可以运行安装了WSL(Linux子系统Linux)的Linux GUI程序。 在bash for Windows中,设置DISPLAY环境变量允许WSL程序使用Windows GUI。

WSA

安卓子系统 能和wsl共存(wsl和hyperv无法共存)

硬件-VT

要在bios中开
任务管理器的cpu虚拟化

随着国产手机的崛起,越来愈多人使用国产安卓系统的手机,用安卓玩游戏的也越来越多。但是,手机玩游戏有时候不是很方便,所以便有了在电脑上安装安卓模拟器。而在使用安卓模拟器时,会要求开启VT虚拟机技术。那么模拟器vt是什么意思呢?

模拟器vt是什么意思

1、VT是英文virtualizationtechnology的缩写,其意思是CPU虚拟化技术,我们安装的手游助手就是通过虚拟化使得在电脑上玩手游有着更加流畅的体验,流畅度提升10倍都不为过。所以当我们的电脑上安装安卓模拟器的时候显然开启VT虚拟化技术非常重要。

2、值得一提的是,开启VT并不会对我们的电脑造成负面影响,大家放心即可。

3、传统的纯软件虚拟化方式(无需CPU支持VT技术)和硬件辅助虚拟化方式(需CPU支持VT技术)。纯软件虚拟化运行时的开销会造成系统运行速度较慢,有数据表明其引起的系统性能下降可能达5%-20%。所以,支持VT技术的CPU在







王洪雷

梳理一下 Windows 的 Hyper-V、Hypervisor

木头龙

wsl 2 是否需要启用 Hyper-V?

hhhhhhhhh

win10 linux子系统和cygwin有什么不同?

云闲不收

windows 虚拟机相关功能、组件梳理

posted @ 2023-11-23 17:53  坦笑&&life  阅读(35)  评论(0编辑  收藏  举报  来源