Microsoft анонсировал подсистему WSL2 со штатным ядром Linux

Компания Microsoft представила на проходящей в эти дни конференции Microsoft Build 2019 обновлённую подсистему WSL2 (Windows Subsystem for Linux), предназначенную для запуска исполняемых файлов Linux в Windows. Ключевой особенностью второй редакции является поставка полноценного ядра Linux, вместо прослойки на лету транслирующей системные вызовы Linux в системные вызовы Windows.

Тестовый выпуск WSL2 будет предложен в конце июня в экспериментальных сборках Windows Insider. Поддержка WSL1 на базе эмулятора будет сохранена и пользователи смогут использовать её бок о бок с WSL2. Для запуска ядра Linux в окружении Windows задействована легковесная виртуальная машина, уже применяемая в Azure.

В рамках WSL2 для Windows 10 будет предлагаться компонент со штатным ядром Linux 4.19. По мере выхода исправлений для LTS ветки 4.19, ядро для WSL2 будет оперативно обновляться через механизм Windows Update и тестироваться в инфраструктуре непрерывной интеграции Microsoft. В WSL2 будет использоваться то же ядро, что применяется в инфраструктуре Azure, что позволит упростить сопровождение.

Все подготовленные для интеграции ядра с WSL изменения будут опубликованы под свободной лицензией GPLv2 и будут передаваться в upstream. Подготовленные патчи включают оптимизации для сокращения времени запуска ядра, уменьшения потребления памяти и оставления в ядре минимально необходимого набора драйверов и подсистем. Предлагаемое ядро сможет выступать в качестве прозрачной замены эмулирующей прослойки, предлагаемой в WSL1. Наличие исходных текстов позволит энтузиастам при желании формировать свои сборки ядра Linux для WSL2, для чего будут подготовлены необходимые инструкции.

Использование штатного ядра с оптимизациями от проекта Azure позволит добиться полной совместимости c Linux на уровне системных вызовов и обеспечить возможность бесшовного запуска в Windows контейнеров Docker, а также реализовать поддержку файловых систем на базе механизма FUSE. Кроме того в WSL2 существенно увеличена производительность ввода/вывода и операций с файловой системой, которая раньше была узким местом WSL1. Например, при распаковке сжатого архива WSL2 быстрее WSL1 в 20 раз, а при выполнении операций «git clone», «npm install», «apt update» и «apt upgrade» в 2–5 раз.

Несмотря на поставку ядра Linux, как и раньше WSL2 не будет предоставлять готовый набор компонентов для пространства пользователя. Данные компоненты устанавливаются отдельно и базируются на сборках различных дистрибутивов. Например, для установки в WSL в каталоге Microsoft Store предлагаются сборки Ubuntu, Debian GNU/Linux, Kali Linux, SUSE и openSUSE. Для взаимодействия с предлагаемым в Windows ядром Linux потребуется подстановка в дистрибутив небольшого скрипта инициализации, изменяющего процесс загрузки. Компания Canonical уже заявила о намерении обеспечить полноценную поддержку работы Ubuntu поверх WSL2.

Дополнительно можно отметить публикацию компанией Microsoft эмулятора терминала Windows Terminal, код которого распространяется под лицензией MIT. Терминал предоставляет интерфейс на базе вкладок и разделяемые окна, полностью поддерживает Unicode и escape-последовательности для цветного вывода, позволяет менять темы оформления и подключать дополнения. Летом новый терминал станет доступен пользователям Windows через каталог Microsoft Store.

©  OpenNet