Hluboký ponor do schopností WSL2

Operační systémy Windows a Linux patří mezi nejpoužívanější. Zatímco Windows láká svou uživatelskou přívětivostí, Linux vyniká svou přizpůsobitelností, což ho činí preferovanou volbou pro vývojáře, produktivní jedince a studenty.

Pro možnost současného používání obou systémů je běžné využívat virtualizaci v rámci Windows nebo nastavení duálního bootování.

Avšak nová funkce systému Windows umožňuje snadný přístup k Linuxu přímo v prostředí Windows.

Seznamte se s WSL2 – Windows Subsystem for Linux verze 2. Jedná se o součást systému Windows, která umožňuje spouštění prostředí Linuxu přímo v operačním systému Windows.

Tento článek se podrobně zaměří na WSL2. Prozkoumáme jeho definici, účel, proces instalace a efektivní způsoby jeho využití.

Začněme.

Co je to Windows Subsystem for Linux?

Windows Subsystem for Linux vám umožňuje pracovat s prostředím GNU/Linux přímo z terminálu Windows, čímž se eliminují komplikace spojené s duálním spouštěním nebo použitím virtualizačních nástrojů. Získáte přístup k jádru Linuxu a můžete tak používat funkce Linuxu přímo z Windows, včetně nástrojů příkazového řádku, aplikací a různých utilit.

WSL2 je moderní verze podsystému Windows, která nabízí vylepšené funkce a vyšší rychlost ve srovnání s WSL1 (představenou s Windows 10). Většina instalací Windows již WSL má předinstalovaný, ale je nutné ho aktivovat pro jeho používání.

WSL2 v pozadí využívá technologii virtuálních strojů Hyper-V od společnosti Microsoft. To zajišťuje vysokou míru kompatibility WSL2 s Linuxem, a má za následek až 20x rychlejší spouštění než u WSL1.

Stručně řečeno, WSL2 je nejnovější podsystém Windows pro Linux, který uživatelům Windows poskytuje přímý přístup k jádru Linuxu.

Začínáme s WSL2

V průběhu tohoto průvodce budeme také používat Windows Terminal, který je doporučovanou a efektivní volbou pro práci s terminály v prostředí Windows. Jedná se o moderní, rychlý a praktický terminál pro uživatele, kteří pracují s nástroji příkazového řádku a WSL.

Požadavky na PC

Ne všechny počítače umožňují používání WSL2. Aby váš systém mohl spouštět WSL2, musí podporovat virtualizaci, protože WSL2 využívá v pozadí Hyper-V.

Je rovněž nutné používat 64bitový procesor s podporou SLAT (Second Level Address Translation). Většina moderních procesorů tuto technologii podporuje.

Co se týče prostoru na disku, je potřeba minimálně 1 GB volného místa.

Povolení virtualizace z BIOSu

Pokud váš hardware splňuje požadavky, musíte povolit virtualizaci v BIOSu vaší základní desky.

Vstupte do systému BIOS stisknutím klávesy na klávesnici, jako je například F2, Delete nebo F10.

V systému BIOS musíte najít a povolit Secure Virtual Machines (SVM) od AMD nebo Virtualizační technologii Intel VTx. Po dokončení restartujte počítač.

Pokud potřebujete podrobnější vysvětlení, můžete se podívat na můj další článek, který se věnuje instalaci Ubuntu na Windows 10 pomocí Hyper-V.

Povolení funkcí systému Windows pro WSL2

Po splnění hardwarových požadavků je na čase povolit WSL2 v systému Windows.

Prvním krokem je ověření verze systému Windows. To nám pomůže zjistit, zda váš systém Windows podporuje WSL, či nikoli.

Pro zjištění verze stiskněte klávesy CMD + R a zadejte „winver“. Zobrazí se informace o vaší verzi Windows.

Pokud používáte Windows 10, pravděpodobně používáte WSL1. U většiny uživatelů Windows 11 je ve výchozím nastavení aktivován WSL2.

Všechny verze Windows 10 a 11 podporují WSL2, s výjimkou Windows S, který je zaměřen na zabezpečení a má virtualizaci deaktivovanou.

Pokud používáte Windows S, je nutné přejít na jinou verzi, například Windows Home nebo Pro.

Pro změnu operačního systému přejděte do Nastavení > Aktualizace a zabezpečení > Aktivace.

Rovněž je nutné mít nainstalovanou nejnovější aktualizaci systému Windows. Tím zajistíte plnou kompatibilitu a podporu pro WSL2. Aktualizaci můžete provést v Nastavení > Windows Update.

Pro používání WSL2 je nutné povolit několik funkcí systému Windows.

Přejděte do Ovládací panely > Programy a funkce. Zde najdete možnost „Zapnout nebo vypnout funkce systému Windows“. Po kliknutí se otevře nové okno s názvem „Funkce systému Windows“.

Zde vyhledejte a zaškrtněte možnosti „Hyper-V“, „Virtual Machine Platform“ a „Windows Subsystem for Linux“.

Po dokončení se zobrazí výzva k restartování systému, aby se změny projevily.

Můžete je také povolit spuštěním následujících příkazů.

$ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

$ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Instalace WSL2

Po splnění všech nezbytných požadavků je na čase nainstalovat WSL.

Otevřete Windows Terminal (Windows 10) nebo Windows PowerShell (Windows 11) a zadejte následující příkaz.

$ wsl

#výstup

Copyright (c) Microsoft Corporation. All rights reserved.

Usage: wsl.exe [Argument]

Arguments:
…..

To znamená, že WSL je dostupný, ale není aktivovaný.

Pro instalaci WSL spusťte následující příkaz s oprávněními správce.

$ wsl --install

#výstup

PS C:UsersLogan99> wsl --install

Installing: Virtual Machine Platform
Virtual Machine Platform has been installed.
Installing: Windows Subsystem for Linux
Windows Subsystem for Linux has been installed.
Installing: Ubuntu
Ubuntu has been installed.
The requested operation is successful. Changes will not be effective until the system is rebooted.

Poznámka: Tento výstup se nemusí zobrazit, pokud jste funkce již aktivovali v nastavení systému Windows. V takovém případě by se měl zobrazit následující výstup. (Pokud ano, pokračujte k další sekci).

Ubuntu is already installed.
Launching Ubuntu...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:
New password:
Retype new password:

Verzi WSL zjistíte zadáním příkazu „wsl –version“.

$ wsl --version

#výstup

WSL version: 1.1.6.0

Kernel version: 5.15.90.1

WSLg version: 1.0.50

MSRDC version: 1.2.3770

Direct3D version: 1.608.2-61064218

DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp

Windows version: 10.0.22621.1413

Jak si můžete všimnout, WSL verze 1.1.6.0 je již předinstalovaná. Pokud se však objeví chyba, WSL nainstalovaný není.

Pro změnu na WSL2 spusťte následující příkaz.

$ wsl --set-default-version 2

Jelikož je WSL již v našem systému předinstalované, zobrazí se nám tato zpráva.

WSL můžete také nainstalovat z Windows Store. Otevřete Store a vyhledejte „Windows Subsystem for Linux“.

Klikněte na „Získat“ a vyčkejte na dokončení instalace.

Po instalaci klikněte na „Otevřít“. Otevře se okno terminálu Windows se zprávou „Podsystém Windows pro Linux nemá nainstalované distribuce“.

Instalace distribuce do WSL

Po instalaci WSL je na čase nainstalovat si distribuce Linuxu.

Ve výchozím nastavení WSL instaluje verzi Ubuntu LTS. Pro její instalaci je nutné spustit následující příkaz.

$ wsl --install

Následně se začne instalovat Ubuntu. Během instalace budete vyzváni k nastavení nového uživatelského jména a hesla pro UNIX.

Po dokončení instalace se zobrazí výzva Ubuntu Linux. Zde můžete používat všechny příkazy Linuxu. Podívejme se na verzi Ubuntu.

$ lsb_release -a

#výstup

No LSB modules are available.

Distributor ID: Ubuntu

Description:    Ubuntu 22.04.1 LTS

Release:        22.04

Codename:       jammy

A je to! Nyní máte přístup k jádru Linuxu.

Pro ukončení distribuce je nutné zadat následující příkaz.

$ exit

#výstup

[email protected]:/mnt/c/Users/Logan99$ exit

logout

Instalace dalších distribucí

Podobně můžete nainstalovat další distribuce, například Fedora, Debian a OracleLinux_8_5. Pro zobrazení dostupných distribucí zadejte následující příkaz.

$ wsl --list --online

Pro instalaci Debianu musíme zadat následující příkaz.

$ wsl --install -d Debian

Or

$ wsl.exe --install Debian

Stejně jako u Ubuntu budete vyzváni k nastavení uživatelského jména a hesla.

#výstup

Nyní se podívejme na verzi Debianu.

$ cat /etc/issue

#výstup

$ Debian GNU/Linux 11 n l

A co Fedora? Ta není uvedena, pokud použijete příkaz wsl –list –online.

Distribuce můžete instalovat také z obchodu Windows.

Otevřete Windows Store a zadejte „Linux distros“. Zobrazí se seznam všech dostupných distribucí. Zde si můžete všimnout pouze oficiálně podporovaných distribucí.

Pro neoficiální podporu distribucí je nutné hledat ručně. Tyto neoficiální distribuce však mohou obsahovat chyby a jejich bezpečnost není 100%. Proto je doporučeno je používat pouze pro experimentální účely.

Kliknutím na „Instalovat“ zpřístupníte distribuci v systému.

Nastavení výchozí distribuce

Pro zobrazení seznamu dostupných distribucí je možné použít následující příkaz.

$ wsl --list

Klíčové slovo „Default“ u Ubuntu značí, že po zadání příkazu „wsl“ do příkazového řádku se spustí tato výchozí distribuce Linuxu.

Pro změnu výchozí distribuce je nutné zadat následující příkaz.

$ wsl --setdefault <DistroName>

Pokud chceme nastavit Debian jako výchozí distribuci, je nutné zadat následující příkaz.

$ wsl --setdefault Debian

Od této chvíle se po zadání příkazu „wsl“ do terminálu spustí Debian.

Přepínání verze WSL pro Distro

Distribuce ve výchozím nastavení využívají WSL2. Pro zobrazení seznamu aktuálně nainstalovaných distribucí a jejich verzi WSL je nutné zadat následující příkaz.

$ wsl --list --verbose

#výstup

NAME      STATE           VERSION

* Ubuntu    Stopped         2

  Debian    Stopped         2

Hvězdička * označuje výchozí instalaci Linuxu.

Pokud chceme změnit verzi WSL z 2 na 1, zadáme:

$ wsl --set-version Ubuntu 1

A pro přepnutí zpět na 2 z 1, zadáme:

$ wsl --set-vesion Ubuntu 2

Poznámka: Převod může nějakou dobu trvat. Během převodu okno nezavírejte.

Spouštění konkrétních distribucí s různými uživatelskými jmény

Co když chcete spustit konkrétní distribuci? Pro tento účel je nutné zadat následující příkaz.

$ wsl -d <DistroName>

Or

$ wsl --distribution <DistroName>

Pro spuštění Ubuntu zadejte:

$ wsl -d Ubuntu

Pokud ji chcete spustit s konkrétním uživatelským jménem, musíte přidat parametr –user následovaný uživatelským jménem.

$ wsl -d <DistroName> --user <UserName>

Například pro spuštění Debianu s uživatelským jménem „root“.

$ wsl -d Debian --user root

Poznámka: Pokud se pokusíte spustit distribuci s neexistujícím uživatelem, objeví se chyba „Uživatel nenalezen“.

Aktualizace Linuxu

Distribuce Linuxu je možné aktualizovat zadáním následujících příkazů:

$ sudo apt update

$ sudo apt upgrade

Kromě toho je možné vyhledat i aktualizace jádra Linuxu pro WSL:

$ wsl --update

Nastavení Visual Studio Code s WSL2

VS Code můžete nastavit pro spolupráci s WSL. Díky tomu budete mít přístup k terminálu WSL přímo z VS Code. Může to pomoci při vývoji aplikací na Linuxu a také při přístupu k nástrojům a řetězcům specifickým pro Linux.

Navíc můžete mít přístup k nástrojům pro zvýšení produktivity specifických pro Windows a současně využívat funkce VS Code.

Aby to fungovalo, musíte nainstalovat balíček rozšíření Remote Development. Můžete ho vyhledat přímo v VS Code v záložce rozšíření.

Pokud pracujete lokálně, můžete ho nastavit v nabídce VS Code. Vyberte Zobrazit > Terminál.

Otevře se terminál. Symbol „>“ najdete vedle symbolu „+“. Klikněte na něj a zobrazí se vám seznam WSL terminálů.

Zde můžete také zvolit „Výchozí profil“.

To je možné, protože VS Code má přímý přístup k \wsl$ a všem debuggerům spuštěným na localhost.

Práce s grafickými aplikacemi a WSL2

Pokud chcete používat grafické aplikace, je nutné nainstalovat správné ovladače pro WSL2. Společnosti Intel, AMD a Nvidia nabízí ovladače pro WSL, díky kterým mohou grafické aplikace založené na Linuxu fungovat bez problémů.

I přesto se můžete potýkat s problémy. Může se stát, že některé funkce těchto grafických aplikací nebudou fungovat. Řada aplikací nemusí fungovat vůbec, a proto bude nutné hledat alternativy.

V podstatě se jedná o metodu pokus-omyl, která vás může stát poměrně dost času.

Můžete se podívat na jejich průvodce WSL2 o práci s grafickými aplikacemi pomocí Ubuntu.

Docker Desktop WSL2 na Windows

Pokud nechcete nastavovat vše lokálně pomocí Hyper-V, můžete použít Docker Desktop, který oficiálně podporuje WSL2. S ním můžete urychlit pracovní proces při používání nástrojů Docker přímo ve Windows. Další informace naleznete v průvodci zde.

Proč Microsoft bere Linux vážně?

Microsoft je proprietární společnost. Vytváří řešení jako Windows v uzavřeném prostředí a preferuje, aby se uživatelé drželi Windows před Linuxem.

Nicméně v roce 2016 oznámili závazek k Open Source. Tento pohled se změnil po roce 2001, kdy Steve Ballmer nazval Linux „rakovinou“.

V roce 2023 se situace změnila. Microsoft implementuje Linux přímo do svého ekosystému. WSL2 oznámili v květnu 2019 a v říjnu 2021 představili WSL2 ve Windows Store. V listopadu 2022 vydali také WSL2 v1.0.

Uživatelé Linuxu také dostali přístup k softwaru společnosti Microsoft, jako jsou Edge a Teams. Aktivně přispívají i k jádru Linuxu a jsou členem produktu Linux Foundation.

Všechny tyto skutečnosti naznačují, že Microsoft bere Linux vážně. Někteří skeptici si však nemyslí, že by Microsoft Linux miloval.

Zkrátka, Microsoft se o Linux zajímá. Jejich subsystém Window je důkazem, že jim záleží na Linuxu a open source. Nejdůležitější je však fakt, že chtějí, aby jejich uživatelé měli bezproblémový přístup k jádru Linuxu, aniž by museli používat virtualizaci nebo duální bootování.

Závěrečná slova

V době, kdy se diskutuje, který OS je nejlepší pro vývojáře, mají vývojáři možnost využívat oba systémy. WSL2 poskytuje přístup k jádru Linuxu prostřednictvím různých distribucí Linuxu. Navíc je rychlý a spolupracuje s Dockerem.

V současné době je WSL2 v aktivním vývoji, řeší problémy s kompatibilitou a dává větší možnosti vývojářům. Proto můžeme říct, že budoucnost s WSL2 vypadá slibně a Microsoft podniká všechny kroky, aby zpřístupnil jádro Linuxu svým uživatelům Windows.

Podívejte se také na distribuce Linuxu, které jsou známé mezi administrátory systémů a vývojáři.