Tvrtka Microsoft o proširenju mogućnosti WSL2 (Windows Subsystem for Linux) koji omogućava pokretanje izvršnih datoteka Linuxa na Windowsu. U eksperimentalnim verzijama (build 19013) u WSL2 je podrška za povratak memorije (Memory Reclamation) koja se oslobađa procesima koji rade u okruženju temeljenom na Linux jezgru.
Ranije, kada je došlo do povećanja potrošnje memorije od strane aplikacija ili jezgre, memorija je bila dodeljena WSL2 virtuelnoj mašini, ali je posle ostajala fiksirana i nije se vraćala sistemu, čak ni nakon završetka proces koji je trošio resurse i nedostatka daljnje potrebe za dodeljenom memorijom. Mehanizam Memory Reclamation omogućava vraćanje oslobođene memorije glavnom OS-u i automatsko smanjenje veličine memorije virtuelne mašine. Pri tome se vraća ne samo memorija koju oslobađaju korisnički procesi, već i memorija koja se koristi za keširanje u Linux jezgru. Na primer, pri velikoj diskovnoj aktivnosti povećava se veličina stranice keša, gde se smeštaju sadržaji datoteka pri radu s datotečnim sustavom. Nakon izvršenja "echo 1 > /proc/sys/vm/drop_caches" može se očistiti keš i vratiti memorija glavnom OS-u.
Implementacija Memory Reclamation temelji se na
, koji su predložili inženjeri Intela za uključivanje u glavno Linux jezgro s ciljem proširivanja mogućnosti virtio-balloon drajvera i za upravljanje memorijom. Tačno je tačan patch osmišljen za korištenje u bilo kojim gostujućim sistemima za vraćanje neiskorištenih stranica memorije matičnoj sistemu i može se koristiti s različitim hipervizorima. U slučaju WSL2, patch je prilagođen za vraćanje memorije hipervizoru Hyper-V.
Podsećamo da je druga verzija WSL isporuka punog Linux jezgra umesto emulatora koji u stvarnom vremenu prevodi sistemske pozive Linuxa u sistemske pozive Windowsa. Isporučeno u WSL2 temelji se na izdanju 4.19, koje se pokreće u Windows okruženju preko virtuelne mašine koja se već koristi u Azure. Ažuriranja za Linux jezgro isporučuju se kroz mehanizam Windows Update i testiraju se u Microsoftovoj infrastrukturi kontinuirane integracije. Specifični patch-evi za WSL2 u jezgru uključuju optimizacije za smanjenje vremena pokretanja jezgra, smanjenje potrošnje memorije i ostavljanje minimalno potrebnog skupa drajvera i podsustava u jezgru.
Izvor: opennet.ru
