A Microsoft bemutatta a WSL 3.0 (Windows Subsystem for Linux) eszközkészlet kiadását, amely lehetővé teszi a Linux-alkalmazások futtatását Windowsban. Az új ág figyelemre méltó a Linux-konténerek Windowsban történő futtatásának megvalósításával és a 6.18-as Linux-hoz való átállással. A WSL-ben használt parancssori segédprogramok, háttérfolyamatok Linux-környezetekhez, konténerkezelő szolgáltatások és virtuális gép, valamint a wslg grafikus stack nyíltan hozzáférhető az MIT licenc alatt. A Linux kernelhez tartozó változtatások GPLv2 licenc alatt érhetők el.
A WSL egy teljes Linux kernel (6.18-as ágból) alapú virtuális gépet biztosít, amelyen Linux disztribúciók futtathatók. A kernel magában foglalja a WSL-specifikus módosításokat, például az indítási idő csökkentésére és a memóriafogyasztás minimalizálására vonatkozó optimalizálásokat, valamint a Windows által felszabadított memória visszaadásának lehetőségét a Linux-folyamatok által és a felesleges illesztőprogramok és alrendszerek kizárására vonatkozó beállításokat. A rendszer egy külön VHD (virtuális дисковый образ) képfájlban kerül telepítésre ext4 fájlrendszert és virtuális hálózati adaptert használva.
Az új ág tartalmazza a Linux-konténerek Windowsban történő létrehozásához, telepítéséhez és futtatásához szükséges eszközkészletet, beleértve a wslc (WSL Containers) parancssori felületet és a kapcsolódó API-t, amely lehetővé teszi Linux-konténerek futtatását Windows-alkalmazásokból. A wslc főbb jellemzői:
- A konténerek élettartamának kezelésére szolgáló műveletek, mint például a létrehozás, indítás, leállítás, exportálás, törlés, ellenőrzés, a konténer aktivitásáról szóló események továbbítása, fájlok másolása a konténerbe és onnan.
- CPU- és memóriafogyasztás korlátozása az egyes konténerek vonatkozásában.
- Képek készítése, feltöltése, kiküldése, importálása, mentése és ellenőrzése. Parancsok az elérhető képek listájának megtekintésére. Csoportos műveletek több képpel egyszerre. Több kép csomagolásának lehetősége egyetlen tar archívumba.
- Virtuális hálózatok létrehozása és kezelése. Konténerek csatlakoztatása több hálózathoz. Saját hálózattípusok létrehozása. Hálózati portok átirányítása.
- Partíciók létrehozása, megtekintése és törlése. Munka virtuális lemezekkel (VHD).
- Hozzáférés a GPU-hoz a konténerekből és könyvtárak biztosítása a nem privilegizált felhasználók számára a GPU-val való munkához.
- Munkamenetek létrehozása szükség szerint, nevek hozzárendelése a munkamenetekhez, testreszabható tárolási hely.
- API SDK a konténerek automatizálására C++ és C# / WinRT programokból.
- A „wslc logs” parancs a naplók megtekintésére és adatkinyerésre. Statisztikák megjelenítése a konténer működéséről. A kimenet kiemelése a „wslc” segédprogramban.
- Integráció az MSBuild-dal és CMake-mel.
- Támogatás az ADMX csoportházirendeken keresztüli vezérléshez.
- A VS Code dev container kiterjesztés támogatása, amely lehetővé teszi a kód fejlesztési környezetben való futtatását és összeállítását konténerben.
- A wslc használatának lehetősége runtime-ként a konténerek indításához az Aspire eszközkészletén belül.
- A vscode-container-client bővítmény a konténerek kezelésére a VS Code kódszerkesztőből.
- A wslc konténerek kezelése a Lazywslc szöveges felületén vagy a WinUI 3 asztali alkalmazásban.
- Kötegelés Linux-konténerek indításához Linux disztribúciókból, amelyek WSL-en futnak.

A konténerek alapértelmezetten a „virtiofs” fájlrendszert használják, amely kétszeres sebességnövekedést mutat a Windows fájlokhoz való hozzáférésnél, és a „consomme” hálózati üzemmódot biztosítja, amely javított kompatibilitást nyújt a különböző hálózati konfigurációkkal (VPN, proxy stb.). A „consomme” üzemmódban a Linux forgalmat Windows keresztül továbbítják, lehetővé téve a Linux alkalmazások számára, hogy kihasználják a Windows hálózati környezetének összes lehetőségét, beleértve a biztonsági irányelveket és a vállalati rendszerekkel való integrációs eszközöket.
A konténerek futtatásáért a wslservice.exe privilegizált Windows-szolgáltatás felelős, amely elindítja virtuális gépek és használja őket Linux végrehajtására. A WSL-től eltérően a wslservice.exe egy wslcsession.exe alprocesszt létrehozni a konténerekhez, amelyet a jelenlegi felhasználó jogával hajtanak végre, és amely ilyen műveleteket hajt végre: konténerek létrehozása, könyvtárak csatolása és hálózati portok továbbítása. Különböző munkamenetek szigorúan izolálva működnek, és különböző folyamatokban futnak. Minden munkamenethez egy külön VHD tároló kapcsolódik, amely a %AppData%\Local\wslc\sessions könyvtárban található. Lehetséges a Windows útvonalainak csatolása Linux-konténerben a fájlokhoz való közös hozzáférés érdekében.

Forrás: opennet.ru
