L Deweloperzy Microsoft zapowiedzieli rozszerzenie warstwy WSL2 (Podsystem Windows dla systemu Linux) w kompilacjach eksperymentalnych systemu Windows Insider (kompilacja 19013). W tych ogłaszają to dodano kompatybilność zwrócić system pamięci (Odzyskiwanie pamięci), wydany przez procesy działające w środowisku opartym na jądrze systemu Linux.
Wcześniej w przypadku większego zużycia pamięci przez aplikacje lub jądro, pamięć został przypisany do maszyny wirtualnej WSL2, ale po tym pozostał naprawiony i nie wrócił do systemu, nawet po zakończeniu procesu intensywnie korzystającego z zasobów i braku zwiększonego zapotrzebowania na przydzieloną pamięć.
Teraz, dzięki odzyskiwaniu pamięci w WSL 2, gdy pamięć w Linuksie nie jest już potrzebna, host może zostać poinformowany, gdzie zostanie zwolniony, a wielkość pamięci maszyny wirtualnej WSL 2 zostanie zmniejszona.
Mechanizm odzyskiwania pamięci umożliwia powrót zwolnionej pamięci do głównego systemu operacyjnego i automatycznie zmniejsz rozmiar pamięci maszyny wirtualnej. W takim przypadku zwracana jest nie tylko pamięć zwolniona przez procesy użytkownika, ale także pamięć używana do buforowania w jądrze Linuksa.
Procesy użytkownika to nie jedyne rzeczy, które używają pamięci w maszynie wirtualnej z systemem Linux. Jądro Linuksa używa również wielu pamięci podręcznych, w tym pamięci podręcznej stron, która przechowuje zawartość plików w celu poprawy wydajności systemu plików. Spójrzmy na jeszcze jeden przykład ze świata rzeczywistego, aby zobaczyć, jak to działa.
Np. przy dużej aktywności dysku zwiększa się rozmiar pamięci podręcznej stron, w którym ustalana jest zawartość plików w trakcie działania FS. Po wykonaniu polecenia „echo 1> / proc / sys / vm / drop_caches”pamięć podręczną można wyczyścić, a pamięć powraca do głównego systemu operacyjnego.
Implementacja odzyskiwania pamięci jest oparta na poprawce zaproponowanej przez inżynierów Intela do włączenia do głównego jądra Linuksa w celu rozszerzenia możliwości sterownika virtio-balloon i systemu zarządzania pamięcią.
Ta funkcja jest obsługiwana przez poprawkę jądra Linuksa, która umożliwia zwrócenie małych, ciągłych bloków pamięci do maszyny hosta, gdy nie są już potrzebne w gościu Linuksa. Zaktualizowaliśmy jądro Linuksa w WSL2, aby uwzględnić tę poprawkę i zmodyfikowaliśmy Hyper-V, aby obsługiwał tę funkcję raportowania stron.
Określona poprawka jest przeznaczona do użytku w dowolnym systemie gościa aby zwrócić nieużywane strony pamięci do systemu hosta i może być używany z wieloma hiperwizorami. W przypadku WSL2, poprawka jest dostosowana do zwracania pamięci do hiperwizora Hyper-V.
Ważne jest, aby pamiętać, że druga edycja WSL różni się dostarczaniem pełnego jądra Linuksa, a nie emulatorem w locie, który tłumaczy wywołania systemu Linux na wywołania systemowe Windows.
WSL 2 to nowa wersja architektury, którae umożliwia podsystemowi Windows dla systemu Linux uruchamianie plików binarnych Linux ELF64 w systemie Windows. Ta nowa wersja WSL 2 wykorzystuje funkcje Hyper-V do tworzenia lekkiej maszyny wirtualnej z minimalnym jądrem Linuksa.
Jądro Linux dostarczone w WSL2 jest oparte na wersji 4.19, która działa w środowisku Windows przy użyciu maszyny wirtualnej już używanej na platformie Azure. Aktualizacje jądra systemu Linux są dostarczane za pośrednictwem mechanizmu Windows Update i testowane w infrastrukturze ciągłej integracji firmy Microsoft.
Łatki specyficzne dla WSL2 używane w jądrze obejmują optymalizacje mające na celu skrócenie czasu uruchamiania jądra, zmniejszenie zużycia pamięci i pozostawienie jądra z minimalnym wymaganym zestawem sterowników i podsystemów.
Jeśli chcesz dowiedzieć się więcej szczegółów na ten temat możesz je sprawdzić w oryginalnym poście. Link jest taki.