Microsoft har præsenteret frigivelsen af værktøjerne WSL 3.0 (Windows Subsystem for Linux), som gør det muligt at køre Linux-applikationer i Windows. Den nye version er bemærkelsesværdig for implementeringen af muligheden for at køre Linux-containere i Windows og overgangen til brug af Linux-kernen 6.18. Koden for de anvendte WSL kommandolinjeværktøjer, baggrundsprocesser til Linux-miljøer, tjenester til kørsel af containere og den virtuelle maskine samt det grafiske stack wslg er åbent under MIT-licensen. Ændringerne til Linux-kernen leveres under GPLv2-licensen.
WSL leverer en virtuel maskine med en fuld Linux-kerne (baseret på version 6.18), hvor Linux-distributioner kan køre. Kernen inkluderer specifikke ændringer til WSL såsom optimeringer for at reducere opstartstiden og minimere hukommelsesforbruget, muligheden for at returnere den hukommelse, der er frigivet af Linux-processer tilbage til Windows, samt indstillinger for at udelukke unødvendige drivere og underystemer. Systemet installeres i et separat diskbillede (VHD) med en ext4-filsystem og en virtuel netværksadapter.
Den nye version inkluderer værktøjer til oprettelse, implementering og kørsel af Linux-containere i Windows, herunder kommandolinjegrænsefladen wslc (WSL Containers) og den tilhørende API, der muliggør kørsel af Linux-containere fra Windows-programmer. Hovedfunktionerne i wslc:
- Operationer til at styre containernes livscyklus, såsom oprettelse, kørsel, stop, eksport, oprydning, inspektion, overvågning af aktivitet, overførsel af begivenheder om containeraktivitet, samt kopiering af filer til og fra containeren.
- Begrænsning af CPU- og hukommelsesforbrug for individuelle containere.
- Bygning, upload, sendelse, import, gemmelse og verifikation af systembilleder. Kommandoer til at se lister over tilgængelige billeder. Batchoperationer med flere billeder ad gangen. Mulighed for at pakke flere billeder i et enkelt tar-arkiv.
- Oprettelse og styring af virtuelle netværk. Tilslutning af containere til flere netværk. Oprettelse af egne netværkstyper. Port forwarding.
- Oprettelse, visning og sletning af partitioner. Arbejde med virtuelle diske (VHD).
- Adgang til GPU fra containere og tilvejebringelse af biblioteker til brug for ikke-administratorbrugere med GPU.
- Oprettelse af sessioner efter behov, tildeling af navne til sessioner, tilpasset placering af lager.
- SDK med API til automatisering af containerarbejde fra programmer i C++ og C#/WinRT.
- Kommandoen «wslc logs» for at se og filtrere data fra logs. Output af statistik om containerens drift. Fremhævelse af output i værktøjet «wslc».
- Integration med MSBuild og CMake.
- Understøttelse af administration via gruppepolitikker ADMX.
- Understøttelse af udvidelsen VS Code dev container til at køre og bygge udviklet kode i containeren.
- Mulighed for at bruge wslc som runtime til at køre containere i Aspire-værktøjet.
- Udvidelsen vscode-container-client til administration af containere fra kodeeditoren VS Code.
- Styring af wslc-containere via tekstgrænsefladen Lazywslc eller desktop-applikationen WinUI 3.
- Wrapper til kørsel af Linux-containere fra Linux-distributioner kørende i WSL.

Standardfilssystemet i containerne er «virtiofs», som giver dobbelt så hurtig adgang til Windows-filer, og netværksdriftsmode «consomme», der sikrer bedre kompatibilitet med forskellige netværkskonfigurationer (VPN, proxy osv.). I «consomme»-tilstand videresendes Linux-trafik gennem Windows, hvilket gør det muligt at bruge alle Windows-netværksmiljøets muligheder for Linux-applikationer, inklusive sikkerhedspolitikker og midler til integration med virksomheds systemer.
Containerne styres af den privilegerede Windows-tjeneste wslservice.exe, som starter virtuelle maskiner og bruger dem til at køre Linux. I modsætning til WSL opretter tjenesten wslservice.exe et datterskabsproces wslcsession.exe til containerne, der kører med den aktuelle brugers rettigheder og håndterer operationer som oprettelse af containere, montering af kataloger og videresendelse af netværksporte. Forskellige sessioner er strengt adskilt fra hinanden og kører i forskellige processer. Hver session får et separat VHD-lager, der placeres i katalogen %AppData%\Local\wslc\sessions. Det er muligt at montere Windows-stier i Linux-containeren for filadgang.

Kilde: opennet.ru
