Spoločnosť Microsoft o rozšírení možností vrstvy WSL2 (Windows Subsystem for Linux), ktorá umožňuje spúšťanie spustiteľných súborov Linuxu vo Windows. V experimentálnych zostavách (build 19013) vo vrstve WSL2 sa objavila podpora pre vrátenie systémovej pamäte (Memory Reclamation), uvoľnenej procesmi bežiacimi v prostredí založenom na jadre Linux.
Predtým, v prípade rastu spotreby pamäte aplikáciami alebo jadrom, sa pamäť pridelila virtuálnej stroj WSL2, ale potom zostala pripojená a nebola vrátená systému, aj po ukončení náročného procesu a absencii ďalšej potreby v pridelenej pamäti. Mechanizmus Memory Reclamation umožňuje vracať uvoľnenú pamäť do hlavného operačného systému a automaticky znižovať veľkosť pamäte virtuálneho stroja. Pri tom sa vracia nielen pamäť uvoľnená používateľskými procesmi, ale aj pamäť používaná na caching v jadre Linux. Napríklad pri vysokej diskovej aktivite sa zvyšuje veľkosť stránkového cache, v ktorom sa ukladá obsah súborov pri práci SO. Po vykonaní „echo 1 > /proc/sys/vm/drop_caches“ možno cache vyčistiť a vrátiť pamäť do hlavného operačného systému.
Realizácia Memory Reclamation je založená na
, ktorý navrhli inžinieri Intel na zaradenie do hlavného jadra Linux s cieľom rozšíriť možnosti ovládača virtio-balloon a systému správy pamäte. Uvedený patch je určený na použitie v akýchkoľvek hosťovacích systémoch na vrátenie nevyužitých strán pamäte hostiteľskému systému a môže sa použiť s rôznymi hypervízormi. V prípade WSL2 je patch prispôsobený na vracanie pamäte hypervízoru Hyper-V.
Pripomíname, že druhá verzia WSL je dodaná s plnohodnotným jadrom Linux namiesto emulátora, ktorý naživo konvertuje systémové volania Linuxu na systémové volania Windows. Dodávané v WSL2 je založené na vydaní 4.19, ktoré beží v prostredí Windows prostredníctvom virtuálneho stroja, už aplikovaného v Azure. Aktualizácie pre jadro Linux sa dodávajú prostredníctvom mechanizmu Windows Update a testujú sa v infraštruktúre kontinuálnej integrácie Microsoft. Používané v jadre špecifické pre WSL2 patche zahŕňajú optimalizácie na skrátenie času spustenia jadra, zníženie spotreby pamäte a zachovanie v jadre minimálne potrebného súboru ovládačov a subsystémov.
Zdroj: opennet.ru
