Под катом расположен перевод опубликованного FAQ'а о деталях будущей WSL второй версии (автор — Craig Loewen).







WSL 2 использует Hyper-V? Будет ли WSL 2 доступна на Windows 10 Home?


WSL 2 будет доступна во всех редакциях Windows, где в настоящее время доступна WSL 1 (включая Windows 10 Home).


Во второй версии WSL для обеспечения виртуализации используется архитектура Hyper-V. Эта архитектура будет доступна в дополнительном компоненте, который является подмножеством функций Hyper-V. Этот дополнительный компонент будет доступен во всех редакциях ОС. Ближе к релизу WSL 2 мы более подробно расскажем об этом новом компоненте.



Что будет с WSL 1? Она будет заброшена?


В настоящее время мы не планируем отказываться от WSL 1. Вы можете запускать дистрибутивы WSL 1 и WSL 2 бок о бок на одной машине. Добавление WSL 2 в виде новой архитектуры помогает команде WSL расширять удивительные возможности запуска среды Linux под Windows.



Будет ли возможность одновременно запустить WSL 2 и другие сторонние инструменты виртуализации (например VMWare или Virtual Box)?


Некоторые сторонние приложения не могут работать, когда используется Hyper-V, что означает, что они не смогут работать при включенной WSL 2. К сожалению, к ним относятся VMWare и Virtual Box.


Мы изучаем способы решения этой проблемы. Например, мы предоставляем набор API под названием Hypervisor Platform, который может быть использован сторонними поставщиками виртуализации для обеспечения совместимости своего программного обеспечения с Hyper-V. Это позволяет приложениям использовать архитектуру Hyper-V для эмуляции, например: эмулятор Google Android теперь совместим с Hyper-V.


Примечание переводчика


Oracle VirtualBox уже имеет экспериментальную возможность использовать Hyper-V для виртуализации своих машин:


No configuration is required. Oracle VM VirtualBox detects Hyper-V automatically and uses Hyper-V as the virtualization engine for the host system. The CPU icon in the VM window status bar indicates that Hyper-V is being used.

Но это приводит к заметной деградации производительности:


When using this feature, you might experience significant Oracle VM VirtualBox performance degradation on some host systems.

По личному опыту совместного использования Hyper-V и VirtualBox могу отметить, что VirtualBox с каждым релизом улучшают поддержку работы своих виртуальных машин под Hyper-V. Но до сих пор скорость работы не позволяет полноценно перейти на подобный симбиоз для повседневных задач, даже не требовательных к производительности. Банальная перерисовка окон внутри виртуальной машины происходит с видимой задержкой. Искренне надеюсь, что ситуация улучшиться ко времени релиза WSL 2.



Можно ли будет получить доступ к GPU из WSL 2? Какие планы на расширение поддержки оборудования?


В начальных выпусках WSL 2 поддержка доступа к оборудованию будет ограничена. Например вы не сможете получить доступ к графическому процессору, последовательному порту и USB. Тем не менее, добавление поддержки устройств имеет высокий приоритет в наших планах, поскольку это открывает множество возможностей разработчикам, которые хотят взаимодействовать с этими устройствами. В то же время вы всегда можете использовать WSL 1, которая предоставляет доступ и к последовательному порту, и к USB. Пожалуйста, следите за новостями в этом блоге и твиттере членов команды WSL, чтобы быть в курсе последних функций, которые появятся в инсайдерских сборках, и дайте нам знать с какими устройствами вы хотите взаимодействовать!



Сможет ли WSL 2 использовать сетевые приложения?


Да, в общем случае сетевые приложения будут работать быстрее и лучше, поскольку мы обеспечиваем полную совместимость системных вызовов. Однако в новой архитектуре используются виртуализированные сетевые компоненты. Это означает, что в начальных предварительных сборках WSL 2 будет вести себя как виртуальная машина, например WSL 2 будет иметь свой IP-адрес (не такой, как у хоста). Мы стремимся к тому, что бы опыт использования WSL 2 был аналогичен WSL 1, что включает в себя улучшения поддержки сетевой подсистемы. Мы планируем максимально быстро добавить возможность коммуникации между всеми сетевыми приложениями из Linux или Windows с использованием localhost. Мы будем публиковать более подробную информацию о нашей сетевой подсистеме и улучшениях по мере приближения к выпуску WSL 2.



Если у вас есть дополнительные вопросы о WSL или вы просто хотите обратиться к команде WSL, вы можете найти нас в Twitter:


Комментарии (28)


  1. sheknitrtch
    14.05.2019 18:12

    У меня к WSL 2 есть только один вопрос: можно ли будет Docker в нём запустить? Сейчас Docker под Windows работает плоховато.


    1. kITerE Автор
      14.05.2019 18:19

      https://devblogs.microsoft.com/commandline/announcing-wsl-2/


      Here’s a quick demo of WSL 2 in action. When we start our distro we get access to a working bash shell in under two seconds, and can run services and apps like docker right away.

      GIF


      1. 411
        14.05.2019 23:41

        Тут вопрос будут ли нормально фолдеры мапиться, запустить докер обычно не проблема


  1. HellKaim
    14.05.2019 18:58

    А кто-то может мне объяснить зачем?


    1. dartraiden
      14.05.2019 20:34
      +1

      Допустим, я там прошивку для роутера периодически собираю. Намного быстрее, чем создавать виртуалку с парой ядер (оставшиеся два хосту пригодятся), устанавливать туда операционную систему…

      Периодически таки возникают задачи, которые надо сделать из-под Linux, а вот возиться с виртуалками для этого кажется перебором.


      1. HellKaim
        14.05.2019 20:49
        +1

        Ок, просто я работаю под linux и у меня как раз windows в виртуалках…
        ;)


    1. V1tol
      15.05.2019 00:01

      1. mkvtoolnix. Мне bash скрипт для муксинга несколько дорог с субтитрами в один файл написать проще, чем разбираться с синтаксисом батников
      2. youtube-dl. Просто проще, чем ставить на хост питон или пользоваться тухлыми сторонними сборками.
      3. ну и конечно же ssh, куда же без него.


  1. pmcode
    14.05.2019 18:59
    +2

    Ожидание: MS встроил полноценное ядро Linux в Windows 10
    Реальность: виртуалка и лок на использование сторонних гипервизоров


    1. fedorro
      15.05.2019 10:44

      Точнее и не скажешь… Первый раз услышал — думал ща все гипервизоры и Dual Boot на свалку и буду запускать все линуксовое нативно да еще с поддержкой GPU. Hyper-V точно ставит на всем этом жирный крест.


  1. staticmain
    14.05.2019 19:31

    Некоторые сторонние приложения не могут работать, когда используется Hyper-V, что означает, что они не смогут работать при включенной WSL 2. К сожалению, к ним относятся VMWare и Virtual Box.

    Мы изучаем способы решения этой проблемы. Например, мы предоставляем набор API под названием Hypervisor Platform, который может быть использован сторонними поставщиками виртуализации для обеспечения совместимости своего программного обеспечения с Hyper-V.

    Но это приводит к заметной деградации производительности:

    Банальная перерисовка окон внутри виртуальной машины происходит с видимой задержкой.


    Я правильно понимаю, что Embrace и Extend мы уже прошли и сейчас на стадии Extinguish? Это все выглядит как явный саботаж сторонних приложений той же направленности.


    1. kITerE Автор
      14.05.2019 20:00
      +1

      Гипервизоры вообще слабо совместимы друг с другом.


    1. dartraiden
      14.05.2019 20:13
      +1

      Hyper-V на протяжении уже 11 лет забирает себе «виртуализацию», делая параллельный запуск других гипервизоров невозможным. Почему вас только сейчас это удивило?

      Если ядро Linux будет запускаться в гипервизоре, то эта ситуация ничем не отличается от того, что мы имели всегда: если в компонентах включена Hyper-V, то остальные системы виртуализации не могут работать («hypervisor is running all the time underneath the host OS, and only one thing can control the VT hardware at a time»). Подозреваю, что если одновременно попытаться запустить, скажем, VMWare и VirtualBox, то тоже возникнет ситуация «кто первый запустился, того и тапки».

      Это одна из причин, почему дома я переехал на Hyper-V — хочется пользоваться защитой целостности памяти, а она реализована средствами Hyper-V.

      сейчас на стадии Extinguish
      Hyper-V это собственная разработка Microsoft, каким образом они могут её «поддержать, надстроить и уничтожить»? Это можно сделать только в отношении какого-то чужого решения. В MS решили, что гипервизор будет автоматически запускаться вместе с ОС. Вас никто не лишает возможности отключить WSL, Hyper-V и запускать дистрибутив Linux в сторонней виртуалке.


      1. staticmain
        15.05.2019 07:39

        Hyper-V это собственная разработка Microsoft, каким образом они могут её «поддержать, надстроить и уничтожить»?
        Вообще я имел в виду обратное — МС проталкивает свой Hyper-V, который медленнее потому что другие средства виртуализации придумали не они.


        1. snd3r
          15.05.2019 08:08

          Медленнее чем что? Чем virtualbox однозначно быстрее, особенно в работе с сетью. С VMware сложно сравнивать, но по ощущениям не медленнее, при этом бесплатно и из коробки


          1. staticmain
            15.05.2019 08:36

            Не знаю, как сейчас, но когда я в последний раз его тыкал он принудительно для всех Linux гостов ставил один виртуальный процессор (для виндов, понятное дело, больше).

            Инструменты администрирования отвратительны и так считаю не только я:
            www.petri.com/hyper-v-biggest-weakness
            Зависимость от воли МС из разряда (ну мы похоронили ХР, значит то же самое должны сделать все разработчики): backupchain.com/i/hyper-v-disadvantages-how-hyper-v-costs-you


            1. snd3r
              15.05.2019 10:25

              для всех Linux гостов ставил один виртуальный процессор

              Не могу такого представить, даже погуглил и ничего такого не нашел.


              Инструменты администрирования отвратительны

              А какие именно инструменты и с чем вы сравниваете?
              PowerShell — изумительный инструмент администрирования, даже VMware, котоорая себе свой PowerCLI написала, вдохновившись, тоже видимо с вами не совсем согласна.


              www.petri.com/hyper-v-biggest-weakness

              I was once a huge advocate of System Center Virtual Machine Manager (SCVMM), but that started to change with the 2012 version.

              I am a big fan of PowerShell, as I use it in all of my deployments, and I automate a lot of change with it. Although PowerShell really is a time saver, I am a realist.

              The few administration experience changes to HVM since Windows Server 2008 are mostly cosmetic.

              Прочитал все претензии, на мой взгляд их там всего два вида:


              • Майкрософт, сделай мне уже гуи посовременнее;


              • Спасибо за PowerShell, я им чиню все быстро и удобно, но гуи ты обнови.



              Судя по контексту, все это актуально в большей части для 2008 сервера, с некоторым опытом 2012, сейчас вероятно часть этих претензий уже не актуальна. Да и подобного можно про любой продукт написать, как-то не похоже на "Инструменты администрирования отвратительны".


              К тому же Hyper-V можно пользоваться абсолютно бесплатно без каких либо ограничений по API, в отличие от ESXi.


  1. medvedevia
    14.05.2019 20:27

    VirtualBox ничем не лучше HyperV, а даже хуже. Я написал небольшой проверочный код (в цикле SHA256 считает на c# и go). На железе и на HyperV работает примерно одинаково, на VirtualBox в 2 раза медленнее. На WMVare Workstation примерно как на HyperV. Единственное когда VirtalBox может пригодиться — это подключить usb-устройства в виртуалку.


    1. dartraiden
      14.05.2019 20:29

      Не единственное. Попробуйте запустить современную macOS в Hyper-V. VirtualBox и варю можно, хотя бы, пропатчить для этого…

      А ещё попробуйте завести Windows XP в качестве гостевой. Во-первых, вы столкнётесь с тем, что guest tools в Hyper-V для неё нет, ведь поддержка ОС прекращена и сразу же отпала всякая необходимость запускать её в виртуалке (по мнению Microsoft). Во-вторых, когда вы таки отыщете в интернете образ с guest tools от более старых версий Hyper-V, то обнаружите, что копирование-вставка в/из виртуалки так и не работает после установки всего этого добра (либо у меня руки из задницы).


      1. medvedevia
        14.05.2019 22:15

        Ну это у вас совсем какие-то специфичные случаи. Я XP сто лет уже не видел и надеюсь больше никогда не увижу))


        1. dartraiden
          14.05.2019 22:18
          +3

          А очень простой случай, появляется тикет «когда я делаю так-то и так-то, появляется вот такая вот загогулина, вот отчёт вашей программы». Смотришь — а у него XP, а в твоей 10-ке это не воспроизводится. И всё, нужно заводить виртуалку и вкорячивать туда отладчик. Отстрелить поддержку XP, увы, не вариант, сотни тысяч таких пользователей у нас. Особенно, когда все версии QIP в этом году скончались, мы сразу тысяч 100 новых установок зафиксировали. Т.е., вся эта орда некрофилов, которые сидели на квипах под XP, ломанулась к нам, и теперь их надо поддерживать.

          Если когда-нибудь удастся отстрелить поддержку XP, напьюсь от радости, честное слово.


    1. kITerE Автор
      14.05.2019 21:24

      Плюс VirtualBox влил в себя код VirtualKD, что серьезно ускоряет kernel-отладку старых Windows-машин.


    1. Sabubu
      14.05.2019 23:06

      Вы сделали большую ошибку в тесте. Вы тестируете по сути просто арифметические команды. Они должны примерно одинаково выполняться как на реальном железе, так и на виртуальном, так как они выполняются в userspace без выхода в режим ядра или в гипервизор, и для процессора в этот момент разницы нет, присутствует виртуализация или нет.


      Тестировать надо именно выходы в режим ядра: системные вызовы, работа с внешними устройствами, выделение и освобождение памяти. Например: чтение множества файлов, чтение огромного memory mapped файла, сетевая активность, передача данных через пайп, воспроизведение звука, отображение интерфейса. Вот тут вас ждут и реальные задержки, и провалы производительности, и различия между системами виртуализации. Сравните скорость работы графического интерфейса с 3D-эффектами, игры на голом железе и в виртуальной машине.


      1. medvedevia
        14.05.2019 23:51

        У меня серверные приложения, я работаю на Винде, а приложения на линукс в докере. Я не выбирал между железом и виртуалкой, я выбирал между разными виртуалками. Я заметил, что на виртуалбокс работает медленнее, сделал небольшой тест который подтвердил это. Кроме того, сам виртуалбокс довольно глючный, за год у меня несколько раз отваливалась сеть, так что потом она поднималась только после танцев с бубнами. А подключенный usb девайс на 6 виртуалбоксе отваливался стабильно каждые 3 часа, а на 5ом раз в сутки. На hyperv теперь все стабильно, usb правда пришлось прикинуть с линуксовой тачки.


  1. muxa_ru
    14.05.2019 23:42
    +1

    Они хотя запихнуть WSL в витруалку я и не смогу вызывать cmd из bash и bash из cmd? ( https://habr.com/ru/post/326634/ )


    Сволочи :(


    1. Fynjy007
      15.05.2019 07:56

      Сможешь. Подробности www.youtube.com/watch?v=lwhMThePdIo тридцать седьмая минута.


  1. Whuthering
    15.05.2019 08:09

    Когда по сути дела полноценная виртуалка работает быстрее, чем враппер системных вызовов, то, видимо, что-то не так в этом королевстве...


    1. worldmind
      15.05.2019 11:13

      Не знаю насчёт быстрее, но враппер работает не очень, полно всяких неприятных багов, да и интеграция оставляет желать лучшего, может виртуалка хотя бы будет работать как нормальный линукс без дополнительных багов.


      1. Whuthering
        15.05.2019 12:01
        +1

        Говорят, что по крайней мере в плане I/O будет сильно быстрее

        How much faster is WSL 2?

        File intensive operations like git clone, npm install, apt update, apt upgrade, and more will all be noticeably faster. The actual speed increase will depend on which app you’re running and how it is interacting with the file system. Initial tests that we’ve run have WSL 2 running up to 20x faster compared to WSL 1 when unpacking a zipped tarball, and around 2-5x faster when using git clone, npm install and cmake on various projects. We’re looking forwards to seeing speed comparisons from the community when we release!