
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.


