
Microsoft представила подсистему Windows для Linux (Windows Subsystem for Linux — WSL) 3.0, позволяющую запускать Linux‑приложения в Windows. Новая ветка примечательна реализацией возможности для запуска Linux‑контейнеров в Windows и переходом на ядро Linux 6.18. Исходный код применяемых в WSL утилит командной строки, фоновых процессов для Linux‑окружений, графического стека wslg, сервисов для запуска контейнеров и виртуальной машины опубликован на GitHub под лицензией MIT. Версия WSL 2.0 вышла в сентябре 2023 года.
Инструментарий WSL предоставляет виртуальную машину с полноценным ядром Linux, в которой могут запускаться дистрибутивы Linux. Ядро включает специфичные для WSL изменения, такие как оптимизации для сокращения времени запуска и уменьшения потребления памяти, возможность возвращения Windows освобождённой Linux‑процессами памяти и настройки для исключения лишних драйверов и подсистем. Система WSL устанавливается в отдельный дисковый образ (VHD) c файловой системой ext4 и виртуальным сетевым адаптером.
По информации OpenNET, в состав новой ветки WSL включён инструментарий для создания, развёртывания и запуска Linux‑контейнеров в Windows, включающий интерфейс командной строки wslc (WSL Containers) и сопутствующий API, позволяющий запускать Linux‑контейнеры из Windows‑программ. Основные возможности wslc:
-
операции для управления жизненным циклом контейнеров, такие как создание, запуск, остановка, экспорт, очистка, инспектирование, проверка работы, передача событий об активности контейнера, копирование файлов в контейнер и из него;
-
ограничение потребления CPU и памяти отдельных контейнеров;
-
сборка, загрузка, отправка, импорт, сохранение и проверка системных образов. Команды для просмотра списков доступных образов. Пакетные операции сразу с несколькими образами. Возможность упаковки нескольких образов в один tar‑архив;
-
создание и управление виртуальными сетями. Присоединение контейнеров к нескольким сетям. Создание собственных типов сетей. Проброс сетевых портов;
-
создание, просмотр и удаление разделов. Работа с виртуальными дисками (VHD);
-
доступ к GPU из контейнеров и предоставление библиотек для работы непривилегированных пользователей с GPU;
-
создание сеансов по мере необходимости, присвоение имён сеансам, настраиваемое местоположение хранилища;
-
SDK c API для автоматизации работы с контейнерами из программ на C++ и C#/WinRT;
-
команда «wslc logs» для просмотра и выборки данных из логов. Вывод статистики о работе контейнера. Подсветка вывода в утилите wslc;
-
интеграция с MSBuild и CMake;
-
поддержка управления при помощи групповых политик ADMX;
-
поддержка расширения VS Code dev container для запуска и сборки разрабатываемого кода в контейнере;
-
возможность использования wslc в качестве runtime для запуска контейнеров в инструментарии Aspire;
-
расширение vscode‑container‑client для управления контейнерами из редактора кода VS Code;
-
управление контейнерами wslc через текстовый интерфейс Lazywslc или десктоп‑приложение WinUI 3;
-
обвязка для запуска Linux‑контенеров из дистрибутивов Linux, запущенных в WSL.

Источник: habr.com