Pingwin w oknie: o potencjale i perspektywach WSL2

Hej Habra!

Póki co jesteśmy jeszcze na pełnych obrotach letnia wyprzedaż, chcielibyśmy zaprosić Państwa do dyskusji na jeden z największych tematów, nad którymi ostatnio pracowaliśmy - interakcję Windows i Linux, związaną w szczególności z rozwojem systemu WSL. WSL 2 jest już w drodze, a oto krótki przegląd tego, co nadejdzie w tym podsystemie, a także prognoza przyszłej integracji między Windows i Linuxem.

Pingwin w oknie: o potencjale i perspektywach WSL2

W maju tego roku Microsoft ogłosił, że WSL2, najnowsza wersja podsystemu Windows w systemie Linux, będzie działać na wbudowanym, pełnym jądrze Linuksa.
Jest to pierwszy raz, kiedy Microsoft dołączył jądro Linuksa jako składnik systemu Windows. Microsoft wprowadza także do systemu Windows wiersz poleceń, który rozszerzy możliwości PowerShell i WSL.

Zarówno jądro Linuksa dla WSL2, stworzone przez Microsoft, jak i nowa linia poleceń Windows, interesują przede wszystkim programistów.

„To najsilniejszy ruch w grze przeciwko AWS” – mówi Joshua Schwartz, dyrektor programów cyfryzacji w firmie konsultingowej AT Kearney.

Przyszłość Microsoftu nie jest związana z rynkiem komputerów osobistych, choć nadal będzie mocno trzymał swoją pozycję w tym segmencie. Dużo ważniejsze będzie zdobycie przyczółka na rynku chmurowym, którego jednym z elementów w przyszłości mogą być komputery stacjonarne.

Co robi WSL2?

WSL2 to najnowsza platforma podsystemu Windows dla systemu Linux. Pozwala radykalnie poprawić wydajność systemu plików i zapewnia pełną kompatybilność z wywołaniami systemowymi.

Jedno z głównych żądań społeczności WSL dotyczyło poprawy funkcjonalności. WSL2 obsługuje znacznie więcej narzędzi Linux niż WSL, zwłaszcza Docker i FUSE.
WSL2 obsługuje operacje wymagające dużej ilości plików, szczególnie git clone, npm install, apt update i apt upgrade. Rzeczywisty wzrost prędkości zależy od konkretnej aplikacji i jej interakcji z systemem plików.

Pierwsze testy wykazały, że WSL2 jest około 20 razy szybszy niż WSL1 w rozpakowywaniu tar z zip. Używając git clone, npm install i cmake w różnych projektach, system wykazał dwu- do pięciokrotny wzrost wydajności.

Czy pomoże to zdobyć zaufanie programistów?

Krótko mówiąc, Microsoft pragnie zdobyć uznanie i zaufanie społeczności programistów, opracowując własną wersję jądra Linuksa obsługującą procesy WSL2, powiedział Cody Swann, dyrektor generalny Gunner Technology.

„Poza tworzeniem wyłącznie dla systemu Windows, tworzenie wszystkich innych aplikacji – chmurowych, mobilnych, internetowych – na komputerze PC było niezwykle niewygodne, dlatego programista musiał w jakiś sposób uruchomić dystrybucję Linuksa równolegle z systemem operacyjnym Windows. Microsoft zauważył to i znalazł rozwiązanie” – podsumowuje.

Jest mało prawdopodobne, aby wprowadzenie niestandardowego jądra Linuksa miało poważny wpływ na system z punktu widzenia przeciętnego użytkownika. Otwiera to jednak możliwości bliższej interakcji pomiędzy usługami Microsoftu a systemem operacyjnym Linux.
To posunięcie ze strony Microsoftu jest rzeczywiście bardzo sprytne, ponieważ pomaga wniknąć głębiej w społeczność programistów, a także aktywnie korzystać z produktów opracowywanych przez kogoś innego, czyli połączyć się z open source, mówi Swann.

Witamy w Nowym Microsoftie

Trend w kierunku tworzenia i utrzymywania jądra Linuksa „specjalnie dla systemu Windows” odzwierciedla silny kierunek open source promowany przez dyrektora generalnego Satyę Nadellę. Microsoft nie jest już tym samym, czym był za czasów Gatesa i Ballmera, kiedy wszystko było trzymane za firmowym płotem i nikt nie myślał o interoperacyjności.

„Satya całkowicie przekształciła Microsoft w znacznie nowocześniejszą platformę i ta strategia bardzo się opłaciła. Witaj, bilionowa kapitalizacja” – mówi Schwartz.

Według Charlesa Kinga, głównego analityka w Pund-IT, dwie główne mocne strony Microsoftu to wydajność i bezpieczeństwo.

„Dzięki aktywnemu wykorzystaniu własnych, poważnych osiągnięć – zasobów i narzędzi – firma może zagwarantować klientom, że jądro będzie całkowicie aktualne i wyposażone w najnowsze łatki i poprawki, aby zapewnić pełne bezpieczeństwo” – dodaje.

Deweloperzy również na tym zyskują

Pliki binarne systemu Linux wykonują wiele funkcji za pomocą wywołań systemowych, takich jak dostęp do plików, żądanie pamięci i tworzenie procesów. WSL1 opiera się na warstwie translacyjnej, która interpretuje wiele z tych wywołań systemowych i umożliwia im interakcję z jądrem systemu Windows NT.

Najtrudniejszą rzeczą jest zaimplementowanie wszystkich wywołań systemowych. Ponieważ nie zrobiono tego w WSL1, niektóre aplikacje nie mogły tam działać. WSL2 wprowadza wiele nowych aplikacji, które dobrze sprawdzają się w tym środowisku.

Nowa architektura pozwala Microsoftowi wprowadzać najnowsze optymalizacje do jądra Linuksa znacznie szybciej niż w przypadku WSL1. Microsoft może zaktualizować rdzeń WSL2 zamiast ponownie wdrażać wszystkie ograniczenia.

W pełni otwarte narzędzie źródłowe

Opracowanie przez Microsoft własnego jądra Linuksa było kulminacją lat pracy Linux Systems Group, a także wielu innych zespołów w całej firmie Microsoft, powiedział Jack Hammons, menedżer programu w Linux Systems Group w Microsoft.

Jądro dostarczone dla WSL2 będzie całkowicie open source, a Microsoft opublikuje instrukcje, jak zbudować takie jądro na GitHub. Firma nawiąże współpracę z programistami, którzy chcą pomóc w projekcie i wprowadzić oddolne zmiany.

Programiści Microsoft stworzyli WSL2, korzystając z firmowych systemów ciągłej integracji i ciągłego dostarczania. Oprogramowanie to będzie obsługiwane poprzez system aktualizacji Windows i będzie całkowicie przejrzyste dla użytkownika. Jądro pozostanie aktualne i będzie zawierać wszystkie funkcje najnowszej stabilnej gałęzi Linuksa.

Aby zapewnić dostępność źródeł, firma tworzy lokalną kopię lustrzaną repozytoriów, stale monitoruje zawartość listy mailingowej poświęconej bezpieczeństwu Linuksa i współpracuje z kilkoma firmami obsługującymi bazy danych w wirtualnych środowiskach przedsiębiorstw (CVE). Dzięki temu jądro systemu Linux firmy Microsoft jest aktualne i zawiera najnowsze aktualizacje oraz eliminuje wszelkie pojawiające się zagrożenia.

Zmiany oddolne stają się obowiązkowe

Microsoft zapewnia, że ​​wszystkie zmiany w jądrze są propagowane w górę, co jest ważnym aspektem filozofii Linuksa. Obsługa dalszych poprawek wiąże się z dodatkową złożonością; Co więcej, praktyka ta nie jest powszechna w społeczności open source.

Celem Microsoftu jako aktywnego użytkownika Linuksa jest bycie zdyscyplinowanym członkiem społeczności i przyczynianie się do zmian w społeczności. Aby zapewnić stabilność gałęzi związaną z długotrwałym wsparciem, niektóre łatki - na przykład te zawierające nowe funkcje - mogą być dołączane wyłącznie do nowych wersji jądra i nie mogą być przenoszone do aktualnej wersji LTS w trybie kompatybilności wstecznej.

Gdy dostępne będą podstawowe źródła WSL, będą się one składać z łączy do zestawu poprawek i długo działającej, stabilnej części źródeł. Microsoft spodziewa się, że lista ta będzie się z czasem kurczyć w miarę rozpowszechniania poprawek i dodawania nowych łatek lokalnych w celu obsługi nowych funkcji WSL.

Przyjemniejszy projekt okna

Microsoft ogłosił także nadchodzącą zimową wersję Windows Terminal, nowej aplikacji dla użytkowników korzystających z narzędzi i powłok wiersza poleceń, takich jak Wiersz Poleceń, PowerShell i WSL.

Pingwin w oknie: o potencjale i perspektywach WSL2

Terminal Windows

Windows Terminal 1.0 oferuje wiele ustawień i opcji konfiguracyjnych, które dają większą kontrolę nad wyglądem okna terminala, a także nad powłokami/profilami, które powinny otwierać się jako nowe karty.

Ustawienia zostaną zapisane w ustrukturyzowanym pliku tekstowym, dzięki czemu można je łatwo skonfigurować i zaprojektować okno terminala według własnych upodobań.

Microsoft nie udoskonala już istniejącej konsoli Windows i tworzy nową od podstaw, decydując się na świeże podejście. Terminal Windows instaluje się i działa równolegle z istniejącą aplikacją konsoli Windows, która jest dostępna od razu po wyjęciu z pudełka.

Jak to działa

Kiedy użytkownik systemu Windows 10 bezpośrednio uruchamia Cmd/PowerShell/etc, uruchamiany jest proces podłączony do zwykłej instancji konsoli. Silnik konfiguracyjny nowego terminala umożliwia użytkownikom systemu Windows tworzenie wielu profili dla wszystkich pożądanych powłok/aplikacji/narzędzi, czy to w PowerShell, wierszu poleceń, Ubuntu, czy nawet połączeniach SSH z urządzeniami Azure lub IoT.

Profile te mogą zapewniać własne kombinacje projektu i rozmiaru czcionki, motywów kolorystycznych, poziomów rozmycia tła lub przezroczystości. Ponadto użytkownicy będą mogli wybrać nową czcionkę o stałej szerokości, aby okno terminala wyglądało bardziej nowocześnie i fajnie. Ta czcionka zawiera ligatury programistyczne; zostanie udostępniona publicznie i przechowywana we własnym repozytorium.

Głównymi zaletami nowego interfejsu poleceń systemu Windows jest wiele zakładek i piękny tekst. Obsługa wielu zakładek została uznana za najbardziej pożądaną prośbę dotyczącą rozwoju terminala. Piękny tekst uzyskujemy dzięki silnikowi renderującemu opartemu na DirectWrite/DirectX, wyposażonemu w akcelerację GPU.

Silnik wyświetla ikony tekstowe, glify i znaki specjalne występujące w czcionkach, w tym ideogramy chińskie, japońskie i koreańskie (CJK), emoji, symbole Powerline, ikony i ligatury programistyczne. Ponadto silnik ten renderuje tekst znacznie szybciej niż GDI używane wcześniej w konsoli.

Kompatybilność wsteczna pozostaje w pełnym porządku, chociaż możesz także wypróbować Terminal Windows, jeśli chcesz.

Chronologia: jak to się stanie

Firma Microsoft udostępni terminal Windows za pośrednictwem sklepu Microsoft Store w systemie Windows 10 i będzie go regularnie aktualizować. W ten sposób użytkownicy będą zawsze na bieżąco z najnowszymi wersjami i najnowszymi udoskonaleniami – praktycznie bez dodatkowego wysiłku.

Microsoft planuje uruchomić nowy terminal nadchodzącej zimy. Gdy Microsoft wdroży Terminal 1.0 dla systemu Windows, programiści będą nadal pracować nad wieloma funkcjami, które już mają zaległości.

Kod źródłowy terminala Windows i konsoli Windows już wysłane na GitHubie.

Co może nas czekać w przyszłości?

Możliwość, że Microsoft wykorzysta własne jądro Linuksa do innych celów, na przykład do opracowania własnej dystrybucji Linuksa, wydaje się dziś nieco hipotetyczna.

Wynik prawdopodobnie zależy od tego, czy Microsoftowi uda się znaleźć znaczny popyt na taki produkt i jakie możliwości komercyjne mogą potencjalnie otworzyć takie rozwiązania, mówi Charles King.

Uważa, że ​​w najbliższej przyszłości firma skupi się na zapewnianiu coraz większej kompatybilności i wzajemnego uzupełniania się systemów Windows i Linux.

Joshua Schwartz uważa, że ​​w tym przypadku trzeba będzie rozważyć, jaka będzie inwestycja w to dzieło i jaki będzie zwrot z niej. Gdyby Microsoft był dziś bardzo młodą firmą, prawdopodobnie robiłby wszystko w oparciu o Linuksa. Jednak przeniesienie wszystkich rozwiązań już dostępnych od Microsoftu na natywną architekturę Linuksa wydaje się dziś kosztownym i złożonym projektem, który raczej się nie opłaci. Miłośnicy Linuksa otrzymają własnego Linuksa, a podstawowa architektura pozostanie nienaruszona.

Kiedy w 2000 roku Apple na nowo wymyśliło system Mac OS, system operacyjny był oparty na systemie BSD Unix, który jest bardziej podobny do Linuksa niż do DOS-u. Dziś powstaje nowa wersja systemu Microsoft Windows oparta na systemie Linux.

Być może otwierają się przed nami nowe drzwi?

Jądro Linuksa firmy Microsoft może utorować drogę większej interoperacyjności pomiędzy usługami Windows i systemem operacyjnym Linux. Zasadniczo te osiągnięcia Microsoftu wskazują, że sam Microsoft już to rozumie: dziś prawie nie ma już klientów, którzy wolą istnieć w świecie, w którym wszystko jest w systemie Windows.

O wiele bardziej sensowne jest stosowanie heterogenicznych technologii i systemów, które najlepiej odpowiadają wymaganiom biznesowym i konkretnym sytuacjom praktycznym.

Większe pytanie strategiczne brzmi: jakie nowe możliwości strategiczne otwiera to posunięcie dla samej platformy Microsoft?

Azure, ekosystem chmurowy firmy Microsoft, już zapewnia ogromne wsparcie dla systemu Linux. Wcześniej system Windows dobrze obsługiwał Linuksa przy użyciu maszyn wirtualnych.

Zasadnicze zmiany zachodzące dzisiaj wynikają z faktu, że teraz procesy Linuksa będą działać natywnie na jądrze Windows, co oznacza, że ​​praca z Linuksem z poziomu Windows będzie znacznie szybsza niż na maszynach wirtualnych. Jest prawdopodobne, że w efekcie Azure wzbogaci się o całą warstwę inżynierów korzystających z Linuksa na skalę przemysłową.

Źródło: www.habr.com

Dodaj komentarz