Windows Subsystem for Linux – een kijkje in de virtuele machine

Noud van Kruysbergen
0

De Linux-omgevingen die in Windows Subsystem for Linux (WSL) worden gedraaid, komen in sommige opzichten niet overeen met een gewone distributie zoals die draait op een pc of in een virtuele machine. De processen zijn vaak eenmalig, maar de activiteiten in de achtergrond zijn met commando’s zichtbaar te maken.

Bij Windows 11 kan het Windows Subsystem for Linux (WSL) zelfs grafische Linux-toepassingen op het bureaublad weergeven. Een grondige blik op hoe dat werkt laat niet alleen zien wat het betreffende subsysteem doet bij de verschillende Windows-versies, maar ook enkele leuke mechanismen die in alle moderne Windows-versies zitten.


Windows subsystem Linux virtuele machine


Linux draait anders dan in virtuele machine

De Linux-omgevingen die in WSL worden ‘gedraaid’, komen in sommige opzichten niet overeen met een gewone distributie zoals die draait op een pc of in een virtuele machine. Ze missen de typische functies voor het starten van diensten, het inloggen en de software voor het tonen van een grafische gebruikersinterface met een bureaublad en dergelijke.

Maar de omgevingen bevatten alle bibliotheken en configuratie­bestanden die bij de distributie horen, dus programma’s merken geen verschil zolang ze niet afhankelijk zijn van andere diensten.


Blijf op de hoogte en ontvang gratis meer informatie over Linux!

Schrijf je in voor de nieuwsbrief:


Container omgeving

Zoals bij de meeste containers vandaag, draait de omgeving normaal gesproken één programma. Hij kan echter ook verschillende programma’s starten. Aangezien de infrastructuur voor het automatisch opstarten van diensten echter ontbreekt, gaat het meestal om eenmalige acties.

Zodra je uitlogt of de omgeving of Windows verlaat, stoppen alle Linux-­processen die daarin gestart zijn. Uiteindelijk hebben de Microsoft-ontwikkelaars alles zo aangepast dat Linux-binary’s interactief kunnen worden gebruikt – een permanente werking van serverservices stond daarbij niet op de voorgrond.

WSL1 is door Microsoft verankerd als een service in Windows om Linux-binary’s te draaien. Met WSL2 draait een lichtgewicht virtuele machine een door Microsoft aangepaste Linux-kernel.

Windows Subsystem for Linux 2

Onder die kernel in de betreffende virtuele machine draait WSL2 alle Linux-­omgevingen van een gebruiker. Het gebruikt namespaces om de distributies in de virtuele machine van elkaar te isoleren.

Om grafische Linux-toepas­singen (WSLg) te kunnen draaien, voorziet Microsoft bij Windows 11 in een speciale systeemomgeving voor de door de gebruiker opgezette Linux-omgeving, die de schermuitvoer zodanig omleidt dat de vensters ervan via RDP naast de gewone Windows-vensters op het bureaublad kunnen worden weergegeven.

Virtuele machine en commandline

Dat er een lichtgewicht virtuele machine gebruikt wordt, is niet te zien met de Hyper-V-beheertools, maar wel op de commandline met het commando hcsdiag list (daar zijn administratorrechten voor nodig). Op die manier kunnen ook andere dergelijke mini-virtuele machines zichtbaar worden gemaakt, die Windows 10 al integreert voor bijvoorbeeld beveiligingsfuncties.

Het Android-subsysteem in Windows gebruikt die ook (meer daarover in een volgende c’t). Een dergelijk commando (hnsdiag) geeft ook informatie over de virtuele switches van Hyper-V.

Dieper in de virtuele omgeving van  Windows subsystem Linux

Bij Windows 11 kun je nog dieper in het systeem kijken, daar kun je met wsl –system zelfs een shell krijgen binnen de systeemomgeving die door Microsoft is gemaakt voor het onderscheppen van grafische uitvoer.

In die omgeving is met yum zelfs een pakketbeheerder beschikbaar om verdere software te installeren. Dergelijke veranderingen zijn echter alleen tijdelijk en worden niet bewaard in het VHDX-bestand van de systeemomgeving die bij het opstarten gebruikt wordt.

De oorsprong van de ontwikkeling van WSL

Tijdens de verdere 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 kanker­gezwel 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.

Meer hierover is te lezen in: Windows Subsystem for Linux WSL – geschiedenis en huidige gebruik

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

Linux zit in elke Windows

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 tab­bladen.

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.


(Deze informatie is afkomstig uit het artikel van Peter Siering en Noud van Kruysbergen, en verscheen eerder in c’t 3, 2022, p120)


 

Voor meer praktische instructies over Linux en Windows: c't magazine mei/2022

Meer over

windows

Deel dit artikel

Lees ook

Arch Linux zelf installeren – bereik je doel snel en veilig

De leercurve om Arch Linux zelf te installeren is steil, je moet alle valkuilen en hindernissen via de commandline overwinnen, maar als je de nieuwe i...

Arch Linux – het systeem uitbreiden na installeren basisversie

Nadat je de eerste hindernis met de archinstall hebt genomen kun je Arch Linux uitbreiden door extra profielen te installeren. De leercurve om Arch Li...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er