Istnieje wersja PowerShell, która jest jeszcze potężniejsza — i jest już na twoim komputerze z Windows
Zarządzanie infrastrukturą na komputerze z Windows zazwyczaj oznacza poleganie na PowerShell w celu obsługi automatyzacji. To świetne uczucie, gdy edytujesz rejestr systemu Windows lub obsługujesz Active Directory, ale szybko napotykasz ograniczenia. Przeniesienie całego swojego workflow na Linuxa na pełny etat to ogromny kłopot, ale ograniczanie się tylko do narzędzi Windows ogranicza rozwój kariery. Przestań korzystać z podwójnego rozruchu i używaj Windows Subsystem for Linux 2 (WSL 2), który rozwiązuje ten dylemat, uruchamiając prawdziwe jądro Linux bezpośrednio w Twoim znanym środowisku desktopowym.
PowerShell napotyka ograniczenia
Wygląda świetnie dla Windows, ale cię ogranicza
Od lat używam PowerShell do zarządzania Active Directory i edytowania rejestru Windows, ponieważ natywne cmdlety ułatwiają pisanie czystego kodu. Microsoft tworzy oficjalne moduły dla swoich produktów, więc czysta administracja Windows jest szybka.
Niestety, ta specjalizacja ma ogromną wadę. Chociaż pomaga w automatyzacji w ekosystemie Microsoft, izoluje cię od reszty branży technologicznej, a to nie jest dobre dla nauki. Główną innowacją PowerShella jest przesyłanie strukturalnych obiektów przez pipeline zamiast surowego tekstu, i to faktycznie jedna z jego największych barier.
Kiedy pracujesz w środowiskach podobnych do Uniksa, filozofia jest taka, że wszystko jest plikiem, co pozwala różnym narzędziom komunikować się poprzez strumienie tekstowe, co jest lekkie i działa wszędzie. Niestety, duże poleganie PowerShell na modelu obiektowym .NET oznacza, że wiele jego najlepszych funkcji nie przenosi się na systemy inne niż Windows.
Chociaż PowerShell Core zapewnia pewne wsparcie dla systemów Linux i macOS, moduły administracyjne nie są dostępne na tych platformach. Dlatego ciągle jesteś przywiązany do Windows, i uważam, że to właśnie sprawia, że jest to impas dla nowoczesnych przepływów pracy.
Trzymanie się wyłącznie PowerShell prowadzi do surowego ograniczenia funkcjonalnego, gdy próbujesz rozwijać się w nowoczesnym DevOps i inżynierii chmurowej. Jeśli chcesz robić to jako karierę, skończysz przy zarządzaniu Windows Enterprise, jeśli się nie rozwiniesz. Jeśli chcesz przejść do ról w dużych firmach technologicznych, będziesz musiał dobrze radzić sobie z jądrem Linuxa, orkiestracją kontenerów oraz językami takimi jak Python lub Go, które działają na wszystkich platformach.
Branża korzysta ze środowisk podobnych do Unix do konteneryzacji, orkiestracji w chmurze i przetwarzania danych na dużą skalę. Korzystanie z PowerShell ogranicza Twoją zdolność do pracy z narzędziami wieloplatformowymi, takimi jak Kubernetes. Ponadto wydajność PowerShell podczas operacji wymagających dużej ilości danych Cię hamuje. Przetwarzanie dużych zbiorów danych przy użyciu biblioteki Pandas w Pythonie jest znacznie szybsze niż wykonywanie tego samego w PowerShell.
PowerShell został zaprojektowany dla interaktywnego użytkownika powłoki, więc koncentruje się na strukturach poleceń czasownik-rzeczownik, takich jak Get-Service i Stop-Process. Sprawia to, że język jest łatwy do nauki, ale skrypty cierpią na znaczne obciążenie pamięci i wykonania. Więc nadszedł czas na rozwinięcie.
Czym jest WSL 2 i jak rozwija on oryginalną wersję
Masz prawdziwe jądro Linuksa działające w Windows bez powolnej wirtualizacji
Windows Subsystem for Linux 2 całkowicie zmienia architekturę, pozwalając na uruchomienie prawdziwego środowiska Linux bezpośrednio w systemie Windows. Nie potrzebujesz konfiguracji dual-boot ani nieporęcznej tradycyjnej maszyny wirtualnej. Tradycyjne maszyny wirtualne uruchamiają się powoli, wymagają ogromnych zasobów systemowych na start i stałej ręcznej obsługi, podczas gdy WSL 2 działa w tle.
Uruchamia prawdziwe, specjalnie zbudowane jądro Linux z kernel.org wewnątrz lekkiej wirtualnej maszyny użytkowej. Ta VM uruchamia się prawie natychmiast i zarządza pamięcią dynamicznie, używając tylko potrzebnej pamięci RAM i zwracając nieużywaną pamięć do hosta Windows. Utrzymuje Twój komputer z Windows szybki, przy jednoczesnym uruchomieniu w pełni funkcjonalnego systemu Linux. Używam budżetowego komputera do programowania i radzi sobie z tym podziałem doskonale, bez spowalniania pracy.
Jest lepszy niż oryginalny WSL 1, ponieważ WSL 1 nie korzystał z prawdziwego jądra Linuksa i polegał na warstwie translacji, która przechwytywała wywołania systemowe Linuksa i próbowała mapować je na wywołania systemowe Windows NT. Miało to niewielki ślad pamięci, ale powodowało problemy z niepełną kompatybilnością wywołań systemowych. Nie miał prawdziwego jądra Linuksa, więc WSL 1 nie mógł uruchamiać procesów działających w tle i niskopoziomowych narzędzi.
Zasadniczo platformy takie jak Docker i Kubernetes nie działały natywnie. WSL jest o wiele lepszy, ponieważ przechodzisz do prawdziwego jądra Linuxa w zarządzanej maszynie wirtualnej. Jeśli aplikacja, baza danych lub kontener mogą działać na natywnym serwerze Linux, działają na WSL 2. To jest takie proste.
Jak uruchomić WSL 2
Uruchomienie WSL 2 na komputerze jest zaskakująco proste
WSL jest kompromisem dla każdego, kto chce zachować znany pulpit Windows, ale potrzebuje mocy i standardów branżowych ekosystemu Linux. WSL pozwala korzystać z zalet obu środowisk bez przechodzenia na Linux na pełen etat ani zmagać się z dużym obciążeniem zasobów i wolnym czasem uruchamiania tradycyjnych maszyn wirtualnych.
Jeśli używasz systemu Windows 10 lub Windows 11, cały proces instalacji sprowadza się do jednej komendy. Aby go zainstalować, wystarczy otworzyć PowerShell jako administrator i uruchomić wsl --install. Ta jedna komenda automatycznie włącza potrzebne funkcje platformy wirtualnej maszyny, pobiera najnowsze jądro WSL i instaluje Ubuntu jako domyślną dystrybucję Linuksa.
Gdy Twój komputer się zrestartuje, środowisko Linux będzie gotowe do użycia. Uruchamianie WSL jest równie proste: możesz uruchomić swoją dystrybucję bezpośrednio z menu Start w Windows, wpisać wsl bezpośrednio w PowerShell, aby zamienić bieżący wiersz poleceń w powłokę Linux, lub skorzystać z wysoce konfigurowalnego Windows Terminal, aby uruchamiać linie poleceń Linux i Windows obok siebie w interfejsie z zakładkami.
Ten, który jest używany tutaj, to Ubuntu; możesz go znaleźć w menu Start.
Nie musisz przenosić swoich plików do zamkniętego środowiska Linux, aby uzyskać korzyści z narzędzi Unix. Zamiast tego możesz uruchamiać narzędzia wiersza poleceń Linux bezpośrednio na standardowych plikach Windows. Jeśli przejdziesz do zamontowanego dysku C: Windows (znajdziesz go w /mnt/c/ w środowisku Linux), możesz użyć polecenia Linux grep, aby przeszukiwać ogromne pliki tekstowe Windows lub repozytoria kodu.
Możesz również mieszać i dopasowywać polecenia z obu systemów operacyjnych w tej samej linii terminala. Możesz użyć standardowego polecenia Windows, takiego jak dir, i przekierować jego wynik bezpośrednio do grep, lub użyć polecenia Linux ls -la i przekierować je do findstr w Windows. To głębokie połączenie pozwala używać odpowiedniego narzędzia do zadania bez ciągłego przełączania się między systemami.
Czas przejść poza PowerShell
Przejście na WSL 2 oznacza, że musisz nauczyć się o ścieżkach plików i uprawnieniach, które zachowują się inaczej niż w Windows. Uruchamiasz w tle wirtualną maszynę narzędziową, więc musisz przydzielić pewne zasoby systemowe, aby kernel mógł działać. Jednak jeśli chcesz korzystać z branżowych narzędzi wdrożeniowych, nie rezygnując ze swojej głównej konfiguracji pulpitu, dodanie tego jest najrozsądniejszą drogą naprzód.







