首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
V2EX  ›  Linux

WSL2 是基于 Hyper-V 的,瞬间无爱了……

  •  
  •   jinliming2 · 205 天前 · 21308 次点击
    这是一个创建于 205 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 内核,任重而道远啊……

    75 回复  |  直到 2019-11-30 16:00:21 +08:00
        1
    outtime   205 天前   ♥ 1
    赞成。之前 Windows 沙盒我没看清,结果带上了 hyper-v,当时 vm 就暴毙(。搜索了一下,完全关掉还很麻烦...
        2
    rogwan   205 天前 via Android
    看了一下,wsl2 可以和 vb6 共存
        3
    kevinhwang   205 天前 via Android
    我就说一下我从什么时候从 Windows 转 Linux 的,就是学习 docker 开始,Windows 运行 Linux 的 docker 就是用了 Hyper-V,不能开虚拟机,我还怎么开服务器部署其他 Linux 服务呢?

    我不是否定 Windows 的一切,单从 Windows 的历史包袱来看,其绝对不是一款适合编程的 OS,如果编程为何不买一部便携设备尝试一下 Linux 或者 Mac 呢?
        4
    wwqgtxx   205 天前 via iPhone
    @outtime 这玩意其实就跟当初 docker 和 systemd 不兼容,其实是在抢 cgroups 的控制权,最后还不是互相妥协后就能相安无事了
    我记得 ms 在 1803 就开始把 hyper-v 的底层开放为一个类似于 kvm 的内核服务了( google 的安卓模拟器在 amd 平台下使用该服务),就看啥时候这个服务能完善,vmware/vbox 能支持了( vbox 好像已经提供的初步的支持)
        5
    Cooky   205 天前 via Android
    VBox 弄个 raw disk access 一样用,还支持 XP (
        6
    lhx2008   205 天前
    兼容上有技术困难吗,微软能不能拿出办法?
        7
    Trumeet   205 天前
    肯定是 Hyper-V 啊,又有 Linux 内核,又基于虚拟化,那不是 Hyper-V 还能是什么((

    M$ 总不会去兼容别人家的竞品吧
        8
    ladypxy   205 天前
    WSL2 虽然是基于 hyperv 的,但是不是给你跑一台完整的虚拟机啊,里面只是一个轻量级的内核,微软号称占用内存才几十 M。这比你 vmware 跑一台虚拟机可省资源多了
        9
    jc89898   205 天前   ♥ 4
    拜托你发帖前能了解了解吗?微软 windows 架构加了一层 hypervisor,跟你说的 VM 不同。而且这个是轻量 VM,不是传统意义上的 VM。
        10
    Tink   205 天前 via iPhone
    这确实是个坑.....vmware 直接装不上了
        11
    xiaoxinxiaobai   205 天前 via Android
    嗯。。。您确实看明白了吗
        12
    LokiSharp   205 天前 via iPhone
    不折腾 WSL 了,继续 VMware Hyper-V 各种坑
        13
    postunit   205 天前
    嗯。。。您确实看明白了吗
        14
    koodai   205 天前 via Android   ♥ 3
    用都没用,怎么知道到底好不好用?就开始逼逼叨叨,呵呵
        15
    qdwang   205 天前 via iPhone
    管他微软加什么功能,我就用 vmware 跑 lubuntu。非常舒服。完美秒杀 mac
        16
    binux   205 天前 via iPhone
    那么 WSL 能调显卡 USB 吗?
        17
    Imr   205 天前 via iPhone
    hyperV 也能搞虚拟机,何必吊死在 vbox
        18
    clavichord93   205 天前 via iPhone
    表示不清楚 win 本跑 wsl2 的性能情况。不过 vm 解决想起来应该不会很乐观…所以大概率只能在 workstation 上用…但我都 workstation 了,当然直接 Linux 啊…
        19
    jinliming2   205 天前 via iPhone
    我用 vmware 的原因是因为它支持直接使用整个物理硬盘做虚拟机的硬盘,还有就是虚拟网卡比 Hyper-V 的好用太多(个人觉得),以及其他的好多实用功能。
    看到 WSL2 因为基于 Hyper-V 而不兼容 VMWare,所以……
        20
    MonoLogueChi   205 天前 via Android
    hyper v 可以用 USB 设备啊,当然只是 win 可以直接用
        21
    zongren   205 天前   ♥ 4
    @qdwang mac 招你惹你了。。不是在说 linux 吗
        22
    jjx   205 天前   ♥ 1
    这个不是传统意义的 vm
    至于和 vmware 等的冲突, 应该在解决了, 这件事情反而把 hyper-v 同 vmware 等不能共存的问题优先级给提上来了
        23
    SeeMeTomorrow   205 天前 via iPhone
    要是为了用个 wsl2,就非得把 vmware 卸载了,那真可以弃坑了,ms 这个大萨比
        24
    BOYPT   205 天前   ♥ 1
    你们确定有看完全文吗

    wsl 用的是 hyper v 的子集,在家庭版可用,以后会加入接口,vbox/vm 通过接口跟系统获得虚拟化控制权(当然跟 wsl2 同时使用是不可能了,关闭后切换还是可以的),wsl2 好处是比 vm 轻量吧,两秒内启动,体验跟 wsl1 基本一致。
        25
    chinvo   205 天前 via iPhone
    @jc89898 #9 拜托你发帖前能了解了解吗?虚拟机的核心技术之一就是注册 hypervisor,同一系统内只能有一个 hypervisor,这也是很多游戏反作弊系统检测虚拟机的方法(尝试注册 hypervisor )
        26
    nyanyh   205 天前   ♥ 1
    @chinvo #25 hypervisor 可以嵌套的,只是很多软件不愿意处理而已
        27
    passerbytiny   205 天前
    @jinliming2 你要说 Hyper-V、VMWare、Virtual Box 相互冲突也就罢了,但你硬要说 Hyper-V 不如另外两个,那就只能呵呵了。

    你的需求基本上是把物理机完全当成虚拟机使用,那你为什么不直接更换操作系统。
        28
    fyyz   205 天前
    @kevinhwang 反对,我是开发 windows 下应用程序的,你觉得 windows 不适合开发只是因为你开发的东西需要在 Linux/Unix 下跑而已。但是我即使是开发 Linux 下的应用程序,我也是尽量先用 windows 的 visual studio 开发 /调试 /测试,然后去 linux 下测试的。
        29
    Hellert   205 天前
    等正式版吧,你能想到的 ms 那帮人也肯定想到了
        30
    qcts33   205 天前
    肯定不仅仅是一个虚拟的 Linux 系统,类似于现在 WSL 那样与 Windows 系统的互操作肯定是会有的,而且应该会对内核进行一定的定制和剪裁
        31
    lekai63   205 天前 via iPhone
    @MonoLogueChi 求解 hyper-v 怎么用 usb 设备?通过 usb over lan 之类的软件么?
    我虚拟机主要需求就是安装银行网银:)
        32
    youyoumarco   205 天前
    老老实实 vmware 了,不折腾了,换汤不换药
        33
    liuminghao233   205 天前 via iPhone
    之前用 docker
    搞了半天发现 rawsocket 原来跟 windows 同款
    惊了
    那我装来干嘛
    这个 wsl 估计是一样的
    要跑就跑一个完完整整的虚拟机
    这个真没比 vm 方便多少
        34
    abcbuzhiming   205 天前
    @kevinhwang 不适合你开发的领域罢了,拜托不要把对 windows 的偏见传播给其它人好吗?还历史包袱?搞清楚一点,只论历史包袱的话,linux 重多了!
        35
    LokiSharp   205 天前
    @abcbuzhiming #34 开发环境就说个 PowerShell。。。这个真是给人用的 Shell ? 真不是 PowerScript# 么
        36
    abcbuzhiming   205 天前
    @LokiSharp 怎么就不是给人用的 shell 了? PowerShell 可以完成 windows 的所有功能操作。怎么就不是 shell 了?我说,你们的偏见太可怕了一点吧
        37
    LokiSharp   205 天前
    @abcbuzhiming #36 Tab 补全宛如弱智,Home 里面的 dot 文件 /文件夹不会隐藏。
        38
    LokiSharp   205 天前
    @abcbuzhiming #36 写 Script 是可以,但是作为日常用的 Shell 真的反人类
        39
    shilyx   205 天前   ♥ 2
    Hyper-V 之所以不兼容 vmware 等其他虚拟机,是由其原理决定的

    Hyper-V 安装在 win 上之后,此 win 就成了 Hyper-V 上的有一个虚拟机。除了 win 系统本身可以管理 Hyper-V 之外,win 和 Hyper-V 上的其他虚拟机没有本质区别,大家都是虚拟机。Hyper-V、win、虚拟机是父亲、长兄和弟弟妹妹的关系。

    这之后 win 之上再运行 vmware 相当于虚拟机里的虚拟机,不兼容也是正常的。
        40
    kevinhwang   205 天前 via Android
    @fyyz 确实我用词过分了,开发 Windows 应用那肯定是在 Windows 下了,只能说我接触的环境确实 Linux 下比较多。

    @abcbuzhiming github 上照顾 Windows 用户的估计只有微软了吧,哪怕 Linux 历史包袱重但有更多的开发者迭代,逐渐包袱就轻了,而 Windows 真的是只能靠微软慢慢填坑了。如果把编程当工作没有太多兴趣,Windows 下是肯定能满足的。
        41
    micean   205 天前
    @LokiSharp 不能要求 windows 的文件系统、常用应用和 linux 一样吧……
        42
    LokiSharp   205 天前
    @micean #41 问题是事实上 你的 Home 已经一堆 dotfile 了啊,我在 Home ls 一下 一屏幕 dotfile
        43
    nguoidiqua   205 天前
    我还是老老实实用 VW 和 VB 吧,这年代硬件都不差了,开个浏览器内存都是按 G 算的,为了省那点资源牺牲灵活性和完整性不是太爽,不管是 WSL 还是 WSL2,都是看起来方便,实则用起来更麻烦。

    其实对于用惯 VM 和 VB 的人来说,弄个虚拟机装桌面版 Linux 分分钟的事,就算装 Arch 也是很快的,反而配置 WSL 要麻烦得多。
        44
    Nasei   205 天前 via Android
    @kevinhwang
    mac 也没有原生 docker,win10 好歹还支持 windows 容器,现在做开发,各种服务部署在 linux 还是 win 根本没影响,我不依赖 win 但我依赖 vs,做 linux 开发,我还能用 vs 远程上去调试,做嵌入式我也是先用 vs 写完在调试,而且听说现在 vs 支持裸机 gdb,虽然我已经脱坑了
        45
    micean   205 天前
    @LokiSharp 看 Home 的那对 dot 文件夹的创造者在创建的时候有没有在隐藏的属性上打上 check 了,或者人家压根也不想隐藏。这一点 git 和 svn 就没偷懒
        46
    LokiSharp   205 天前
    @micean #45 其他的我不管 .vscode .ssh 是不隐藏的这个就很傻了
        47
    liprais   205 天前
    只求能解决 wsl 那垃圾的 io 性能
        48
    invalidtoken   205 天前
    @LokiSharp 用户目录里那一堆.开头的文件更多还是应用的问题... 本身在 Windows 上应用配置文件就应该是在 AppData 里而不是直接放进用户目录里的
        49
    msrcatn203   205 天前 via Android   ♥ 3
    我寻思着在座各位应该还没人见到开发完成的 WSL2 怎么就开始云评测了¿
        50
    flanker   205 天前
    @outtime 好像根本关不掉 hype-v 和 vm 只能二选一 所以我直接关掉了 hype-v
        51
    LokiSharp   205 天前
    @invalidtoken #48 然而微软自己也在 Home 扔的
        52
    LokiSharp   205 天前
    @invalidtoken #48 比如 .vscode .dotnet .nuget .ssh .vsts
        53
    kylix   205 天前
    说 windows 不适合编程的,都是搞 web 的吧?
        54
    neoblackcap   205 天前   ♥ 3
    hyper-v 是一型 hypervisor,对标 kvm,当然 vmware 也有类似的产品,好像是 VMware ESXi ?大家日常使用的是二型 hypervisor。当然你们会觉得很方便,不过讲性能是比不过一型 hypervisor 的。当 hyper-v 启动之后,windows 跟它启动的 linux 是同级的,virtualbox 这些运行的 linux 是把 windows 作为宿主。原理上就不兼容。

    想想为什么你们想用 wsl,还不因为 linux 桌面各种问题。若是 linux 真那么好,你们开发的时候早就用 ssh 连到开发机用 vim 开发了。
        55
    LokiSharp   205 天前
    @kylix #53 你是鼠标拖 MFC 的吧?
        56
    Felldeadbird   205 天前
    我好奇 WSL 调用显卡需求是什么?
        57
    MonoLogueChi   205 天前 via Android   ♥ 1
    @lekai63 远程桌面连接的时候可以挂载
        58
    ycfung   205 天前 via Android
    不清楚在工作中 wsl 的意义是什么…我作为学生只用来来跑过 nginx, node.js, gcc(windows 下真的没找到新版的), MySQL, 都是为了方便部署管理而不会影响 Windows 环境。

    用过一段时间 Ubuntu 桌面,虽然都有办法上微信 QQ 之类的,但是这些软件文件管理本来就差…加上 wine 版的各种 bug 和速度慢真的挺不爽。

    所以写代码我还是在 Windows 下,编译调试用 WSL,真正部署项目还是在 VMWare 上比较稳。至于 WSL2,出来再试试吧,其实就算是用 VMware,也就是内存占用大一点,配置好体验真的差不了多少。至于要 GPU 跑机器学习什么的…老实装系统吧。
        59
    Revenant   205 天前
    我能运行 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   205 天前 via iPhone
    @chinvo 游戏作弊和虚拟机有啥关系么……
        61
    chinvo   205 天前
    @fvckDaybyte2 #60 很多保护程序靠内存特征识别恶意组件,于是作弊工具就通过虚拟机来隐藏自己
        62
    Phariel   205 天前 via iPhone
    开 hyper-v 太不方便了 冲突的一匹 就为了关闭它我连 win 版的 docker 都不用了 只能开虚拟机在里面用。。。
        63
    ps1aniuge   204 天前
    让我来谈谈:
    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   204 天前
    楼主说,hyper-v 不能调用 USB,是啥意思?是啥意思?是啥意思?是啥意思?是啥意思?是啥意思?

    我在宿主机上,插上手机,有了盘符。插上 u 盘,有了盘符。在 guest win10 都能读写啊!

    1 或许 win7 不行。微软没有给 usb 驱动。或许 win7 有驱动,但是必须要去微软下载安装,就像 vmwaretools 那样。
    2 要在虚拟机设定中,选中集成服务。
        65
    jinliming2   204 天前
    @ps1aniuge 微软博客里的原文:you will be unable to access the GPU, serial or USBs
        66
    jackmod   204 天前
    扯个别的,禁用 hyper-v 可以改启动项的 hypervisorlaunchtype 选项
        67
    ysc3839   204 天前 via Android   ♥ 1
    @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   204 天前
    如果是这样的话,那么 wsl2 和宿主 win 会有网络隔离?就像 docker for win 一样,wsl2 的网关跟宿主 win 不一样?
        69
    wenhainan   204 天前
    人家自己开发的,爱用不用.又没求你用
        70
    fvckDaybyte2   204 天前 via iPhone
    @chinvo ……然后再通过虚拟机去入侵宿主机的程序?这技术不考虑去微软领几百万刀的奖金么?
        71
    fcymk2   200 天前
    看介绍 会解决和 vmware virtualbox 的兼容问题.
    这个能解决, 就没啥缺点了(和 wsl1 比)
        72
    EdwinHui   129 天前
    @rogwan 请问 VirtualBox 6 怎么和 WSL 2 共存呢?
        73
    efaun   101 天前
    @EdwinHui #72 我也遇到这个问题,你解决了吗,hypervisorlaunchtype Off 就可以使用 vmbox 但不能用 wsl2,hypervisorlaunchtype auto 可以使用 wsl2 但不能使用 vmbox
        74
    smallthing   100 天前
    @kevinhwang 你都有 hyper-v 了为啥不直接在里面开虚拟机,
        75
    admingroup   6 天前
    现阶段跟 vmware 冲突确实是个问题 wsl 和 vmware 是两种东西 都不可或缺啊
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4156 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 08:15 · PVG 16:15 · LAX 00:15 · JFK 03:15
    ♥ Do have faith in what you're doing.