https://devblogs.microsoft.com/commandline/wsl-2-post-build-faq/
看到 WSL2 原来就是基于 Hyper-V,我觉得已经没太大的盼头了……
感觉就是给你预装个虚拟机,然后 Terminal 直接连进去,仅此而已……
Hyper-V 与 VMWare、Virtual Box 不兼容,还不能调用显卡 USB 等硬件……
那么我为啥不直接装一个 VMWare 或 VBox 呢?(个人感觉这些虚拟机都比 Hyper-V 好用,特别是 VMWare )
就为了和 Terminal 直接对接么……
就这,装个 WSL1,然后 ssh 也能解决的……
内置 Linux 内核,任重而道远啊……
1
outtime 2019-05-15 07:03:26 +08:00 1
赞成。之前 Windows 沙盒我没看清,结果带上了 hyper-v,当时 vm 就暴毙(。搜索了一下,完全关掉还很麻烦...
|
2
rogwan 2019-05-15 07:17:17 +08:00 via Android
看了一下,wsl2 可以和 vb6 共存
|
3
kevinhwang 2019-05-15 07:31:41 +08:00 via Android
我就说一下我从什么时候从 Windows 转 Linux 的,就是学习 docker 开始,Windows 运行 Linux 的 docker 就是用了 Hyper-V,不能开虚拟机,我还怎么开服务器部署其他 Linux 服务呢?
我不是否定 Windows 的一切,单从 Windows 的历史包袱来看,其绝对不是一款适合编程的 OS,如果编程为何不买一部便携设备尝试一下 Linux 或者 Mac 呢? |
4
wwqgtxx 2019-05-15 07:33:47 +08:00 via iPhone
@outtime 这玩意其实就跟当初 docker 和 systemd 不兼容,其实是在抢 cgroups 的控制权,最后还不是互相妥协后就能相安无事了
我记得 ms 在 1803 就开始把 hyper-v 的底层开放为一个类似于 kvm 的内核服务了( google 的安卓模拟器在 amd 平台下使用该服务),就看啥时候这个服务能完善,vmware/vbox 能支持了( vbox 好像已经提供的初步的支持) |
5
Cooky 2019-05-15 07:37:08 +08:00 via Android
VBox 弄个 raw disk access 一样用,还支持 XP (
|
6
lhx2008 2019-05-15 07:37:38 +08:00
兼容上有技术困难吗,微软能不能拿出办法?
|
7
Trumeet 2019-05-15 07:40:11 +08:00
肯定是 Hyper-V 啊,又有 Linux 内核,又基于虚拟化,那不是 Hyper-V 还能是什么((
M$ 总不会去兼容别人家的竞品吧 |
8
ladypxy 2019-05-15 07:52:16 +08:00
WSL2 虽然是基于 hyperv 的,但是不是给你跑一台完整的虚拟机啊,里面只是一个轻量级的内核,微软号称占用内存才几十 M。这比你 vmware 跑一台虚拟机可省资源多了
|
9
jc89898 2019-05-15 07:58:27 +08:00 4
拜托你发帖前能了解了解吗?微软 windows 架构加了一层 hypervisor,跟你说的 VM 不同。而且这个是轻量 VM,不是传统意义上的 VM。
|
10
Tink 2019-05-15 07:59:05 +08:00 via iPhone
这确实是个坑.....vmware 直接装不上了
|
11
xiaoxinxiaobai 2019-05-15 08:05:00 +08:00 via Android
嗯。。。您确实看明白了吗
|
12
LokiSharp 2019-05-15 08:13:11 +08:00 via iPhone
不折腾 WSL 了,继续 VMware Hyper-V 各种坑
|
13
postunit 2019-05-15 08:17:03 +08:00
嗯。。。您确实看明白了吗
|
14
koodai 2019-05-15 08:21:17 +08:00 via Android 3
用都没用,怎么知道到底好不好用?就开始逼逼叨叨,呵呵
|
15
qdwang 2019-05-15 08:21:39 +08:00 via iPhone
管他微软加什么功能,我就用 vmware 跑 lubuntu。非常舒服。完美秒杀 mac
|
16
binux 2019-05-15 08:25:36 +08:00 via iPhone
那么 WSL 能调显卡 USB 吗?
|
17
Imr 2019-05-15 08:26:46 +08:00 via iPhone
hyperV 也能搞虚拟机,何必吊死在 vbox
|
18
clavichord93 2019-05-15 08:32:12 +08:00 via iPhone
表示不清楚 win 本跑 wsl2 的性能情况。不过 vm 解决想起来应该不会很乐观…所以大概率只能在 workstation 上用…但我都 workstation 了,当然直接 Linux 啊…
|
19
jinliming2 OP 我用 vmware 的原因是因为它支持直接使用整个物理硬盘做虚拟机的硬盘,还有就是虚拟网卡比 Hyper-V 的好用太多(个人觉得),以及其他的好多实用功能。
看到 WSL2 因为基于 Hyper-V 而不兼容 VMWare,所以…… |
20
MonoLogueChi 2019-05-15 08:35:04 +08:00 via Android
hyper v 可以用 USB 设备啊,当然只是 win 可以直接用
|
22
jjx 2019-05-15 08:58:17 +08:00 1
这个不是传统意义的 vm
至于和 vmware 等的冲突, 应该在解决了, 这件事情反而把 hyper-v 同 vmware 等不能共存的问题优先级给提上来了 |
23
SeeMeTomorrow 2019-05-15 09:00:49 +08:00 via iPhone
要是为了用个 wsl2,就非得把 vmware 卸载了,那真可以弃坑了,ms 这个大萨比
|
24
BOYPT 2019-05-15 09:03:54 +08:00 1
你们确定有看完全文吗
wsl 用的是 hyper v 的子集,在家庭版可用,以后会加入接口,vbox/vm 通过接口跟系统获得虚拟化控制权(当然跟 wsl2 同时使用是不可能了,关闭后切换还是可以的),wsl2 好处是比 vm 轻量吧,两秒内启动,体验跟 wsl1 基本一致。 |
25
chinvo 2019-05-15 09:04:10 +08:00 via iPhone
@jc89898 #9 拜托你发帖前能了解了解吗?虚拟机的核心技术之一就是注册 hypervisor,同一系统内只能有一个 hypervisor,这也是很多游戏反作弊系统检测虚拟机的方法(尝试注册 hypervisor )
|
27
passerbytiny 2019-05-15 09:10:23 +08:00
@jinliming2 你要说 Hyper-V、VMWare、Virtual Box 相互冲突也就罢了,但你硬要说 Hyper-V 不如另外两个,那就只能呵呵了。
你的需求基本上是把物理机完全当成虚拟机使用,那你为什么不直接更换操作系统。 |
28
fyyz 2019-05-15 09:12:21 +08:00
@kevinhwang 反对,我是开发 windows 下应用程序的,你觉得 windows 不适合开发只是因为你开发的东西需要在 Linux/Unix 下跑而已。但是我即使是开发 Linux 下的应用程序,我也是尽量先用 windows 的 visual studio 开发 /调试 /测试,然后去 linux 下测试的。
|
29
Hellert 2019-05-15 09:17:13 +08:00
等正式版吧,你能想到的 ms 那帮人也肯定想到了
|
30
qcts33 2019-05-15 09:23:32 +08:00
肯定不仅仅是一个虚拟的 Linux 系统,类似于现在 WSL 那样与 Windows 系统的互操作肯定是会有的,而且应该会对内核进行一定的定制和剪裁
|
31
lekai63 2019-05-15 09:40:39 +08:00 via iPhone
@MonoLogueChi 求解 hyper-v 怎么用 usb 设备?通过 usb over lan 之类的软件么?
我虚拟机主要需求就是安装银行网银:) |
32
youyoumarco 2019-05-15 09:49:06 +08:00
老老实实 vmware 了,不折腾了,换汤不换药
|
33
liuminghao233 2019-05-15 09:56:29 +08:00 via iPhone
之前用 docker
搞了半天发现 rawsocket 原来跟 windows 同款 惊了 那我装来干嘛 这个 wsl 估计是一样的 要跑就跑一个完完整整的虚拟机 这个真没比 vm 方便多少 |
34
abcbuzhiming 2019-05-15 10:00:49 +08:00
@kevinhwang 不适合你开发的领域罢了,拜托不要把对 windows 的偏见传播给其它人好吗?还历史包袱?搞清楚一点,只论历史包袱的话,linux 重多了!
|
35
LokiSharp 2019-05-15 10:03:43 +08:00
@abcbuzhiming #34 开发环境就说个 PowerShell。。。这个真是给人用的 Shell ? 真不是 PowerScript# 么
|
36
abcbuzhiming 2019-05-15 10:14:07 +08:00
@LokiSharp 怎么就不是给人用的 shell 了? PowerShell 可以完成 windows 的所有功能操作。怎么就不是 shell 了?我说,你们的偏见太可怕了一点吧
|
37
LokiSharp 2019-05-15 10:22:28 +08:00
@abcbuzhiming #36 Tab 补全宛如弱智,Home 里面的 dot 文件 /文件夹不会隐藏。
|
38
LokiSharp 2019-05-15 10:23:10 +08:00
@abcbuzhiming #36 写 Script 是可以,但是作为日常用的 Shell 真的反人类
|
39
shilyx 2019-05-15 10:44:53 +08:00 4
Hyper-V 之所以不兼容 vmware 等其他虚拟机,是由其原理决定的
Hyper-V 安装在 win 上之后,此 win 就成了 Hyper-V 上的有一个虚拟机。除了 win 系统本身可以管理 Hyper-V 之外,win 和 Hyper-V 上的其他虚拟机没有本质区别,大家都是虚拟机。Hyper-V、win、虚拟机是父亲、长兄和弟弟妹妹的关系。 这之后 win 之上再运行 vmware 相当于虚拟机里的虚拟机,不兼容也是正常的。 |
40
kevinhwang 2019-05-15 10:47:15 +08:00 via Android
@fyyz 确实我用词过分了,开发 Windows 应用那肯定是在 Windows 下了,只能说我接触的环境确实 Linux 下比较多。
@abcbuzhiming github 上照顾 Windows 用户的估计只有微软了吧,哪怕 Linux 历史包袱重但有更多的开发者迭代,逐渐包袱就轻了,而 Windows 真的是只能靠微软慢慢填坑了。如果把编程当工作没有太多兴趣,Windows 下是肯定能满足的。 |
42
LokiSharp 2019-05-15 11:00:16 +08:00
@micean #41 问题是事实上 你的 Home 已经一堆 dotfile 了啊,我在 Home ls 一下 一屏幕 dotfile
|
43
nguoidiqua 2019-05-15 11:01:19 +08:00
我还是老老实实用 VW 和 VB 吧,这年代硬件都不差了,开个浏览器内存都是按 G 算的,为了省那点资源牺牲灵活性和完整性不是太爽,不管是 WSL 还是 WSL2,都是看起来方便,实则用起来更麻烦。
其实对于用惯 VM 和 VB 的人来说,弄个虚拟机装桌面版 Linux 分分钟的事,就算装 Arch 也是很快的,反而配置 WSL 要麻烦得多。 |
44
Nasei 2019-05-15 11:02:38 +08:00 via Android
@kevinhwang
mac 也没有原生 docker,win10 好歹还支持 windows 容器,现在做开发,各种服务部署在 linux 还是 win 根本没影响,我不依赖 win 但我依赖 vs,做 linux 开发,我还能用 vs 远程上去调试,做嵌入式我也是先用 vs 写完在调试,而且听说现在 vs 支持裸机 gdb,虽然我已经脱坑了 |
45
micean 2019-05-15 11:07:03 +08:00
@LokiSharp 看 Home 的那对 dot 文件夹的创造者在创建的时候有没有在隐藏的属性上打上 check 了,或者人家压根也不想隐藏。这一点 git 和 svn 就没偷懒
|
47
liprais 2019-05-15 11:35:52 +08:00
只求能解决 wsl 那垃圾的 io 性能
|
48
invalidtoken 2019-05-15 11:41:01 +08:00
@LokiSharp 用户目录里那一堆.开头的文件更多还是应用的问题... 本身在 Windows 上应用配置文件就应该是在 AppData 里而不是直接放进用户目录里的
|
49
msrcatn203 2019-05-15 11:43:20 +08:00 via Android 3
我寻思着在座各位应该还没人见到开发完成的 WSL2 怎么就开始云评测了¿
|
51
LokiSharp 2019-05-15 11:48:55 +08:00
@invalidtoken #48 然而微软自己也在 Home 扔的
|
52
LokiSharp 2019-05-15 11:54:08 +08:00
@invalidtoken #48 比如 .vscode .dotnet .nuget .ssh .vsts
|
53
kylix 2019-05-15 11:58:21 +08:00
说 windows 不适合编程的,都是搞 web 的吧?
|
54
neoblackcap 2019-05-15 12:02:42 +08:00 3
hyper-v 是一型 hypervisor,对标 kvm,当然 vmware 也有类似的产品,好像是 VMware ESXi ?大家日常使用的是二型 hypervisor。当然你们会觉得很方便,不过讲性能是比不过一型 hypervisor 的。当 hyper-v 启动之后,windows 跟它启动的 linux 是同级的,virtualbox 这些运行的 linux 是把 windows 作为宿主。原理上就不兼容。
想想为什么你们想用 wsl,还不因为 linux 桌面各种问题。若是 linux 真那么好,你们开发的时候早就用 ssh 连到开发机用 vim 开发了。 |
56
Felldeadbird 2019-05-15 12:45:52 +08:00
我好奇 WSL 调用显卡需求是什么?
|
57
MonoLogueChi 2019-05-15 12:46:03 +08:00 via Android 1
@lekai63 远程桌面连接的时候可以挂载
|
58
ycfung 2019-05-15 13:01:52 +08:00 via Android
不清楚在工作中 wsl 的意义是什么…我作为学生只用来来跑过 nginx, node.js, gcc(windows 下真的没找到新版的), MySQL, 都是为了方便部署管理而不会影响 Windows 环境。
用过一段时间 Ubuntu 桌面,虽然都有办法上微信 QQ 之类的,但是这些软件文件管理本来就差…加上 wine 版的各种 bug 和速度慢真的挺不爽。 所以写代码我还是在 Windows 下,编译调试用 WSL,真正部署项目还是在 VMWare 上比较稳。至于 WSL2,出来再试试吧,其实就算是用 VMware,也就是内存占用大一点,配置好体验真的差不了多少。至于要 GPU 跑机器学习什么的…老实装系统吧。 |
59
Revenant 2019-05-15 13:47:30 +08:00
我能运行 WSL 2 和其他第三方虚拟化工具,如 VMWare 或 Virtual Box 吗?
使用 Hyper-V 时,某些第三方应用程序无法运行,这意味着在启用 WSL 2 时它们将无法运行。不幸的是,这确实包括 VMWare 和 Virtual Box。我们正在研究帮助解决此问题的方法。例如,我们公开了一组名为 Hypervisor Platform 的 API,第三方虚拟化提供商可以使用这些 API 使其软件与 Hyper-V 兼容。这使得应用程序可以使用 Hyper-V 架构进行仿真,例如 Google Android Emulator,它现在与 Hyper-V 兼容。 我可以在 WSL 2 中访问 GPU 吗?是否有计划增加硬件支持? 在 WSL 2 的初始版本中,硬件访问支持将受到限制,例如:您将无法访问 GPU,串行或 USB。增加设备支持的工作具有高优先级。在此期间,您始终可以使用具有串行端口和 USB 访问权限的 WSL 1。 1. 没有 BIOS / UEFI,没有 Grub 等 bootloader,Linux 被 VM 直接加载进内存, 1s 内可以启动 2. 没有额外的驱动,只需要 Hyper-V 的半虚拟化驱动和 EXT4 驱动, 由微软负责内核的维护和更新(Windows update 可以更新 Linux) 3. 只有必须的进程 init 和 shell,启动后只占用数十 MB,使用 Hyper-V 的动态内存技术. 4. 没有进程(包括后台进程)活动即休眠 总之,WSL2 的体验就是感受不到传统 VM 的开销.相信使用过 Windows Sandbox 的用户都能感受到,就像启动一个应用一样. 作者:韩朴宇 链接: https://www.zhihu.com/question/323244457/answer/675220306 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 |
60
fvckDaybyte2 2019-05-15 13:52:41 +08:00 via iPhone
@chinvo 游戏作弊和虚拟机有啥关系么……
|
61
chinvo 2019-05-15 14:12:45 +08:00
@fvckDaybyte2 #60 很多保护程序靠内存特征识别恶意组件,于是作弊工具就通过虚拟机来隐藏自己
|
62
Phariel 2019-05-15 14:16:27 +08:00 via iPhone
开 hyper-v 太不方便了 冲突的一匹 就为了关闭它我连 win 版的 docker 都不用了 只能开虚拟机在里面用。。。
|
63
ps1aniuge 2019-05-15 17:00:34 +08:00
让我来谈谈:
1 我觉得 wsl2 没啥好处。就是用了个 linux 缩水内核,速度快一点,兼容好一点。还是用 wsl1 即可。 2 win10+ Hyper-V 下使用 wsl2,虚拟机,docker 都行。 3 用 Hyper-V 和用 vmware 差别不大,guest os 用 win7 有点差别,但 guest os 建议用 win10ltsc 你就看不到差别了,但是虚拟 linux 没啥差别。 4powershell 是最牛最好的脚本。欢迎来黑,我相信,那些人黑不出啥名堂。因为他们不懂脚本,不懂 shell,不懂 ps1。懂 ps1 的人不会黑了。黑 ps1 门槛较高。黑 ps1 时,论点论据说清楚哦哦哦哦。。。 |
64
ps1aniuge 2019-05-15 17:19:43 +08:00
楼主说,hyper-v 不能调用 USB,是啥意思?是啥意思?是啥意思?是啥意思?是啥意思?是啥意思?
我在宿主机上,插上手机,有了盘符。插上 u 盘,有了盘符。在 guest win10 都能读写啊! 1 或许 win7 不行。微软没有给 usb 驱动。或许 win7 有驱动,但是必须要去微软下载安装,就像 vmwaretools 那样。 2 要在虚拟机设定中,选中集成服务。 |
65
jinliming2 OP @ps1aniuge 微软博客里的原文:you will be unable to access the GPU, serial or USBs
|
66
jackmod 2019-05-15 23:24:52 +08:00
扯个别的,禁用 hyper-v 可以改启动项的 hypervisorlaunchtype 选项
|
67
ysc3839 2019-05-16 09:35:30 +08:00 via Android 2
@kevinhwang @fyyz @abcbuzhiming
我认为 Windows 传统那套 Win32 API 不适合直接用来开发软件,但是在 Windows 上开发软件是没问题的,因为有许多强大的 IDE。 我认为 Windows 的历史包袱是比 Linux 和 macOS 多的。Linux 因为内核和 GUI 分离的设计,GUI 层面的历史包袱相比之下可以较为轻松地丢掉,而内核层面继承了 Unix 的设计,本身设计失误较少。macOS 虽然内核和 GUI 结合得较深,但是苹果敢大改 API 来解决历史包袱。 Windows 内核层面继承了以前 DOS 的设计失误,比如 NUL CON 这种保留的特殊文件。在 Unix 中同样也有这类文件,但是设计者知道要把他们放在一个特殊的位置,而 DOS 设计时却没想到。 我不知道在哪听到一段话:“一个平台开始衰落的标志之一,就是写一个「符合当前主流交互习惯」的 App 需要越来越多的 boilerplate code,比如当年 Windows 上的 MFC,比如现在的 Android。” 从这个角度看,目前开发 Win32 应用,不使用封装过的库是非常麻烦的。微软自己都在给 Win32 API 写 C++ wrapper 来简化代码及避免 bug。 而像 macOS 和 UWP 才是良好的平台,直接使用平台提供的工具和 API 可以较为轻松地开发出软件。 |
68
okampfer 2019-05-16 09:38:28 +08:00
如果是这样的话,那么 wsl2 和宿主 win 会有网络隔离?就像 docker for win 一样,wsl2 的网关跟宿主 win 不一样?
|
69
wenhainan 2019-05-16 09:46:00 +08:00
人家自己开发的,爱用不用.又没求你用
|
70
fvckDaybyte2 2019-05-16 13:51:45 +08:00 via iPhone
@chinvo ……然后再通过虚拟机去入侵宿主机的程序?这技术不考虑去微软领几百万刀的奖金么?
|
71
fcymk2 2019-05-19 17:27:44 +08:00
看介绍 会解决和 vmware virtualbox 的兼容问题.
这个能解决, 就没啥缺点了(和 wsl1 比) |
73
efaun 2019-08-27 14:14:31 +08:00
@EdwinHui #72 我也遇到这个问题,你解决了吗,hypervisorlaunchtype Off 就可以使用 vmbox 但不能用 wsl2,hypervisorlaunchtype auto 可以使用 wsl2 但不能使用 vmbox
|
74
smallthing 2019-08-28 02:55:15 +08:00
@kevinhwang 你都有 hyper-v 了为啥不直接在里面开虚拟机,
|
75
admingroup 2019-11-30 16:00:21 +08:00
现阶段跟 vmware 冲突确实是个问题 wsl 和 vmware 是两种东西 都不可或缺啊
|
76
hamjin 2020-03-22 13:59:45 +08:00
|
77
hamjin 2020-03-22 14:00:44 +08:00
|
78
charlie21 2020-04-29 11:38:19 +08:00
WSL 2 常见问题解答
我是否能够运行 WSL 2 和其他第三方虚拟化工具(例如 VMware 或 VirtualBox )? 当使用 Hyper-V 时,某些第三方应用程序无法工作,这意味着当启用了 WSL 2 时,这些应用程序(如 VMware 和 VirtualBox )将无法运行。 但最近,VirtualBox 和 VMware 都发布了支持 Hyper-V 和 WSL2 的版本! 可在此处了解有关 VirtualBox 的更改的详细信息,并可在此处了解有关 VMware 的更改的详细信息。 https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-faq |
79
jiangzm 2020-04-30 14:11:54 +08:00
@kevinhwang docker for mac 也是装的虚拟机在跑
|
80
Feva 2020-05-31 08:14:10 +08:00
一切为了学习,CPU 显示支持虚拟化,不支持 SLAT/EPT 。。。
|
81
Rimifon 2020-06-19 10:09:36 +08:00 1
WSL2 这个问题大家遇到过没?
WSL2 在 C 盘上虚拟了一个 256G 的磁盘,而 C 盘实际可用空间不足 30G,所以 WSL2 用一段时间后,文件系统会出现莫名的错误,只能通过重做子系统,恢复后又能再次使用一段时间。 |
82
Rimifon 2020-06-19 10:11:15 +08:00
这个问题平时可能见不到,但是在 WSL2 中运行 docker 后,由于 docker 系统会占用较大的存储空间,这种故障就容易发生了。
|
83
jokerai 2020-07-20 13:52:32 +08:00
haha
|
84
rf99wSiT6IxH1Z23 2020-07-21 11:46:49 +08:00
win10 pro 上装的 docker for windows 也 bu 好用,老出问题,现在 docker-compose up -d 老起不起来
|
85
coang 2020-08-10 12:53:40 +08:00
vmware 15.5.5 已经支持 hyper-v 了
|
86
ygqygq2 2020-09-24 17:44:31 +08:00 1
从 wsl 版本 1 切换到版本 2 后发现网络不是和宿主机共享的了。原来宿主机用 vpn 等软件啥的,子系统一样可以直接使用其网络,现在不行了,这是一个坑。
|