Windows Subsystem for Linux

vrstva kompatibility ve Windows pro Linux

Windows Subsystem for Linux ([ˈsabˌsistəm]; zkráceně WSL; česky windowsový podsystém 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 a Windows Server 2019. Jde o nástupce softwarového balíku Windows Services for UNIX.

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.

Použití

editovat

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.

  • 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í, 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 budou 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

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

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 velká spousta 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 v jejich 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

V Linuxové/vývojářské komunitě jsou přítomny 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 Linuxí komunitou.[9]

Reference

editovat
  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