Tijdens de ontwikkeling van Windows 10 heeft het nieuws dat het bijbehorende Windows Subsystem for Linux (WSL) normale Linux-programma’s zou kunnen uitvoeren, gezorgd voor aardig wat opschudding. Terwijl de Microsoft-kopstukken 20 jaar geleden nog riepen dat Linux een kankergezwel was, hebben de ontwikkelaars in Redmond het nu rechtstreeks in het besturingssysteem ingebouwd.
Vanaf de eerste pogingen bij de Insider Builds van Windows 10 in 2016, tot de huidige versie in Windows 11, hebben de ontwikkelaars de manier van werken sterk veranderd en doen ze een flinke graai in de technologische trukendoos voor besturingssystemen.
Ontwikkeling van Windows Subsystem for Linux (WSL)
Om te beginnen bij het begin: bij de eerste reguliere versie van WSL die werd uitgebracht bij Windows 10, nu versie 1 genoemd, hebben ontwikkelaars geprobeerd om de Linux-systeemaanroepen te vertalen naar Windows-functies.
Bij het uitvoeren van Linux-programma’s, zogeheten ELF-binary’s, merkten die niet dat in plaats van een Linux-kernel een softwarelaag op de Windows-kernel de systeemaanroepen uitvoerde.
De ontwikkelaars hadden niet de volle 100 procent van alle oproepen geïmplementeerd, maar genoeg om een Linux-omgeving te draaien zoals die van Ubuntu – waarbij ‘omgeving’ aanvankelijk neerkwam op een tekstgebaseerde Unix-shell met al zijn metgezellen zoals grep, awk en consorten.
Blijf op de hoogte en ontvang gratis meer informatie over Linux!
Schrijf je in voor de nieuwsbrief:
WSL – versie 2
Versie 2 van WSL verscheen vervolgens medio 2019, aanvankelijk opnieuw als onderdeel van de Insider Previews. In plaats van Windows de systeemaanroepen te laten nabootsen, hebben de ontwikkelaars daarbij een minimale virtuele machine gebruikt die een Linux-kernel draait.
Voor die compacte virtuele machine heeft Microsoft niet zijn eigen volledige virtualisatiecomponent Hyper-V nodig, maar slechts een afgeslankte vorm daarvan. Windows gebruikt die Host Compute Service (HCS) ook op verschillende andere plaatsen om sandboxes te realiseren.
WSL1 en WSL2 sluiten elkaar niet uit, ze kunnen naast elkaar bestaan. De gebruiker beslist onder welke variant hij een Linux-omgeving wil draaien. Een Windows-installatie kan de Linux-omgevingen uit de Microsoft Store halen via een app of het zonder muis doen op de commandline.
Dat laatste is sowieso een goede keuze, omdat de belangrijkste weg voor het aanroepen en configureren van WSL-omgevingen het programma wsl op de commandline is, dat meestal administrator-rechten nodig heeft.
Voordelen van Windows Subsystem for Linux (WSL)
WSL laat zijn voordelen zien op de plekken waar Windows-gebruikers in contact komen met Linux-omgevingen. Dat geldt vooral voor ontwikkelaars die Visual Studio Code gebruiken om bijvoorbeeld Docker-containers te bouwen.
Zolang ze niet te veel afhankelijkheden bevatten, is een laptop voldoende om het hele lab dat nodig is voor het testen mee te slepen. Na een tijdje merk je niet eens meer op welk besturingssysteem je werkt.
Dat is wat de WSL-aanpak onderscheidt van conventionele virtualisatietechnologie. Theoretisch kan dit alles ook met virtuele machines, maar de benodigde inspanning is daarbij veel groter.
Virtuele machines
Je moet de virtuele machines aanmaken, nadenken over de te verdelen resources en zelf opruimen. Dat kun je alleen doen met de Pro-versie van Windows. WSL is ook beschikbaar bij Windows Home en zelfs in de ARM-versie (op voorwaarde dat de hardware virtualisatie toelaat, wat niet voor elk ARM-apparaat geldt).
Waar het op neerkomt is dat met WSL de drempel om een Linux-omgeving te installeren, weer te verwijderen (met wsl –unregister, dat alle gegevens verwijdert) en opnieuw op te zetten veel lager is.
Windows Terminal maakt dat makkelijk: het is de vervanging van de saaie consolevensters waarin Windows voorheen commandoregeltools aanbood en heeft een schaalbare, kleurrijke interface met tabbladen.
Integratie van Linux omgevingen
Bovendien integreert Windows Terminal de verschillende Linux-omgevingen al tijdens de installatie, zodat PowerShell en de klassieke Opdrachtprompt altijd slechts één muisklik verwijderd zijn.
In de WSL-wereld is het inmiddels een drukte van belang. Op GitHub schieten projecten uit de grond: grafische programma’s voor het beheer van Linux-omgevingen, hulpmiddelen voor netwerkconfiguratie en aanvullingen voor het permanent laten werken van diensten.
Daarnaast zijn er verzamelingen van leuke WSL-onderwerpen ter oriëntatie (we hebben er daarvan een paar gezet bij de links hieronder). Dat alles brengt zelfs cronjobs binnen bereik, die Windows-bestanden verwerken vanuit de Linux-omgeving.
Ontdekkingsreis door het Windows Subsystem for Linux
Grafische Linux-applicatie onder Windows: WSLg broncode, bugreports, architectuur
Bugreport, dat zich bezig houdt met het toegankelijk maken van diensten in WSL buiten localhost
WSL-beheertool voor de Linux-omgevingen
Veel tips rondom WSL, ook voor andere, niet officiële distributies
Zoveel Linux zit in elke WindowsHet is niet alleen door het draaien van Linux-toepassingen dat Microsoft Windows in nauw contact brengt met de Unix-wereld. Al in de begindagen van Windows 10 begonnen de ontwikkelaars typische hulpmiddelen van de Unix-commandline te integreren: Windows-gebruikers vinden er het programma Curl, dat kan worden gebruikt om bestanden automatisch te downloaden, maar ook om complexere webtoegang in scripts te realiseren. Bovendien kan Windows al lang de onder Unix gebruikelijke Tar-archieven lezen en schrijven – maar ‘alleen’ op de commandline. De ontwikkelaars hebben de IT-wereld een grote dienst bewezen door Windows een OpenSSH-client en -server te geven. Die staan zo dicht bij het origineel dat populair is in de opensourcewereld, dat de sleutels die nodig zijn om in te loggen zonder problemen kunnen worden uitgewisseld. Dat was niet altijd het geval: Putty, dat door velen nog steeds onnodig wordt aanbevolen, genereerde ze in een speciale vorm zodat (Open)SSH-servers ze pas na conversie konden verwerken. Aan dat gedoe is gelukkig een einde gekomen met de SSH-componenten die in Windows ingebouwd zijn. |
(Deze informatie is afkomstig uit het artikel van Peter Siering en Noud van Kruysbergen, en verscheen eerder in c’t 3, 2022, p120)