Windows Subsystem for Linux (WSL) to potężne narzędzie wbudowane w system Windows, które pozwala uruchamiać natywne aplikacje i narzędzia Linuksa bezpośrednio obok programów Windows, bez potrzeby dual-bootowania czy maszyn wirtualnych. Dzięki WSL początkujący programiści mogą komfortowo pracować z Bash, Git czy Pythonem w znanym środowisku Windows.
Co to jest WSL i dlaczego warto go znać?
WSL, czyli Podsystem Windows dla systemu Linux, działa jako warstwa kompatybilności, umożliwiająca uruchamianie linuksowych powłok i narzędzi w systemie Windows. To idealne rozwiązanie dla deweloperów, którzy chcą korzystać z ekosystemu open source – np. menedżerów pakietów jak APT w Ubuntu – bez opuszczania Windows.
Istnieją dwie główne wersje: WSL1 i WSL2. WSL1 to lekka warstwa tłumacząca wywołania systemowe Linuksa na Windows, co zapewnia dobrą współpracę z plikami Windows, ale ograniczone wsparcie dla funkcji jądra Linuksa. Z kolei WSL2 korzysta z lekkiej maszyny wirtualnej z prawdziwym kernelem Linuksa, oferując pełną kompatybilność, wyższą wydajność i lepsze wsparcie dla kontenerów Docker. Microsoft oficjalnie zaleca WSL2 dla nowych instalacji ze względu na lepszą wydajność i izolację.
Dla początkujących WSL oznacza prosty start: instalujesz dystrybucję Linuksa (np. Ubuntu), a następnie pobierasz narzędzia jednym poleceniem. Na przykład w Ubuntu aktualizujesz pakiety za pomocą sudo apt update && sudo apt upgrade.
Wymagania systemowe i kompatybilność
Aby uruchomić WSL, potrzebujesz Windows 10 w wersji 1709 (build 16299) lub nowszej, albo Windows 11. Sprawdź wersję systemu: naciśnij Start > Ustawienia > System > Informacje, a w sekcji „Specyfikacje urządzenia” znajdziesz numer kompilacji.
WSL2 wymaga włączonej wirtualizacji w BIOS/UEFI (Intel VT-x lub AMD-V) oraz funkcji Platforma maszyny wirtualnej w Windows. Na nowszych komputerach jest to zazwyczaj włączone domyślnie.
Krok po kroku – instalacja WSL
Instalacja jest prosta i zajmuje kilka minut. Na Windows 11 i najnowszym Windows 10 możesz użyć szybkiego polecenia: uruchom PowerShell jako Administrator i wpisz wsl --install. Poniżej znajdziesz pełną instrukcję:
1. Włącz funkcję podsystem Windows dla systemu Linux
Wykonaj te kroki:
- otwórz wyszukiwarkę w menu Start i wpisz Włącz lub wyłącz funkcje systemu Windows,
- w oknie funkcji znajdź Podsystem Windows dla systemu Linux, zaznacz pole i kliknij OK,
- poczekaj na instalację składników, a następnie uruchom ponownie komputer, klikając Uruchom ponownie teraz.
Dla WSL2 dodatkowo włącz Platformę maszyny wirtualnej w tym samym oknie i zaktualizuj kernel poleceniem: wsl --update.
2. Zainstaluj dystrybucję Linuksa
Postępuj tak:
- uruchom Microsoft Store i wyszukaj „Linux” lub konkretną dystrybucję, np. Ubuntu,
- kliknij Pobierz (Get), poczekaj na instalację, a następnie Uruchom (Launch),
- przy pierwszym starcie utworzysz konto użytkownika Linuksa: wpisz nazwę i hasło (znaki hasła nie są wyświetlane),
- możesz instalować równolegle kilka dystrybucji (np. Ubuntu, Debian, Fedora) i przełączać się między nimi.
Aby ustawić dystrybucję domyślną, użyj w PowerShell: wsl --set-default Ubuntu.
3. Aktualizacja i pierwsze kroki
Po instalacji zaktualizuj system i podstawowe pakiety:
sudo apt update
sudo apt upgrade
Gdy instalator poprosi o potwierdzenie, wpisz Y. Teraz masz pełny terminal Bash – przetestuj podstawowe polecenia, takie jak ls, cd czy pwd.
Podstawy pracy z WSL – komendy i menedżery pakietów
WSL otworzysz z menu Start – wpisz nazwę dystrybucji, np. „Ubuntu”. Integracja z Windows jest głęboka: pliki z dysku C: są dostępne w /mnt/c/, a kopiowanie/wklejanie działa między systemami.
Menedżery pakietów różnią się w dystrybucjach. Najczęstsze to:
- Debian/Ubuntu (APT) – instalacja:
sudo apt install <pakiet>, np.sudo apt install git python3; - Red Hat/CentOS (YUM/DNF) – instalacja:
sudo yum install <pakiet>lubsudo dnf install <pakiet>; - Alpine (APK) – instalacja:
sudo apk add <pakiet>.
Dla programistów: zainstaluj Node.js (sudo apt install nodejs), Pythona lub użyj VS Code z rozszerzeniem Remote – WSL do pracy bezpośrednio w środowisku Linuksa.
Porównanie WSL1 vs WSL2
Kluczowe różnice znajdziesz w poniższej tabeli:
| Aspekt | WSL1 | WSL2 |
|---|---|---|
| Architektura | warstwa kompatybilności (tłumaczenie wywołań) | lekka VM z natywnym kernelem Linuksa |
| Wydajność I/O | wolniejsza na plikach Windows | znacznie szybsza w natywnym systemie plików |
| Kompatybilność | dobra współpraca z plikami Windows, brak pełnego kernela | pełna zgodność z Linuksem (Docker, systemd) |
| Zużycie zasobów | niskie | wyższe, ale nadal lekkie |
| Sprawdzenie wersji | wsl -l -v |
wsl -l -v |
Aby przekonwertować dystrybucję: wsl --set-version <Distro> 2.
Zalety WSL dla początkujących programistów
Najważniejsze korzyści na start to:
- prostota – bez VM czy Hyper-V: Linux działa jak aplikacja w Windows;
- integracja – edytuj pliki w Windows Explorer i pracuj w VS Code z rozszerzeniem Remote – WSL;
- wieloplatformowość – testuj skrypty Bash, kompiluj C++ z GCC obok .NET;
- bezpieczeństwo – odizolowane środowisko, łatwe resetowanie dystrybucji (
wsl --unregister <Distro>); - Docker – WSL2 działa jako backend dla Docker Desktop i ułatwia uruchamianie kontenerów.
WSL realnie przyspiesza rozwój oprogramowania, pozwalając łączyć narzędzia Windows i Linuksa w jednym, spójnym workflow.
Wady i ograniczenia
Pamiętaj o kilku ograniczeniach:
- brak natywnego GUI w WSL1 (w WSL2 na Windows 11 aplikacje GUI działają dzięki WSLg; na Windows 10 można użyć X11),
- wydajność I/O na plikach Windows w WSL2 jest lepsza, ale wciąż gorsza niż w Linuksie – trzymaj projekty w systemie plików Linuksa, np. w
~/projekty, - nie wszystkie narzędzia wymagające specyficznych sterowników kernela będą działać,
- w starszych wersjach Windows może brakować najnowszych aktualizacji kernela.
Zaawansowane wskazówki i dobre praktycje
Jeśli chcesz pójść krok dalej, przydadzą się te komendy i praktyki:
- listowanie dystrybucji –
wsl -l -v; - uruchomienie z katalogiem domowym –
wsl -d Ubuntu --cd ~; - integracja z IDE – zainstaluj VS Code i rozszerzenie „Remote – WSL”, aby edytować pliki bezpośrednio w środowisku Linuksa;
- udostępnianie GPU – WSL2 wspiera akcelerację GPU (NVIDIA/AMD) dla zadań ML po zainstalowaniu odpowiednich sterowników w Windows;
- aktualizacje – regularnie uruchamiaj
wsl --update, aby mieć najnowszy kernel i komponenty.
Na start trzymaj kod w systemie plików Linuksa (np. w ~), a do pracy używaj VS Code z Remote – WSL – to minimalizuje kłopoty z I/O i maksymalizuje wygodę.






