Firma Microsoft na odbywającej się konferencji Microsoft Build 2019 zaktualizowaną podsystem WSL2 (Windows Subsystem for Linux), przeznaczoną do uruchamiania plików wykonywalnych Linux w Windows. Kluczową drugiej edycji jest dostarczenie pełnoprawnego jądra Linux, zamiast warstwy tłumaczącej wywołania systemowe Linux na wywołania systemowe Windows.
Testowe wydanie WSL2 zostanie przedstawione pod koniec czerwca w wersjach eksperymentalnych . WSL1 w oparciu o emulator będzie nadal wspierany, a użytkownicy będą mogli korzystać z niego obok WSL2. Do uruchomienia jądra Linux w środowisku Windows wykorzystana będzie lekka maszyna wirtualna, już stosowana w Azure.
W ramach WSL2 dla Windows 10 będzie dostępny komponent z jądrem Linux 4.19. W miarę wydawania poprawek dla gałęzi LTS 4.19, jądro dla WSL2 będzie na bieżąco aktualizowane za pomocą mechanizmu Windows Update i testowane w infrastrukturze ciągłej integracji Microsoftu. W WSL2 będzie używane to samo jądro, które stosowane jest w infrastrukturze Azure, co ułatwi utrzymanie.
Wszystkie przygotowane zmiany do integracji jądra z WSL będą opublikowane na otwartej licencji GPLv2 i przekazane do projektu upstream. Przygotowane poprawki obejmują optymalizacje skracające czas uruchamiania jądra, redukujące zużycie pamięci oraz pozostawiające w jądrze minimalny zestaw niezbędnych sterowników i podsystemów. Proponowane jądro będzie mogło działać jako przezroczysta alternatywa dla warstwy emulacyjnej oferowanej w WSL1. Posiadanie kodu źródłowego umożliwi entuzjastom tworzenie własnych wersji jądra Linux dla WSL2, do czego zostaną przygotowane niezbędne instrukcje.
Użycie standardowego jądra z optymalizacjami od projektu Azure pozwoli uzyskać pełną zgodność z Linuxem na poziomie wywołań systemowych oraz zapewni możliwość bezproblemowego uruchamiania kontenerów Docker w Windows, a także zrealizuje wsparcie dla systemów plików opartych na mechanizmie FUSE. Dodatkowo w WSL2 znacznie zwiększono wydajność operacji wejścia/wyjścia i operacji na systemie plików, które wcześniej były wąskim gardłem WSL1. Na przykład, podczas rozpakowywania skompresowanego archiwum WSL2 jest 20 razy szybszy niż WSL1, a przy wykonywaniu operacji
«git clone», «npm install», «apt update» i «apt upgrade» w 2-5 razy.
Pomimo dostarczenia jądra Linux, WSL2 nadal nie oferuje gotowego zestawu komponentów dla przestrzeni użytkownika. Komponenty te instalowane są osobno i opierają się na wersjach różnych dystrybucji. Na przykład, aby zainstalować w WSL z katalogu Microsoft Store wersje , , и . Aby w interakcji z oferowanym w Windows jądrem Linux, wymagana będzie podmianka niewielkiego skryptu inicjalizacyjnego w dystrybucji, zmieniającego proces ładowania. Firma Canonical już zamierzenie zapewnienia pełnej obsługi działania Ubuntu na WSL2.
Dodatkowo można zauważyć emulatora terminala przez firmę Microsoft , którego kod jest dostępny na licencji MIT. Wraz z terminalem udostępniony jest również kod oryginalnego interfejsu wiersza poleceń conhost.exe, stosowanego w systemie Windows i realizującego Windows Console API. Terminal oferuje interfejs oparty na zakładkach i dzielonych oknach, w pełni obsługuje Unicode oraz sekwencje ucieczki dla kolorowego wyjścia, umożliwia zmianę motywów oraz instalację rozszerzeń, wspiera wirtualne konsoli (PTY) i wykorzystuje DirectWrite/DirectX do przyspieszania renderowania tekstu. W terminalu można korzystać z powłok Command Prompt (cmd), PowerShell oraz WSL. Latem nowy terminal będzie dostępny dla użytkowników Windows w katalogu Microsoft Store.
Źródło: opennet.ru
