Windows Subsystem for Linux

Windows Subsystem for Linux
Logo
Bash běžící v systému Windows 10
Bash běžící v systému Windows 10
VývojářMicrosoft
První vydání2. srpna 2016
Aktuální verzeWSL 2 (12. června 2019[1])
Operační systémMicrosoft Windows
Typ softwaruvrstva kompatibility,
virtualizace
LicenceSubsystém: Proprietární software;
Linuxové jádro: GNU GPLv2,
část kódu pod slučitelnými variantami GPL či pod permisivními licencemi jako je BSD
Webdevblogs/commandline
Některá data mohou pocházet z datové položky.

Windows Subsystem for Linux ([ˈsabˌsistəm]; zkráceně WSL; česky podsystém Windows pro Linux) od firmy Microsoft je vrstva kompatibility, určená pro nativní běh linuxových spustitelných souborů (formát ELF) v prostředí Windows 10, Windows 11, Windows Server 2019, Windows Server 2022 a Windows Server 2025. Jde o nástupce softwarového balíku Windows Services for UNIX.

Primární využití WSL je pro vývoj softwaru, zejména webových aplikací a open-source projektů. WSL umožňuje používat Bash, linuxové nástroje a také nástroje, které jsou dělané zejména pro Linux. U takových nástrojů je možné, že existuje jejich implementace pro Windows, ale linuxová verze funguje lépe. WSL umožňuje:

  • Používat nástroje příkazového řádku, jako grep, sed, awk
  • Spouštět Bash scripty a linuxové aplikace příkazového řádku
    • Nástroje: vim, emacs, tmux
    • Programovací jazyky: NodeJS, Javascript, Python, Ruby, C/C++, Rust, Go
    • Služby: SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL
  • Instalovat další software pomocí správce balíčku
  • Spouštět linuxové programy z linuxového shellu[2]

Příklad modelového použití WSL 1 nebo WSL 2 je vývojář, který vyvíjí na laptopu s Windows 10 a poté je jeho kód nasazen na produkční server, který běží na OS Linux. Pokud si vývojář aktivuje WSL, může kód vyvíjet a testovat na platformě, která je technicky shodná s produkčním prostředím. Při takovém použití WSL potřebuje méně zdrojů (CPU, paměť, úložiště) než plnohodnotný virtuální stroj. Zároveň je možné používat linuxové aplikace a nástroje spolu s aplikacemi a nástroji Windows a přistupovat ke stejným souborům, pokud je to potřeba.

Dále je možné, že vývojář při používání windowsových verzí softwaru narazí na problémy s neoptimalizovanými aplikacemi. Například NodeJS lze používat přímo ve Windows, ale některé node/NPM knihovny nemusí Windows vůbec podporovat. Podobně například některé Ruby Gem knihovny nemusí fungovat pod Windows.[3]

První verze WSL obsahuje kompatibilní vrstvu vyvinutou Microsoftem, která neobsahuje žádný kód z kernelu Linuxu a funguje na principu překladu systémových volání Linuxu na windowsová. První verze WSL není kompatibilní se vším softwarem pro Linux, např. s 32bitovými binárními soubory, nebo s takovými, které vyžadují specifické funkce obsažené v kernelu Linuxu, které nejsou implementovány v kompatibilní vrstvě. Mezi takový software patří například ovladače zařízení. WSL 1 nepoužívá žádnou emulaci ani virtualizaci, takže může přímo přistupovat k souborovému systémů hostitele a také k některému hardwaru, jako například k síti. Webové servery, které běží ve WSL 1, jsou dostupné pomocí stejného rozhraní, a tedy i IP adresy, jako hostitelský systém, a zároveň sdílí stejné restrikce na použití portů, které potřebují administrátorský přístup anebo jsou okupovány jinými aplikacemi. Pomocí WSL 1 lze provozovat i grafické (GUI) aplikace za pomocí X11 serveru nainstalovaného ve Windows.

V druhé verzi WSL 2 se Microsoft rozhodl nahradit překládání kódu virtualizací plnohodnotného linuxového kernelu za použití Hyper-V[3] architektury. Hlavní cíl WSL2 je zvýšit výkon a zároveň přidat plnou kompatibilitu se systémovými voláními. Nová architektura mění způsob, jak linuxové binární soubory interagují s Windows, ale uživatelská zkušenost zůstává stejná jako u WSL 1. Slabá stránka WSL 2 je práce se soubory napříč souborovými systémy. Problémům s výkonem se lze vyhnout zejména tím, že se bude pro práci v Linuxu používat jen souborový systém Linuxu, a naopak pro práci ve Windows používat souborový systém Windows.[4]

Jednotlivé linuxové distribuce mohou být použité s libovolnou verzí WSL a zároveň mohou být libovolně upgradovány na WSL 2 anebo downgradovány na WSL 1.

Dostupnost

[editovat | editovat zdroj]

První verze WSL je dostupná od updatu Windows 10 z 2. srpna 2016 (verze Windows 10 1607), kdy bylo dostupné Ubuntu jako jediná distribuce.[5] WSL je dostupné pouze na 64bitové verzi Windows 10 a na Windows Server 2019. WSL 2 je dostupné od 12. června 2019 (verze Windows 10 2004).

K instalaci WSL 1 a/nebo WSL 2 je potřeba zapnout v nastavení Windows doplňkovou funkci „Windows Subsystem for Linux“, a poté v Microsoft Store[6] lze nainstalovat vybrané linuxové distribuce, jako například Debian, Ubuntu, openSUSE nebo Fedora.

Budoucí funkce

[editovat | editovat zdroj]

Do budoucna je plánován rozvoj WSL 2, díky jeho možnostem bude možné implementovat věci, které by s WSL 1 nebyly možné. V jarní verzi Windows 10 dorazí například nový příkaz pro instalaci(níže), který podstatně zjednoduší instalaci WSL. Také se stane výchozí verzí WSL verze WSL 2 místo WSL 1.

wsl.exe –install

Dále bude do WSL přidána podpora pro výpočty pomocí grafických karet, což je od vydání WSL nejpožadovanější funkce k doplnění. Ze začátku bude podporována umělá inteligence a strojové učení. Oboje bude důležité pro studenty i profesionály, protože tyto případy užití jsou jedna z klíčových oblastí, kde je Linux mnohem výkonnější než Windows a mnoho specifických aplikací funguje pouze na Linuxu a ne na Windows.

Největší chystaná změna uživatelské zkušenosti bude spočívat v podpoře linuxových grafických (GUI) aplikací. Někteří uživatelé chtějí používat své oblíbené Linuxové GUI editory nebo vývojová prostředí a pracovat s daty ve WSL 2. Cíl Microsoftu je, aby bylo možné linuxové a windowsové GUI aplikace používat vedle sebe bez toho, aby bylo poznat, kde aplikace přesně běží.[7]

Kontroverze

[editovat | editovat zdroj]

V linuxové/vývojářské komunitě jsou obavy, že Windows Subsystem pro Linux může být pro Microsoft způsob, jak Linux „přijmout, rozšířit a zničit“. Tato fráze byla dříve interně používána k popisu strategie k vstupu do kategorie produktů, v které jsou používány standardy, rozšíření těchto standardů o svoje proprietární schopnosti a následně je využít k získání výhody nad konkurencí.

Richard Stallman vyjádřil své obavy z toho, že integrace funkcionalit Linuxu do Windows povede jen k limitaci vývoje svobodného softwaru. Dokonce nazývá WSL jako „krok zpátky v cestě za svobodou“.[8] V kontrastu s tím prohlásil Linus Torvalds, původní tvůrce Linuxu, že nemá obavy že by Microsoft mohl převzít kontrolu nad Linuxem. Linus věří, že GPL 2 licence a také velikost Linuxu dělá něco takového nemožným. Naopak, Linus oceňuje zvýšenou kooperaci Microsoftu s komunitou Linuxu.[9]

  1. WSL 2 is now available in Windows Insiders (anglicky)
  2. CRAIGLOEWEN-MSFT. About Windows Subsystem for Linux. docs.microsoft.com [online]. [cit. 2021-01-11]. Dostupné online. (anglicky) 
  3. a b CRAIGLOEWEN-MSFT. Frequently Asked Questions (FAQ). docs.microsoft.com [online]. [cit. 2021-01-11]. Dostupné online. (anglicky) 
  4. CRAIGLOEWEN-MSFT. Comparing WSL 2 and WSL 1. docs.microsoft.com [online]. [cit. 2021-01-11]. Dostupné online. (anglicky) 
  5. New distros coming to Bash/WSL via Windows Store. Windows Command Line [online]. 2017-05-11 [cit. 2021-01-11]. Dostupné online. (anglicky) 
  6. CRAIGLOEWEN-MSFT. Install Windows Subsystem for Linux (WSL) on Windows 10. docs.microsoft.com [online]. [cit. 2021-01-11]. Dostupné online. (anglicky) 
  7. THURROTTFEED. Thurrott.com [online]. 2020-06-20 [cit. 2021-01-11]. Dostupné online. (anglicky) 
  8. SEPTEMBER 20, Nick Heath in Software on; 2017; PST, 2:51 Am. Will Microsoft love Linux to death? Shuttleworth and Stallman on whether Windows 10 is free software's friend. TechRepublic [online]. [cit. 2021-01-11]. Dostupné online. (anglicky) 
  9. VAUGHAN-NICHOLS, Steven J. Linus Torvalds isn't worried about Microsoft taking over Linux. ZDNet [online]. [cit. 2021-01-11]. Dostupné online. (anglicky) 

Externí odkazy

[editovat | editovat zdroj]