Windows-compatibiliteit

Linux-kernel in Windows 10

Linux-kernel in Windows 10
Hoe werkt het nieuwe Windows-subsysteem voor Linux (v2)??

Microsoft heeft onlangs aangekondigd dat ze binnenkort een Linux-kernel zullen leveren die rechtstreeks in Windows 10 is geïntegreerd. Hierdoor kunnen ontwikkelaars het Windows 10-platform gebruiken bij het ontwikkelen van applicaties voor Linux. In feite is dit de volgende stap in de evolutie van Windows Subsystem for Linux (WSL). Laten we WSL-versie 1 bekijken voordat we ingaan op de brei van Linux-kernelintergatie en wat het betekent.

Als je aan de slag wilt met WSL (v1), dan is hier een handleiding daarvoor.

1.  WSL-versie1

Het Windows-subsysteem voor Linux zou eigenlijk een Linux-subsysteem voor Windows moeten worden genoemd. Het biedt een stuurprogramma (een subsysteem) voor het Windows-besturingssysteem, dat Linux-systeemaanroepen vertaalt in native Windows 10-systeemaanroepen die de NT-kernel begrijpt.

Dit creëert een enigszins geloofwaardige illusie voor Linux-binaries dat ze in feite bovenop een Linux-kernel draaien! Dit werkt goed genoeg zodat je niet alleen eenvoudige 64-bits binaries kunt draaien die voor Linux zijn gecompileerd, maar je kunt ook een heel Userland (een.k.a een Linux-distributie zoals Debian of Ubuntu) bovenop WSL v1. Dus wanneer u Ubuntu installeert vanuit de Microsoft Store, haalt het gewoon de Ubuntu userland-binaries op die Canonical verzendt voor de WSL v1-omgeving van Microsoft.

WSL v1 is echter nog verre van perfect. Bepaalde semantiek die een Linux-systeem zou verwachten, is totaal onaanvaardbaar op Windows. U kunt bijvoorbeeld de bestandsnaam van een geopend bestand op Windows niet wijzigen, maar wel op Linux.

Andere voor de hand liggende voorbeelden zijn de slechte prestaties van het bestandssysteem van WSL v1 en het onvermogen om Docker uit te voeren.

2.  WSL v2 de Linux-kernel

Deze nieuwe versie van WSL lost al deze problemen op door de Linux-kernel op te nemen die in de Hyper-V-hypervisor draait. Tijdens hun aankondiging en demo's benadrukten Craig Loewen en zijn collega van Microsoft dat Microsoft in de toekomst enorm gaat investeren in virtualisatietechnologie.

Het gebruik van een Linux-kernel lost alle semantische problemen op die niet kunnen worden opgelost met alleen een vertaallaag voor systeemaanroepen. Deze Linux-kernel zal zeer licht van gewicht zijn en zal door Microsoft worden onderhouden met alle wijzigingen aan de Linux-kernel die open source zijn gemaakt. In hun demo lieten ze zien hoe je de bestaande WSL v1-apps eenvoudig kunt migreren om ongewijzigd in een WSL v2-omgeving te draaien. De prestaties van het bestandssysteem zijn 3-4 keer verbeterd en het hele systeem voelt veel responsiever aan.

3.  Hoe werkt het?

Dus eigenlijk hebben we een Linux-VM met veel userland-apps, bijv.g, OpenSUSE of Debian  of Ubuntu userland. Je krijgt meer dan één distro op je Windows-machine, met een enkele Linux-VM, dus dat is netjes. Maar het houdt ook in dat elke keer dat u uw WSL Ubuntu-terminal opent, u een volledige VM opstart! Dat duurt nog even, toch?

Eigenlijk niet. Linux-kernel is eigenlijk klein genoeg en licht genoeg dat Microsoft er waanzinnige opstarttijden mee kon behalen (~ 1 seconde). Ze bereikten dit door alle bootloader-code te verwijderen en aangezien het een VM is, laden ze de Linux-kernel rechtstreeks in de adresruimte in het geheugen en stellen een paar toestanden van de VM in die de kernel verwacht. Dit is hetzelfde mechanisme dat een andere nieuwe Windows 10-functie aanstuurt, namelijk Windows Sandbox.

Het heeft een zeer kleine geheugenvoetafdruk, het laadt in een seconde op en het native ext4-bestandssysteemformaat zorgt ervoor dat het een zeer soepele gebruikerservaring biedt. De VM draait alleen wanneer je hem nodig hebt.

Bovendien is het niet volledig geïsoleerd zoals een traditionele VM. U kunt heel gemakkelijk communiceren met de rest van het Windows-systeem, inclusief bestanden op uw Windows-schijven met behulp van WSL v2. Het is geen geïsoleerde VM maar een geïntegreerd onderdeel van Windows 10. Hoe bereikt het dat??

4.  Lang leve het plan 9

Met WSL v1 was toegang tot bestanden en mappen op uw Windows-gasten triviaal. Je Linux-gebruikersland is slechts een app op Windows, dus het kan vrij gemakkelijk bestanden lezen en schrijven die oorspronkelijk tot het oorspronkelijke besturingssysteem behoorden.

Met WSL v2 heb je een VM die draait met zijn virtuele harde schijf (uiteraard geformatteerd met ext4) en als we een vergelijkbare ervaring willen als die van WSL v1, hebben we wat extra mechanismen nodig. Ga naar abonnement 9.

Plan 9, ook geschreven als, 9P is een besturingssysteem dat oorspronkelijk is ontwikkeld door Bell Labs. Hoewel het onwaarschijnlijk is dat u het ooit in productie zult vinden, leeft het nog steeds voort, aangezien verschillende andere besturingssystemen interessante ideeën overnemen die erin zijn geïncubeerd, waaronder het 9P-protocol voor een bestandsserver.

5.  Bestandssystemen

WSL v2 heeft een 9P-protocolserver op uw Windows 10-host en een 9P-client in uw WSL-apps. Hiermee hebt u native toegang tot Windows 10-bestanden in uw WSL-omgeving. De C:-schijf wordt gemount op /mnt/c, net als WSL v1, en elk bestand in de Windows 10-host kan worden bereikt door de WSL-omgeving.

Het omgekeerde zal ook waar zijn. Er zal een 9P-protocolserver draaien in uw Linux-omgeving met de bijbehorende client op Windows 10-host. Hierdoor hebben gebruikers toegang tot hun Linux (ext4) bestandssysteem vanuit de Windows 10-omgeving. Hiermee kunt u uw broncode of configuratiebestanden bewerken met uw favoriete IDE die op Windows is geïnstalleerd, alle mappen weergeven met Windows 10-bestandsverkenner en nog veel meer. In wezen draait u uw favoriete Linux-distributies met de Windows 10 UI.

6.  Docker

In hun aankondiging liet Microsoft ook doorschemeren dat deze nieuwe omgeving ook door Docker zal worden gebruikt om hun toekomstige Docker voor Windows-apps te verzenden. Aangezien er een Linux-kernel is en Docker erop draait, zal het vrij eenvoudig zijn. In de demo draaiden ze Docker bovenop Ubuntu met WSL v2 en het werkte alsof het op een native Ubuntu-installatie draaide.

Om een ​​heel oppervlakkig voorbeeld te geven, als je met Dockerfiles op een Windows-systeem hebt gewerkt, moet je de beveiligingsproblemen hebben opgemerkt die worden veroorzaakt door het ontbreken van Unix-achtige bestandspermissies. Dat zal niet langer een probleem zijn. Docker op Windows gebruikt al een aangepaste VM om Linux-containers te leveren, vermoedelijk zal het nu WSL v2 gebruiken om de Linux-kernel te gebruiken die Microsoft verzendt.

Conclusie

Over het algemeen ben ik erg onder de indruk van wat Microsoft doet om een ​​toevluchtsoord te bieden voor Linux-ontwikkelaars die ook Windows willen gebruiken. Hopelijk zal het op de lange termijn veel kruisbestuiving tussen de twee verschillende ecosystemen aanmoedigen.

Als u Windows 10 Home, Pro of enterprise-editie gebruikt, kunt u een voorproefje krijgen van WSL v2 door u aan te melden voor de Preview-builds van Windows 10. Hier is een handleiding om dat te doen.

Vulkan voor Linux-gebruikers
Met elke nieuwe generatie grafische kaarten zien we game-ontwikkelaars de grenzen van grafische betrouwbaarheid verleggen en een stap dichter bij foto...
OpenTTD versus Simutrans
Je eigen transportsimulatie maken kan leuk, ontspannend en buitengewoon aanlokkelijk zijn. Daarom moet je ervoor zorgen dat je zoveel mogelijk spellen...
OpenTTD-zelfstudie
OpenTTD is een van de meest populaire simulatiegames voor bedrijven die er zijn. In dit spel moet je een geweldig transportbedrijf creëren. U begint e...