S vydáním výroční aktualizace pro Windows 10, Microsoft oznámil Windows Subsystem pro Linux (WSL) - způsob, jak spustit reálný, nativní Bash na Windows 10, který podporuje provádění nativních Linuxových binárních souborů. To se provádí spuštěním uživatelského režimu Ubuntu Linux na vrcholu Windows.
To znamená, že můžete spustit nástroje příkazového řádku Linuxu, například ls
, grep
, top
a chmod
. Protože používáte originální Ubuntu níže, spuštění lsb-release -a
vám poskytne následující výstup:
Můžete použít apt-get
a přátele k instalaci nástrojů, jako je vim
, git
, screen
, tmux
, nebo dokonce hrát hru nethack:
Mějte však na paměti, že tento systém je ve verzi beta a není určen pro pracovní zatížení serveru. Je to jen nástroj pro vývojáře (a nadšence), aby si mohli vyzkoušet své Linux-centrické aplikace ve Windows bez úprav. To také není nástroj určený ke spuštění Linuxových GUI aplikací nebo prostředí, jako je Gnome nebo KDE, i když je to možné i s určitými hacky. Poté, co jsme si to vyjasnili, podívejme se na to, jak funguje Linux ve Windows 10.
Podsystém Windows pro Linux (WSL)
Podle oficiální dokumentace, „WSL je soubor komponent, který umožňuje nativní Linuxové binární soubory ELF64 běžet na Windows“. To dělá tím, že implementuje virtualizované linuxové jádro jádra na vrcholu jádra Windows NT. To znamená, že nepoužívá žádný kód ze skutečného jádra Linuxu - kdykoliv aplikace vytvoří systémové volání specifické pro Linux (syscall), WSL jej převede na ekvivalentní Windows syscall, který pak provede všechny těžké zvedání.
Rozdíly od virtuálních počítačů a Cygwin
Nyní se podívejme na to, jak je Linux Bash Shell ve Windows 10 odlišný od virtuálních strojů a Cygwin.
Virtuální počítače
Možná přemýšlíte: „Proč to používat? Proč nepoužívat pouze Linux VM ve Windows? “
Ve srovnání s virtuálním strojem používá služba WSL méně prostředků . Umožňuje také pracovat s vašimi soubory stejně jako v systému Linux a zároveň umožňuje úplný přístup k základnímu souborovému systému Windows, aniž byste museli spoléhat na sdílené složky nebo sdílené síťové sdílené složky.
Cygwin
Další populární metodou běhu populárních Linux / Unix-like nástrojů na Windows je Cygwin. Největší rozdíl mezi těmito dvěma přístupy je ten, že Cygwin není způsob, jak spustit nativní Linuxové binární soubory ve Windows. Poskytuje pouze sadu nástrojů GNU a Open Source, které poskytují funkčnost podobnou distribuci Linuxu ve Windows.
Na druhé straně, WSL nástroje jsou nativní Linux ELF-64 kompilované binární soubory běžící na Windows. Například spuštění příkazu apt-get install emacs
ve WSL stáhne a nainstaluje stejné soubory jako u instalace Ubuntu 14.04 z oficiálních úložišť Ubuntu.
Uživatelé, oprávnění a souborové systémy ve WSL
Hierarchie systému souborů
WSL je nainstalován pod aktuálním %LocalAppData%\lxss\rootfs
. Toto je známé jako prostředí WSL a funguje jako Linuxový adresář „ /
“ (root). Pokud je například vaše uživatelské jméno v systému Windows beebom
, kořenový adresář systému Linux bude umístěn v adresáři C:\Users\beebom\AppData\Local\lxss\rootfs.
To znamená, že každý uživatel Windows může mít své vlastní prostředí WSL a může provádět změny, jako jsou například apt-get install
balíčky apt-get install
, aniž by to ovlivnilo ostatní uživatele systému Windows.
V systému WSL je možné přistupovat k základnímu systému souborů Windows. Všechny pohony jsou namontovány pod /mnt.
Například, C:\
je připojen pod /mnt/c
, D:\
je připojen pod /mnt/d
, atd. D:\
/mnt/d
Uživatelé a oprávnění
Při první instalaci WSL se zobrazí výzva k vytvoření nového výchozího uživatele systému Linux. Tento uživatel nemusí mít stejný název jako aktuální uživatel systému Windows a je obecně považován za samostatnou entitu. Můžete dokonce vytvořit více uživatelů Linuxu, ovládaných jediným uživatelem systému Windows.
Oprávnění root
lze získat pomocí příkazu sudo
. Mějte na paměti, že být root
ve WSL ovlivňuje pouze práva uživatele v prostředí Linuxu a souborový systém - nemají žádný vliv na udělená oprávnění systému Windows. Například relace WSL s oprávněními správce systému Windows může cd /mnt/c/Users/Administrator
zatímco relace Bash bez oprávnění administrátora by viděla Oprávnění odepření. Zadání sudo cd /mnt/c/Users/Administrator
neudělí přístup do adresáře Administrator, protože oprávnění jsou omezena systémem Windows.
Funkce systému souborů specifické pro Linux
Linux je systém rozlišující velká a malá písmena . To znamená, že photo.png
a Photo.png
jsou považovány za dva různé soubory. Zatímco systém Windows ve výchozím nastavení nerozlišuje velká a malá písmena, stále si je vědoma . Což znamená, že zatímco photo.png
a Photo.png
nejsou považovány za dva odlišné soubory, určitě si je vědom rozdílu v případě.
WSL zpracovává velká a malá písmena jako v Linuxu. Je dokonce možné vytvořit dva soubory, jejichž název se liší pouze případem mimo prostředí WSL. Mějte však na paměti, že mnoho aplikací systému Windows nemůže tyto situace zpracovat a nemusí být schopen otevřít jeden nebo oba soubory.
Podobně jsou podporovány symbolické odkazy, pokud používáte systém souborů NTFS. Symbolické odkazy však budou fungovat pouze v prostředí WSL a nelze je vyřešit jinými aplikacemi systému Windows.
Linux také podporuje téměř všechny speciální znaky v názvech souborů, zatímco systém Windows je restriktivnější. WSL však umožňuje použití takových speciálních znaků za předpokladu, že jsou omezeny na prostředí systému Linux.
Připraven spustit Linux Command Line na Windows?
Tak to je, jak Ubuntu Bash nebo Linux Bash Shell, také známý jako Windows Subsystem pro Linux, pracuje na Windows 10 (s aktualizací Anniversary). Spolu s jeho prací jsme se také naučili, jak je to jiné a lepší než tradiční metody spouštění příkazů specifických pro Linux v systému Windows. Pokud jste tedy vždy chtěli používat příkazy Linuxu, začněte a máte-li dotazy, komentáře nebo tipy, dejte nám vědět v části s komentáři.