Microsofti ettevõte tutvustas WSL 3.0 (Windows Subsystem for Linux) tööriistakomplekti, mis võimaldab Linuxi rakenduste käivitamist Windowsis. Uus haru on tähelepanuväärne selle poolest, et see võimaldab Linuxi konteinerite käivitamist Windowsis ning üleminekut Linuxi 6.18 tuuma kasutamisele. WSLis kasutatavate käsurea utiliitide, taustaprotsesside Linuxi keskkondades, konteinerite käivitamise teenuste ja virtuaalmasina ning graafilise steigi wslg kood on avatud MIT litsentsi alusel. Muudatused Linuxi tuumas antakse välja GPLv2 litsentsi alusel.
WSL pakub virtuaalmasinat täieõigusliku Linuxi tuumaga (põhinedes harul 6.18), kus saab käivitada Linuxi jaotusi. Tuum sisaldab WSL spetsiifilisi muudatusi, nagu käivitamisaegade vähendamise ja mälu tarbimise optimeerimised, võimalus vabastada Windowsi poolt Linuxi protsesside poolt kasutatud mälu ning seadeid liigsete draiverite ja alamsüsteemide väljaarvamiseks. Süsteem installitakse eraldi ketta pildi (VHD) koos ext4 failisüsteemi ja virtuaalse võrguadapteriga.
Uude harusse on lisatud tööriistakomplekt Linuxi konteinerite loomise, arendamise ja käivitamise jaoks Windowsis, sealhulgas käsurea liides wslc (WSL Containers) ja sellega seotud API, mis võimaldab Linuxi konteinerite käivitamist Windowsi programmide seest. wslc põhifunktsioonid:
- Konteinerite elutsükli haldamiseks mõeldud toimingud, nagu loomine, käivitamine, peatamine, eksportimine, puhastamine, inspektsioon, töö kontrollimine, konteineri tegevuse sündmuste edastamine, failide kopeerimine konteinerisse ja sealt välja.
- Erakollektsioonide CPU ja mälutarbimise piiramine.
- Süsteemipiltide kogumine, laadimine, saatmine, importimine, salvestamine ja kontrollimine. Käskud piltide loetlemiseks. Kordamised mitme pildiga. Mitme pildi pakendamine ühe tar-arhiivi.
- Virtuaalsete võrkude loomine ja haldamine. Konteinerite ühendamine mitmesse võrku. Oma võrgutüüpide loomine. Võrguportide edastamine.
- Jaotiste loomine, vaatamine ja kustutamine. Töö virtuaalsete kettasüsteemidega (VHD).
- GPU-le juurdepääs konteineritest ja teekide pakkumine, et võimaldada mitteprivileegitud kasutajatel töötada GPU-dega.
- Seansside loomine vastavalt vajadusele, seansside nimetamine, kohandatav salvestuskoht.
- SDK koos API-ga konteinerite automaatseks haldamiseks C++ ja C# / WinRT programmides.
- Käsk «wslc logs» logide vaatamiseks ja andmete valimiseks. Konteineri tööstatistika väljund. Väljundi esiletõstmine utiliidis «wslc».
- Integratsioon MSBuildi ja CMake'iga.
- ADMX grupipoliitika haldamise toeta.
- VS Code dev containeri laienduse tugi, et käivitada ja koostada arendatavat koodi konteineris.
- wslc kasutamise võimalus kui konteinerite käitamise runtime Aspire tööriistakomplektis.
- vscode-container-clienti laiendus konteinerite haldamiseks VS Code'i koodiredaktorist.
- Konteinerite wslc haldamine tekstilise liidese Lazywslc või töölauarakenduse WinUI 3 kaudu.
- Ümbermøõbimine Linuxi konteinerite käivitamiseks Linuxi jaotustest, mis töötavad WSL-is.

Konteinerites kasutatakse vaikimisi failisüsteemi „virtiofs”, mis näitab Windowsi failidele juurdepääsu kaks korda kiiremana, ja võrgu töörežiimi „consomme”, mis tagab parema ühilduvuse erinevate võrgukonfiguratsioonidega (VPN, proxy jne). „consomme“ režiimis edastatakse Linuxi liiklus Windowsi kaudu, mis võimaldab Linuxi rakendustel kasutada Windowsi võrgu keskkonna kõiki võimalusi, sealhulgas turvapoliitikaid ja vahendeid ettevõtte süsteemidega integreerimiseks.
Konteinerite täitmise eest vastutab privileegitud Windowsi teenus wslservice.exe, mis käivitab virtuaalmasinaid ja kasutab neid Linuxi täitmiseks. Erinevalt WSL-ist loob teenus wslservice.exe konteinerite jaoks tütartööprotsessi wslcsession.exe, mis töötab praeguse kasutaja õigustega ning haldab selliseid toiminguid nagu konteinerite loomine, kataloogide monteerimine ja võrgupordide edastamine. Erinevad sessioonid on rangelt isoleeritud ja töötavad erinevates protsessides. Iga sessiooniga on seotud eraldi VHD salvestus, mis asub kataloogis %AppData%\Local\wslc\sessions. Windowsi teid on võimalik monteerida Linuxi konteinerisse failide jagamiseks.

Allikas: opennet.ru
