WSL (soms ook wel Bash voor Windows genoemd) draait bovenop de Windows kernel en dat betekent dat je Linux-binariers zou kunnen draaien zonder Windows te verlaten.

"Bash voor Windows bevat een toolset voor ontwikkelaars, IT administrators en andere tech-professional die Linux command-line tools samen met hun Windows tools en applicaties," aldus Rich Turner, senior program manager.

Deze toolset is ontwikkeld in samenwerking met Canonical (en een grote community Linux-gebruikers) en is niet gemaakt om Linux in Windows te veranderen of Windows in Linux. Het is alleen zo dat sommige Linux-tools zo alomtegenwoordig zijn voor ontwikkeling en deployment dat het bruikbaar is deze paraat te hebben zonder meteen een virtuele machine te starten. Dat is ook waarom Macs zijn populair zijn onder ontwikkelaars: macOS is gebaseerd op BSD (en behoort tot de UNIX-familie) waardoor Linux-tools als Bash makkelijk uitgevoerd kunnen worden. Dat is nu ook mogelijk met windows 10.

"Het gebruik van Bash onder Windows betekent dat gebruikers legitieme, ongemodificeerde Linux command-line tools kunnen draaien in een compatible Windows-omgeving samen met hun favoriete Windows productiviteits- en ontwikkeltools," zegt Turner. Denk aan Office en Vi of Powershell en grep.

WSL evolueert snel en de Creators Update heeft ervoor gezorgd dar deze omgeving dagelijks gebruikt kan worden. Maar het is makkelijker te gebruiken als je goed begrijpt hoe Windows 10 en Linux met elkaar omgaan.

Het is voor ontwikkelaars

WSL is hier om Windows beter te laten werken voor ontwikkelaars die makkelijk en snel hun werk willen.moeten verbinden met een Linux backend. Dat geldt ook voor tools die vaak beschikbaar zijn voor Linux maar niet voor Windows. . Sommige tools zijn bijvoorbeeld gecompileerde binaries die ervanuit gaan dat je Linux gebruikt onder een Linux-bestandssysteem. Turner noemt dit "een geweldige toolset voor ontwikkelaars die werken aan multi-platform oplossingen, vooral mensen die websites en diensten bouwen als websites, distributies systems of opslagdiensten."

WSL is een Linux distributie, geen Linux kernel

WSL installeert een Linux distributie op je pc (op dit moment Ubuntu 16.04, maar in de toekomst zijn er meer distributies beschikbaar) De Linux binaries maken hun system calls zoals ze dat altijd doen, maar deze calls kaan uiteindelijk naar de Windows Kernel. "Calls van user mode command-line tools werken met de besturingssysteem-kernel ," zegt Turner. Dat betekent dat je gewoon normale Linux binaries kan installeren zonder iets te wijzigen omdat je onder Windows zit.

De simpelste manier waarop je dit kan uitleggen is dat dit een soort "omgekeerde versie van WINE" is.

Het is geen virtual machine

Als je Linux onder Windows draait in een Virtuele Machine, krijg je een apart besturingssysteem die een heleboel onderdelen van Windows omzeilt. WSL leunt veel minder zwaar op de processor en het geheugen dan een virtuele machine. Omdat je veel in Windows zit kan je Windows en Linux-tools naast elkaar gebruiken op dezelfde set bestanden. Dat betekent ook dat het werkt in een Windows VM zonder dat je je zorgen hoeft te maken over nested virtualization.

Het is geen Cygwin

Cygwin is een library die je een UNIX-achtige grafische omgeving geeft binnen Windows, waaronder een command line-interface. Alle Linux-programma's die je wilt gebruiken zal je specifiek voor dit systeem moeten compileren. Als je WSL gebruikt is dat allemaal niet nodig, je kan gewoon de standaard binaries gebruiken vinnen de standaard Windows-omgeving en je hoeft niks aan te passen.

Installatie en starten

Je hebt een 64-bit-versie van de Windows 10 creators Update nodig (versie 1703 of later). Open instellinge > updates en veiligheid > voor ontwikkelaars en schakel de ontwikkelaarsmodus in. Selecteer de checkbox gemaakt Windows Subsystem voor Linux (Beta) in het Windows features in- of uitschakelen.

Deze optie kan ook worden ingeschakeld via PowerShell met het commando: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Herstart je pc, open de command prompt en typ bash om de Ubuntu omage te downloaden. Er wordt een snelkoppeling aangemaakt in je startmenu. De eerste keer dat je deze start wordt je gevraagd een UNIX-gebruikersnaam en wachtwoord aan te maken (dit account staat los van je Windows-account)

Je hebt geen admin-account nodig om het te gebruiken

Je hebt geen administrator-rechten om WSL, maar dat kan gedaan worden met DISM of andere management tools zodat ontwikkelaars zonder admin-accounts op hun pc toch WSL kunnen gebruiken.

Zelfs Symlinks hebben geen admin-rechten nodig

Windows ondersteunt symbolic links sinds Vista, maar wegens beveiligingsredenen had je een elevated command prompt nodig om ze te maken en te modificeren. Dit geeft problemen voor tools als GIT en npm. Deze tools gebruiken symlinks als er repo's en packages worden aangemaakt en hersteld. Als je de Creators Update hebt geïnstalleerd en de developer mode hebt ingeschakeld, hoef je geen administrator meer te zijn om met symlinks te kunnen werken.

Het is niet alleen bash

Back is dé manier om WSL te bereiken ; het is altijd het eerste WSL-proces dat wordt gestart en als je bash sluit worden alle andere Linux processen ook gesloten. Maar je kan apt gebruiken in bash om Linux Binaries te installeren, je kan andere shells als zsh en fish gebruiken, je kan standaard Linux-tools als apt, sed, grep, awk, top, tmux en ssh gebruiken, je kan ontwikkeltools als VIM, Emacs, git en de GNU Debugger (GDB) gebruiken en laten we vooral services als SSHD. Apache, nginx, MySQL en PostgreSQL. En dan hebben we het nog niet eens over language tools als npm voor Node.js, gems voor Ruby, Apache Maven voor Java, Pip voor Python en vele andere pakketten die je normaal gesproken in Ubuntu gebruikt.

Het is voor command-line tools, maar...

WSL is gemaakt voor het draaien van command line tools, daarom wordt als eerst de bash shell gestart, maar dat betekent niet dat grafische Linux tools niet werken. Sterker nog, de meeste werken gewoon, aar dat is slechts een bijwerking van het werk dat Microsoft heeft gedaan om command line-tools tools te ondersteunen. Microsoft doet niks specifieks om grafische Linux-tools te ondersteunen, maar het doet ook niks om de werking daarvan tegen te gaan. Een mooie bijkomstigheid.

Linux-ondersteuning heeft de console voor iedereen beter gemaakt

De Windows console van de Creators Update heeft sinds de ondersteuning van Linux een betere ondersteuning voor ANSI-codes en VT sequences gekregen omdat tools als Vim, Emacs en tmux deze nodig hebben. Daarnaast heeft de console nu 24-bit kleurenondersteuning in tegenstelling tot de oude 16 kleuren en betere muisondersteuning (waar tools als Midnight Commander en Htop van afhenkelijk zijn). Dankzij deze verbeteringen zijn CMD en de PowerShell console er flink op vooruit gegaan.

Niet beschikbaar op Windows Server

WSL is alleen te vinden in de Windows 10 client en niet in Windows server. Als je de virtual desktop infrastructuur gebruikt (VDI), zal je alleen de client-versie van Windows moeten gebruiken.

Je moet je updates managen

WSL wordt regelmatig bijgewerkt door Windows Updates maar daar valt de onderliggende Linux-distributie buiten. Als je deze omgeving wilt updaten zal je dat zelf moeten doen. De makkelijkste en snelste manier is door zelf apt-get update uit te voeren. Microsoft werkt wel aan een manier om dit proces te automatiseren.

Het is verbonden met Windows processen

De Linux-processen die je draait via WSL worden net als alle andere processen in Windows behandeld. Dat betekent dat alle Linux-processen ook zichtbaar zijn in het taakbeheer. Dat gebeurt bijna nooit als je met vidrtuele machines werkt. WSL gebruikt namelijk het bestaande geheugen van de Windows kernel.

Dat betekent onder andere dat tools als de Windows defender ook gewoon je Linux processen kan monitoren. Ook andere anti-malware providers werken aan een manier om WSL te ondersteunen.

Je kan geen Linux bestanden openen in Windows apps

Misschien een beetje een open deur, maar het is simpelweg niet mogelijk. Het proberen te openen van zulke bestanden met Windows applicaties kan de bestanden beschadigen.