Firma Microsoft o rozszerzeniu możliwości warstwy WSL2 (Windows Subsystem for Linux), która umożliwia uruchamianie plików wykonywalnych Linux w systemie Windows. W wersjach eksperymentalnych (build 19013) w warstwie WSL2 wprowadzono wsparcie dla zwracania pamięci systemowej (Memory Reclamation), zwalnianej przez procesy działające w środowisku opartym na jądrze Linux.
Wcześniej, w przypadku wzrostu zużycia pamięci przez aplikacje lub jądro, pamięć była przydzielana maszynie wirtualnej WSL2, ale po tym pozostawała zablokowana i nie była zwracana systemowi, nawet po zakończeniu zasobożernego procesu i braku dalszej potrzeby na przydzieloną pamięć. Mechanizm Memory Reclamation pozwala na zwracanie zwolnionej pamięci do głównego systemu operacyjnego i automatyczne zmniejszanie rozmiaru pamięci maszyny wirtualnej. Przy tym zwracana jest nie tylko pamięć zwalniana przez procesy użytkownika, ale również pamięć używana do buforowania w jądrze Linux. Na przykład, przy intensywnej aktywności dyskowej wzrasta rozmiar pamięci podręcznej stron, w której osadza się zawartość plików podczas pracy systemu plików. Po wykonaniu „echo 1 > /proc/sys/vm/drop_caches” pamięć podręczną można wyczyścić i zwrócić pamięć do głównego systemu operacyjnego.
Realizacja Memory Reclamation opiera się na
, zaproponowanej przez inżynierów Intela do włączenia do głównego jądra Linux w celu rozszerzenia możliwości sterownika virtio-balloon oraz dla systemu zarządzania pamięcią. Wskazana łatka jest przeznaczona do stosowania w dowolnych systemach gościnnych w celu zwracania nieużywanych stron pamięci do systemu macierzystego i może być stosowana z różnymi hypervisorami. W przypadku WSL2 łatka została dostosowana do zwracania pamięci hypervisorowi Hyper-V.
Przypomnijmy, że druga edycja WSL dostarczając kompletne jądro Linux zamiast emulatora, który na bieżąco tłumaczy wywołania systemowe Linux na wywołania systemowe Windows. Dostarczane w WSL2 oparte jest na wersji 4.19, która działa w środowisku Windows przy pomocy maszyny wirtualnej, już stosowanej w Azure. Aktualizacje dla jądra Linux dostarczane są za pomocą mechanizmu Windows Update i testowane w infrastrukturze ciągłej integracji Microsoft. Stosowane w jądrze specyficzne dla WSL2 łatki obejmują optymalizacje w celu skrócenia czasu uruchamiania jądra, zmniejszenia zużycia pamięci i pozostawienia w jądrze minimalnego niezbędnego zestawu sterowników i podsystemów.
Źródło: opennet.ru
