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

2023-11-14

简介

英文名称 中文名称 说明
Container 容器
Guarded Host 受保护的主机 利用远程证明创建并运行受防护的虚拟机
Hyper-V
├Hyper-V Management Tools Hyper-V 管理工具 包含 GUI 管理工具和 Power Shell 的 Hyper-V 模块
└Hyper-V Platform Hyper-V 平台
├Hyper-V Hypervisor Hyper-V 虚拟机监控程序
└Hyper-V Services Hyper-V 服务
Virtual Machine Platform 虚拟机平台
Windows Hypervisor Platform Windows 虚拟机监控程序平台
Windows Sandbox Windows 沙盒
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]。

在这里插入图片描述

转自:https://zhuanlan.zhihu.com/p/381969738

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是没问题的,但旧版的,以及众多安卓模拟器就不好用了。

作者:木头龙
链接:https://www.zhihu.com/question/439585675/answer/2144365789
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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图形化的时候会使用到
在这里插入图片描述
作者:hhhhhhhhh
链接:https://www.zhihu.com/question/50144689/answer/119646291
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

区别在于 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在

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • vite简单介绍和配置整理

    vite简单介绍和配置整理 一 介绍 Vite 法语 快的意思 是一个HTTP服务器 特殊的地方 可以在单文件中书写ES6语法 支持热更新 请求的内容才会被打包 更新 Rollup打包 二 配置 总的配置 import defineConf
  • MySQL 8.0 密码策略修改

    首次登录mysql 需要修改原始密码 mysql gt show databases ERROR 1820 HY000 You must reset your password using ALTER USER statement befo
  • Ground Rules

    Ground Rules 1 Ground rules ground ra nd n 地面 土 土地 土壤 v 触海底 使停飞 阻止 起飞 罚 儿童 不准出去玩 adj 磨细的 剁碎的 rule ru l n 规则 统治 控制 管理 v 统
  • C语言:getchar( ) 函数详解

    文章目录 一 getchar 函数定义 二 函数返回值 三 注意区分 getchar 和 scanf 四 getchar 的使用实例 一 getchar 函数定义 getchar 字符输入函数 没有参数 从输入缓冲区里面读取一个字符 一次只
  • 解决EasyExcel导出文件LocalDateTime报错问题

    文章目录 问题引出 解决方案 自定义Converter 引用 LocalDateTimeConverter 搞定收工 问题引出 狗子我在参与一个项目的时候接触到数据表格导出为Excel表格的需求 但是在导出的时候会出现报错 Cannot f
  • 代码走查和代码审查_代码审查是个好主意的其他原因

    代码走查和代码审查 什么是代码审查 What are Code Reviews A Code Review is essentially what it sounds like a review of code before it is a
  • 虚拟机由于电脑未正常关机打不开问题-两种情况

    虚拟机由于电脑未正常关机打不开问题 我来总结我遇到的两种情况 文章目录 虚拟机由于电脑未正常关机打不开问题 第一种情况 报错 锁定文件失败 第二种情况 报错 指定的虚拟磁盘需要进行修复 第一种情况 报错 锁定文件失败 如果出现锁定文件失败
  • Unity自动创建脚本及预制体并绑定

    自己写了一套流程控制的框架 根据不同的状态执行不同的命令 每个状态判断和命令都是一个场景中的物体 不想每次重复同样的操作 创建脚本再创建预制体再绑定脚本 所以尝试写了一个自动创建脚本与预制体的工具 StateMachineEditorUti
  • 指针解析 (*&p和&*p)

    p指向a p的值是a的地址 的作用 定义 int p 定义一个int类型的指针变量 取地址对应的数据 p 获取 下的值 p的值 对应的值 即 0x1000 5 p和 p的区别 p p 获取p的地址 即0x1008 p 即 0x1008 获取
  • matlab MinGW-w64 C/C++ Compiler 的配置(附百度云下载资源)

    环境 win10 matlab r2019b 起因 安装某matlab工具包时需要使用命令 mex setup 弹出常见错误 即需要编译器 两种编译器的尝试 由于那道墙的存在 让试错成本变得如此巨大 首先 matlab推荐了两种编译器 1
  • 漏洞公布平台汇总

    https www cnvd org cn https www seebug org https fr 0day today https www exploit db com https packetstormsecurity com
  • LU分解(matlab实现)

    LU分解 LU Decomposition 是矩阵分解的一种 可以将一个矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积 主要的算法思路是从下至上地对矩阵A做初等行变换 将对角线左下方的元素变成零 这些行变换的效果等同于左乘一系列单位下三角矩
  • 区块链GAMEFI游戏——NFT+DeFi+游戏

    GameFi指的是将去中心化金融产品以游戏的方式呈现 将DeFi的规则游戏化 将游戏道具产品NFT化 即GameFi NFT DeFi 游戏 DeFi是GameFi的内核 NFT是去中心化的必备手段 而游戏是GameFi的外壳 NFT De
  • 视频编码格式发展史

    1 编码标准之战 想预测未来 就回顾历史 先来看看H 264这些编码的从标准化到现在普及的过程 人们一直在想尽办法提高视频编码的效率 让它在尽可能小的体积内提供最好的画面质量 从而满足人们对于视频传输 存储的需求 长期以来 视频编码标准主要
  • MySQL标准差和方差函数使用

    一 方差 方差是在概率论和统计方差衡量随机变量或一组数据时离散程度的度量 概率论中方差用来度量随机变量和其数学期望 即均值 之间的偏离程度 统计中的方差 样本方差 是每个样本值与全体样本值的平均数之差的平方值的平均数 在许多实际问题中 研究
  • matlab求二元函数极值算法_[小白头秃]多元函数基本概念总结

    1 基本概念 点集 区间 领域 一维 直线 实数集 线段 端点 不含端点 二维 平面 实平面 平面区域 边界 不含边界 三维 空间 实空间 曲面 边界 体 表面 不含边界 表面 点和点集的关系 内点 外点 边界点
  • 四叉树初步研究

    JS 四叉树初步研究 四叉树 为何要叫四叉树 二叉树与八叉树又是生么东东 看样子理解起来比较困难 实现该如何入手 树 就是树的结构 树根 树干 树枝 树叶 还有好吃的果实 o 其实树这种结构 很常见的 JSON 不就是最普通的树吗 四叉树的
  • html js清除缓存,js清除浏览器缓存的几种方法

    JS 缓存的问题一直都是我们又爱又恨的东西 也是我们比较头痛的问题 一方面为了提高网站响应速度 减少服务器的负担 和节省带宽 将需要将静态资源缓存在客户端 但是另一方面 当js 文件有改动的时候 如何快速的将客户端缓存的js文件都失效 这是
  • win环境下emacs实现markdown的html预览

    1 参考文档 https libraries io github jrblevin markdown mode 2 实现的核心思想是用pandoc生成html进行markdown的预览 把pandoc exe直接放到emacs bin目录下
  • windows 虚拟机相关功能、组件梳理

    简介 英文名称 中文名称 说明 Container 容器 Guarded Host 受保护的主机 利用远程证明创建并运行受防护的虚拟机 Hyper V Hyper V Management Tools Hyper V 管理工具 包含 GUI