Penguin in the window: over het potentieel en de vooruitzichten van WSL2

Hé Habr!

Terwijl we nog volop bezig zijn zomer uitverkoopwillen we u graag uitnodigen om een ​​van de grootste onderwerpen te bespreken waar we de laatste tijd aan hebben gewerkt: de interactie tussen Windows en Linux, in het bijzonder gerelateerd aan de ontwikkeling van het systeem WSL. WSL 2 komt eraan, en hier is een kort overzicht van wat er in dit subsysteem gaat komen, evenals een voorspelling voor toekomstige integratie tussen Windows en Linux.

Penguin in the window: over het potentieel en de vooruitzichten van WSL2

In mei van dit jaar kondigde Microsoft aan dat WSL2, de nieuwste versie van het Windows-subsysteem op Linux, zou draaien op een volledige in eigen huis gebouwde Linux-kernel.
Dit is de eerste keer dat Microsoft de Linux-kernel als onderdeel in Windows heeft opgenomen. Microsoft introduceert ook een opdrachtregel in Windows die de mogelijkheden van PowerShell en WSL zal uitbreiden.

Zowel de Linux-kernel voor WSL2, gemaakt door Microsoft, als de nieuwe Windows-opdrachtregel zijn vooral interessant voor ontwikkelaars.

“Dit is de sterkste zet in de strijd tegen AWS”, zegt Joshua Schwartz, directeur digitaliseringsprogramma’s bij adviesbureau AT Kearney.

De toekomst van Microsoft is niet verbonden met de pc-markt, hoewel het zijn positie in dit segment stevig zal blijven behouden. Het zal veel belangrijker zijn om voet aan de grond te krijgen op de cloudmarkt, waarvan in de toekomst desktop-pc's een van de componenten kunnen zijn.

Wat doet WSL2?

WSL2 is het nieuwste Windows Subsystem-framework voor Linux. Hiermee kunt u de prestaties van het bestandssysteem radicaal verbeteren en wordt volledige compatibiliteit met systeemaanroepen geboden.

Een van de belangrijkste verzoeken van de WSL-gemeenschap had betrekking op het verbeteren van de functionaliteit. WSL2 draait veel meer Linux-tools dan WSL, met name Docker en FUSE.
WSL2 verwerkt bestandsintensieve bewerkingen, met name git clone, npm install, apt update en apt upgrade. De werkelijke snelheidstoename hangt af van de specifieke toepassing en hoe deze samenwerkt met het bestandssysteem.

Uit de eerste tests bleek dat WSL2 ongeveer 20 keer sneller is dan WSL1 bij het uitpakken van teer uit zip. Bij het gebruik van git clone, npm install en cmake in verschillende projecten liet het systeem een ​​twee tot vijf keer hogere prestatie zien.

Zal dit helpen het vertrouwen van ontwikkelaars te winnen?

In essentie probeert Microsoft erkenning en vertrouwen te verwerven in de ontwikkelaarsgemeenschap door een eigen versie van de Linux-kernel te ontwikkelen ter ondersteuning van WSL2-processen, aldus Cody Swann, CEO van Gunner Technology.

“Behalve het strikt ontwikkelen voor Windows, was het creëren van alle andere applicaties (cloud-, mobiel, webapplicaties) op een pc uiterst lastig, en daarom moest de ontwikkelaar op de een of andere manier een Linux-distributie parallel opstarten met het Windows-besturingssysteem. Microsoft herkende dit en kwam met een oplossing”, besluit hij.

Het is onwaarschijnlijk dat de introductie van een aangepaste Linux-kernel vanuit het oogpunt van de gemiddelde gebruiker een serieuze impact op het systeem zal hebben. Dit opent echter mogelijkheden voor nauwere interactie tussen Microsoft-services en het Linux-besturingssysteem.
Deze zet van Microsoft is inderdaad heel slim, omdat het helpt om dieper door te dringen in de ontwikkelaarsgemeenschap en om actief gebruik te maken van de producten die iemand anders aan het ontwikkelen is – dat wil zeggen: verbinding maken met open source, zegt Swann.

Welkom bij het nieuwe Microsoft

De trend naar het creëren en onderhouden van een Linux-kernel “specifiek voor Windows” weerspiegelt de sterke open-sourcerichting die wordt gepromoot door CEO Satya Nadella. Microsoft is niet meer hetzelfde als onder Gates en Ballmer, toen alles achter een eigen hek zat en niemand aan interoperabiliteit dacht.

“Satya heeft Microsoft volledig getransformeerd in een veel moderner platform, en die strategie heeft zijn vruchten afgeworpen. Hallo, kapitalisatie van biljoenen dollars”, zegt Schwartz.

Volgens Charles King, hoofdanalist bij Pund-IT, zijn de twee belangrijkste sterke punten van Microsoft efficiëntie en beveiliging.

“Door actief gebruik te maken van zijn eigen serieuze ontwikkelingen – middelen en tools – kan het bedrijf klanten garanderen dat de kernel volledig up-to-date zal zijn en uitgerust zal zijn met de nieuwste patches en fixes om volledige veiligheid te garanderen”, voegt hij eraan toe.

Ook ontwikkelaars profiteren ervan

Linux-binaire bestanden voeren veel functies uit met behulp van systeemaanroepen, zoals toegang krijgen tot bestanden, geheugen opvragen en processen maken. WSL1 vertrouwt op een vertaallaag om veel van deze systeemaanroepen te interpreteren en hen in staat te stellen te communiceren met de Windows NT-kernel.

Het moeilijkste is om alle systeemaanroepen te implementeren. Omdat dit in WSL1 niet gebeurde, konden sommige applicaties daar niet werken. WSL2 introduceert veel nieuwe applicaties die goed werken in deze omgeving.

Dankzij de nieuwe architectuur kan Microsoft de nieuwste optimalisaties veel sneller naar de Linux-kernel brengen dan met WSL1. Microsoft kan de WSL2-kern bijwerken in plaats van alle beperkingen opnieuw te implementeren.

Volledig open source-tool

Microsoft's ontwikkeling van zijn eigen Linux-kernel was het resultaat van jarenlang werk van de Linux Systems Group, evenals van vele andere teams binnen Microsoft, zegt Jack Hammons, programmamanager bij Linux Systems Group, Microsoft.

De kernel die voor WSL2 wordt geleverd, zal volledig open source zijn en Microsoft zal instructies plaatsen over hoe zo'n kernel op GitHub te bouwen. Het bedrijf zal samenwerken met ontwikkelaars die bereid zijn het project te helpen en veranderingen van onderaf te stimuleren.

Microsoft-ontwikkelaars hebben WSL2 gemaakt met behulp van de systemen voor continue integratie en continue levering van het bedrijf. Deze software wordt aangeboden via het Windows-updatesysteem en is volledig transparant voor de gebruiker. De kernel blijft up-to-date en bevat alle functies van de nieuwste stabiele tak van Linux.

Om de beschikbaarheid van bronnen te garanderen, spiegelt het bedrijf opslagplaatsen lokaal, controleert voortdurend de inhoud van de Linux-beveiligingsmailinglijst en werkt samen met verschillende bedrijven die databases in zakelijke virtuele omgevingen (CVE's) ondersteunen. Dit zorgt ervoor dat de Linux-kernel van Microsoft up-to-date is met de nieuwste updates en elimineert eventuele nieuwe bedreigingen.

Veranderingen van onderaf worden verplicht

Microsoft zorgt ervoor dat alle kernelwijzigingen stroomopwaarts worden doorgegeven, een belangrijk aspect van de Linux-filosofie. Het ondersteunen van downstream-patches brengt extra complexiteit met zich mee; Bovendien is deze praktijk niet gebruikelijk in de open source-gemeenschap.

Het doel van Microsoft als actieve Linux-gebruiker is om een ​​gedisciplineerd lid van de gemeenschap te zijn en veranderingen in de gemeenschap bij te dragen. Om de stabiliteit van vertakkingen die verband houden met ondersteuning op lange termijn te garanderen, kunnen sommige patches - bijvoorbeeld die met nieuwe functies - alleen worden opgenomen in nieuwe versies van de kernel, en niet worden geport naar de huidige LTS-versie in achterwaartse compatibiliteitsmodus.

Wanneer de WSL-kernbronnen beschikbaar zijn, zullen deze bestaan ​​uit links naar een reeks patches en een langlopend stabiel deel van de bronnen. Microsoft verwacht dat deze lijst in de loop van de tijd zal krimpen naarmate patches stroomopwaarts worden gedistribueerd en nieuwe lokale patches worden toegevoegd ter ondersteuning van nieuwe WSL-functies.

Aangenaam raamontwerp

Microsoft heeft ook de komende winterversie aangekondigd van Windows Terminal, een nieuwe app voor gebruikers die werken met opdrachtregelprogramma's en shells, zoals Command Prompt, PowerShell en WSL.

Penguin in the window: over het potentieel en de vooruitzichten van WSL2

Windows-terminal

Windows Terminal 1.0 biedt veel instellingen en configuratieopties die u meer controle geven over het uiterlijk van het terminalvenster, evenals over de shells/profielen die als nieuwe tabbladen zouden moeten openen.

De instellingen worden opgeslagen in een gestructureerd tekstbestand, waardoor u ze eenvoudig kunt configureren en het terminalvenster naar uw smaak kunt ontwerpen.

Microsoft verfijnt niet langer de bestaande Windows-console en creëert een geheel nieuwe console, waarbij hij besluit een nieuwe aanpak te kiezen. Windows Terminal wordt parallel geïnstalleerd en uitgevoerd met de bestaande Windows Console-applicatie die standaard wordt geleverd.

Hoe werkt dit

Wanneer een Windows 10-gebruiker Cmd/PowerShell/etc rechtstreeks start, wordt het proces geactiveerd dat is gekoppeld aan het reguliere Console-exemplaar. Met de configuratie-engine van de nieuwe terminal kunnen Windows-gebruikers meerdere profielen maken voor al hun gewenste shells/applicaties/tools, of het nu gaat om PowerShell, Command Prompt, Ubuntu of zelfs SSH-verbindingen met Azure- of IoT-apparaten.

Deze profielen kunnen hun eigen combinaties van ontwerp en lettergrootte, kleurthema's, niveaus van achtergrondvervaging of transparantie bieden. Bovendien kunnen gebruikers een nieuw monospace-lettertype kiezen om het terminalvenster er moderner en cooler uit te laten zien. Dit lettertype bevat ligaturen voor programmeurs; het wordt openbaar beschikbaar gemaakt en opgeslagen in een eigen repository.

De belangrijkste voordelen van de nieuwe Windows-opdrachtinterface zijn de vele tabbladen en prachtige tekst. Ondersteuning voor meerdere tabbladen werd beschouwd als het meest gevraagde verzoek voor terminalontwikkeling. Prachtige tekst wordt verkregen dankzij de rendering-engine op basis van DirectWrite/DirectX, uitgerust met GPU-versnelling.

De engine geeft tekstpictogrammen, glyphs en speciale tekens weer die voorkomen in lettertypen, waaronder Chinese, Japanse en Koreaanse ideogrammen (CJK), emoji, powerline-symbolen, pictogrammen en programmeerligaturen. Bovendien geeft deze engine tekst veel sneller weer dan de GDI die eerder in de console werd gebruikt.

Achterwaartse compatibiliteit blijft volledig in orde, hoewel u desgewenst Windows Terminal kunt proberen.

Chronologie: hoe het zal gebeuren

Microsoft zal Windows Terminal aanbieden via de Microsoft Store in Windows 10 en deze regelmatig bijwerken. Op deze manier zijn gebruikers altijd op de hoogte van de nieuwste versies en nieuwste verbeteringen – vrijwel zonder extra inspanning.

Microsoft is van plan komende winter een nieuwe terminal te lanceren. Zodra Microsoft Windows Terminal 1.0 uitrolt, zullen ontwikkelaars blijven werken aan veel van de functies die al achterstallig zijn.

Broncode voor Windows Terminal en Windows Console al gepost op GitHub.

Wat kan ons in de toekomst te wachten staan?

De mogelijkheid dat Microsoft zijn eigen Linux-kernel voor andere doeleinden zal gebruiken, bijvoorbeeld om zijn eigen Linux-distributie te ontwikkelen, lijkt tegenwoordig enigszins hypothetisch.

De uitkomst hangt waarschijnlijk af van de vraag of Microsoft erin slaagt een aanzienlijke vraag naar een dergelijk product te vinden, en welke commerciële kansen dergelijke ontwikkelingen mogelijk zouden kunnen bieden, zegt Charles King.

Hij denkt dat de focus van het bedrijf in de nabije toekomst zal liggen op het steeds compatibeler en complementairder maken van Windows en Linux.

Joshua Schwartz denkt dat het in dit geval nodig zal zijn om af te wegen wat de investering in dit werk zal zijn en wat het rendement ervan zal zijn. Als Microsoft vandaag de dag een heel jong bedrijf was, zou het waarschijnlijk alles op basis van Linux doen. Het overbrengen van alle ontwikkelingen die al beschikbaar zijn bij Microsoft naar de native Linux-architectuur lijkt tegenwoordig echter een duur en complex project te zijn dat waarschijnlijk niet veel zal opleveren. Linux-liefhebbers krijgen hun eigen Linux en de kernarchitectuur blijft intact.

Toen Apple in 2000 Mac OS opnieuw uitvond, was het besturingssysteem gebaseerd op BSD Unix, dat meer op Linux lijkt dan op DOS. Tegenwoordig wordt er een nieuwe versie van Microsoft Windows gemaakt op basis van Linux.

Misschien gaat er een nieuwe deur voor ons open?

De Linux-kernel van Microsoft zou de weg kunnen vrijmaken voor een grotere interoperabiliteit tussen Windows-services en het Linux-besturingssysteem. In wezen geven deze ontwikkelingen van Microsoft aan dat Microsoft het zelf al begrijpt: tegenwoordig zijn er bijna geen klanten meer die liever bestaan ​​in een wereld waarin alles Windows is.

Het is veel logischer om heterogene technologieën en systemen te gebruiken die het beste aansluiten bij de zakelijke vereisten en specifieke praktijksituaties.

De grotere strategische vraag is: welke nieuwe strategische kansen biedt deze stap voor het Microsoft-platform zelf?

Azure, het cloud-ecosysteem van Microsoft, biedt al geweldige ondersteuning voor Linux. Voorheen ondersteunde Windows Linux goed met behulp van virtuele machines.

De fundamentele veranderingen die vandaag plaatsvinden zijn te wijten aan het feit dat Linux-processen nu native op de Windows-kernel zullen draaien, wat betekent dat het werken met Linux vanuit Windows veel sneller zal zijn dan op virtuele machines. Het is waarschijnlijk dat Azure zichzelf hierdoor zal verrijken met een hele laag ingenieurs die Linux op industriële schaal gebruiken.

Bron: www.habr.com

Voeg een reactie