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í verze2.4.11
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 prostředí 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. Verze WSL 1 (uvedena v srpnu 2016) implementovala část linuxových systémových volání pomocí jádra Windows.[1] Verze WSL 2 (uvedená v květnu 2019) používá pro běh kompletního linuxového jádra virtualizaci Hyper-V, čímž dosahuje vyšší kompatibility s linuxovými aplikacemi.[2] WSL je nástupcem softwarového balíku Windows Services for UNIX.

Použití

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[3]

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.[4]

Verze

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[4] 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.[5]

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

První verze WSL je dostupná od updatu Windows 10 z 2. srpna 2016 (verze Windows 10 1607), kdy bylo dostupné Ubuntu jako jediná distribuce.[6] 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[7] lze nainstalovat vybrané linuxové distribuce, jako například Debian, Ubuntu, openSUSE nebo Fedora.

Budoucí funkce

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ěží.[8]

Kontroverze

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“.[9] 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.[10]

Odkazy

Reference

  1. LEEKS, Stuart. Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques: Maximise Productivity of Your Windows 10 Development Machine with Custom Workflows and Configurations. Birmingham: Packt Publishing, 2020. Dostupné online. ISBN 978-1-80056-352-0. OCLC 1202451000 S. 18–19. 
  2. Comparing WSL Versions. learn.microsoft.com [online]. Microsoft, 2024-11-19 [cit. 2025-02-27]. Dostupné online. (anglicky) 
  3. CRAIGLOEWEN-MSFT. About Windows Subsystem for Linux. docs.microsoft.com [online]. [cit. 2021-01-11]. Dostupné online. (anglicky) 
  4. a b CRAIGLOEWEN-MSFT. Frequently Asked Questions (FAQ). docs.microsoft.com [online]. [cit. 2021-01-11]. Dostupné online. (anglicky) 
  5. CRAIGLOEWEN-MSFT. Comparing WSL 2 and WSL 1. docs.microsoft.com [online]. [cit. 2021-01-11]. Dostupné online. (anglicky) 
  6. New distros coming to Bash/WSL via Windows Store. Windows Command Line [online]. 2017-05-11 [cit. 2021-01-11]. Dostupné online. (anglicky) 
  7. CRAIGLOEWEN-MSFT. Install Windows Subsystem for Linux (WSL) on Windows 10. docs.microsoft.com [online]. [cit. 2021-01-11]. Dostupné online. (anglicky) 
  8. THURROTTFEED. Thurrott.com [online]. 2020-06-20 [cit. 2021-01-11]. Dostupné online. (anglicky) 
  9. 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) 
  10. 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


Média použitá na této stránce

Windows Subsystem for Linux logo.png
The logo of the Windows Subsystem for Linux component of Windows as of November 2021.
Ubuntu on Windows 10 - bash.png
Autor: Canonical, Ltd., Microsoft, Licence: GPL
Screenshot of Bash on Ubuntu on Windows, a component of Windows Subsystem for Linux