Microsoft публикува WSL 3.0 с поддръжка на стартиране на Linux контейнери в Windows

Компания Microsoft представи версия на инструмента WSL 3.0 (Windows Subsystem for Linux), позволяваща стартиране на Linux приложения в Windows. Новата версия се отличава с реализирането на възможност за стартиране на Linux контейнери в Windows и преминаване на използването на ядрото Linux 6.18. Кодът на приложенията, използвани в WSL, включва утилити за команден ред, фонови процеси за Linux среди, услуги за стартиране на контейнери и виртуални машини, както и графичен стек wslg, е отворен под лиценз MIT. Промените за ядрото Linux се доставят под лиценз GPLv2.

WSL предоставя виртуална машина с пълноценно ядрото Linux (на базата на версия 6.18), в която могат да се стартират дистрибуции на Linux. Ядрото включва специфични за WSL промени, като оптимизации за намаляване на времето за стартиране и намаляване на консумацията на памет, възможността Windows да освобождава памет, заета от Linux процеси, и настройки за изключване на излишни драйвъри и подсистеми. Системата се инсталира в отделен дисков образ (VHD) с файлова система ext4 и виртуален мрежов адаптер.

В новата версия е включен инструментарий за създаване, развръщане и стартиране на Linux контейнери в Windows, включващ интерфейс за команден ред wslc (WSL Containers) и свързан API, позволяващ стартиране на Linux контейнери от Windows приложения. Основните възможности на wslc:

  • Операции за управление на жизнения цикъл на контейнерите, като създаване, стартиране, спиране, експортиране, почистване, инспектиране, проверка на работата, предаване на събития за активността на контейнера, копиране на файлове в контейнера и от него.
  • Ограничаване на потреблението на CPU и памет от отделни контейнери.
  • Създаване, качване, изпращане, импортиране, запазване и проверка на системни образи. Команди за преглед на списъци с налични образи. Пакетни операции с няколко образа. Възможност за опаковане на няколко образа в един tar архив.
  • Създаване и управление на виртуални мрежи. Присъединяване на контейнери към няколко мрежи. Създаване на собствени типове мрежи. Пробиване на мрежови портове.
  • Създаване, преглед и изтриване на дялове. Работа с виртуални дискове (VHD).
  • Достъп до GPU от контейнери и предоставяне на библиотеки за работа на непривилегировани потребители с GPU.
  • Създаване на сесии при необходимост, присвояване на имена на сесиите, настраиваемо местоположение на хранилището.
  • SDK с API за автоматизация на работата с контейнери от програми на C++ и C#\/WinRT.
  • Командата „wslc logs“ за преглед и извличане на данни от логовете. Изход на статистиката за работата на контейнера. Подсветка на изхода в утилитата „wslc“.
  • Интеграция с MSBuild и CMake.
  • Поддръжка на управление с помощта на групови политики ADMX.
  • Поддръжка на разширението VS Code dev container за стартиране и компилиране на разработвания код в контейнера.
  • Възможност за използване на wslc като среда за стартиране на контейнери в инструмента Aspire.
  • Разширението vscode-container-client за управление на контейнери от редактора VS Code.
  • Управление на контейнерите wslc чрез текстовия интерфейс Lazywslc или десктоп приложението WinUI 3.
  • Обвивка за стартиране на Linux контейнери от дистрибуции на Linux, стартирани в WSL.

В контейнерите по подразбиране се използва файловата система „virtiofs“, демонстрираща двойно ускорение на достъпа до файлове под Windows, и режимът на работа с мрежата „consomme“, осигуряващ подобрена съвместимост с различни мрежови конфигурации (VPN, прокси и т.н.). В режим „consomme“ трафикът на Linux се предава през Windows, което позволява на Linux приложенията да използват всички възможности на мрежовата среда на Windows, включително политики за сигурност и средства за интеграция с корпоративни системи.

За изпълнението на контейнерите отговаря привилегирован Windows услуга wslservice.exe, която стартира виртуални машини и ги използва за изпълнение на Linux. За разлика от WSL, услугата wslservice.exe създава за контейнерите дочерен процес wslcsession.exe, стартиран с правата на текущия потребител и поемащ операции като създаване на контейнери, монтиране на директории и пренасочване на мрежови портове. Различните сесии са строго изолирани помежду си и работят в различни процеси. За всяка сесия се свързва отделно хранилище VHD, разположено в директорията %AppData%\Local\wslc\sessions. Възможно е монтиране на Windows пътища в Linux контейнера за споделено достъпване на файлове.



Източник: opennet.ru
Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster