Bash běžící v systému Windows 10 | |
Vývojář | Microsoft |
---|---|
První vydání | 2. srpna 2016 |
Aktuální verze | WSL 2 (12. června 2019[1]) |
Operační systém | Microsoft Windows |
Typ softwaru | vrstva kompatibility, virtualizace |
Licence | Subsysté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 |
Web | devblogs/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:
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.
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.
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]
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]