Penguin i fönstret: om potentialen och utsikterna för WSL2

Hej Habr!

Medan vi fortfarande är i full gång sommarrea, vi skulle vilja bjuda in dig att diskutera ett av de största ämnena som vi har arbetat med på sistone - interaktionen mellan Windows och Linux, särskilt relaterat till utvecklingen av systemet WSL. WSL 2 är på väg, och här är en snabb översikt över vad som kommer i detta delsystem, samt en prognos för framtida integration mellan Windows och Linux.

Penguin i fönstret: om potentialen och utsikterna för WSL2

I maj i år tillkännagav Microsoft att WSL2, den senaste versionen av Windows-undersystemet på Linux, skulle köras på en fullständig Linux-kärna byggd internt.
Detta är första gången Microsoft har inkluderat Linux-kärnan som en komponent i Windows. Microsoft introducerar också en kommandorad till Windows som kommer att utöka funktionerna för PowerShell och WSL.

Både Linux-kärnan för WSL2, skapad av Microsoft, och den nya Windows-kommandoraden är av intresse främst för utvecklare.

"Detta är det starkaste draget i spelet mot AWS", säger Joshua Schwartz, chef för digitaliseringsprogram på konsultföretaget AT Kearney.

Microsofts framtid är inte kopplad till PC-marknaden, även om det kommer att fortsätta att hålla sin position starkt inom detta segment. Det kommer att bli mycket viktigare att få fotfäste på molnmarknaden, där en av komponenterna i framtiden kan vara stationära datorer.

Vad gör WSL2?

WSL2 är det senaste Windows Subsystem-ramverket för Linux. Det låter dig förbättra filsystemets prestanda radikalt och ger full kompatibilitet med systemanrop.

En av huvudförfrågningarna från WSL-communityt var relaterad till att förbättra funktionaliteten. WSL2 kör många fler Linux-verktyg än WSL, särskilt Docker och FUSE.
WSL2 hanterar filintensiva operationer, särskilt git clone, npm installation, apt update och apt upgrade. Den faktiska hastighetsökningen beror på den specifika applikationen och hur den interagerar med filsystemet.

De första testerna visade att WSL2 är cirka 20 gånger snabbare än WSL1 när det gäller att packa upp tjära från zip. När man använde git clone, npm install och cmake i olika projekt visade systemet en två till fem gånger högre prestanda.

Kommer detta att hjälpa utvecklarnas förtroende?

I huvudsak försöker Microsoft få erkännande och förtroende i utvecklargemenskapen genom att utveckla sin egen version av Linux-kärnan för att stödja WSL2-processer, säger Cody Swann, VD för Gunner Technology.

"Förutom att utveckla strikt för Windows, var det extremt obekvämt att skapa alla andra applikationer - moln, mobil, webbapplikationer - på en PC, varför utvecklaren på något sätt var tvungen att starta en Linux-distribution parallellt med Windows OS. Microsoft insåg detta och kom med en lösning”, avslutar han.

Det är osannolikt att införandet av en anpassad Linux-kärna kommer att ha en allvarlig inverkan på systemet från den genomsnittliga användarens synvinkel. Detta öppnar dock möjligheter för närmare interaktion mellan Microsofts tjänster och operativsystemet Linux.
Detta drag från Microsofts sida är verkligen väldigt smart, eftersom det hjälper till att penetrera djupare in i utvecklargemenskapen, samt att aktivt använda produkterna som någon annan utvecklar – det vill säga ansluta till öppen källkod, säger Swann.

Välkommen till New Microsoft

Trenden mot att skapa och underhålla en Linux-kärna "specifikt för Windows" speglar den starka riktningen med öppen källkod som främjas av VD Satya Nadella. Microsoft är inte längre detsamma som det var under Gates och Ballmer, när allt hölls bakom ett proprietärt staket, och ingen tänkte på interoperabilitet.

"Satya har helt förvandlat Microsoft till en mycket modernare plattform, och den strategin har gett stor utdelning. Hej, miljarder dollar, säger Schwartz.

Enligt Charles King, huvudanalytiker på Pund-IT, är Microsofts två främsta styrkor effektivitet och säkerhet.

"Genom att aktivt använda sin egen seriösa utveckling - resurser och verktyg - kan företaget garantera kunderna att kärnan kommer att vara helt uppdaterad och utrustad med de senaste patchar och fixar för att säkerställa fullständig säkerhet", tillägger han.

Utvecklare gynnas också

Linux-binärfiler utför många funktioner med hjälp av systemanrop, som att komma åt filer, begära minne och skapa processer. WSL1 förlitar sig på ett översättningslager för att tolka många av dessa systemanrop och låta dem interagera med Windows NT-kärnan.

Det svåraste är att implementera alla systemanrop. Eftersom detta inte gjordes i WSL1 kunde vissa applikationer inte fungera där. WSL2 introducerar många nya applikationer som fungerar bra i den här miljön.

Den nya arkitekturen gör att Microsoft kan ta med de senaste optimeringarna till Linuxkärnan mycket snabbare än med WSL1. Microsoft kan uppdatera WSL2-kärnan istället för att implementera alla restriktioner på nytt.

Verktyg med helt öppen källkod

Разработка собственного ядра Linux компанией Microsoft стала кульминацией многолетней работы, проделанной Linux Systems Group, а также многих других команд, действующих во всей корпорации Microsoft – свидетельствует Джек Хэммонс (Jack Hammons), менеджер программ в Linux Systems Group, Microsoft.

Kärnan som tillhandahålls för WSL2 kommer att vara helt öppen källkod, och Microsoft kommer att publicera instruktioner om hur man bygger en sådan kärna på GitHub. Företaget kommer att samarbeta med utvecklare som är villiga att hjälpa projektet och driva nedifrån och upp förändring.

Microsofts utvecklare skapade WSL2 med hjälp av företagets kontinuerliga integration och kontinuerliga leveranssystem. Denna programvara kommer att serveras genom Windows uppdateringssystem och kommer att vara helt transparent för användaren. Kärnan förblir uppdaterad och inkluderar alla funktioner i den senaste stabila grenen av Linux.

För att säkerställa källtillgänglighet speglar företaget repositories lokalt, övervakar ständigt innehållet i Linux-säkerhetsmaillistan och arbetar med flera företag som stöder databaser i virtuella företagsmiljöer (CVE). Detta säkerställer att Microsofts Linux-kärna är uppdaterad med de senaste uppdateringarna och eliminerar alla nya hot.

Nedifrån-och-upp-ändringar blir obligatoriska

Microsoft ser till att alla kärnförändringar sprids uppströms, en viktig aspekt av Linux-filosofin. Stöd för nedströms patchar kommer med ytterligare komplexitet; Dessutom är denna praxis inte vanlig i öppen källkod.

Microsofts mål som aktiv Linuxanvändare är att vara en disciplinerad medlem av communityn och att bidra med förändringar i communityn. För att säkerställa stabiliteten hos grenar associerade med långsiktigt stöd, kan vissa patchar - till exempel de som innehåller nya funktioner - endast inkluderas i nya versioner av kärnan, och inte portas till den aktuella LTS-versionen i bakåtkompatibilitetsläge.

När WSL-kärnkällorna är tillgängliga kommer de att bestå av länkar till en uppsättning patchar och en långvarig stabil del av källorna. Microsoft förväntar sig att den här listan kommer att krympa med tiden eftersom patchar distribueras uppströms och nya lokala patchar läggs till för att stödja nya WSL-funktioner.

Behagligare fönsterdesign

Microsoft tillkännagav också den kommande vinterversionen av Windows Terminal, en ny app för användare som arbetar med kommandoradsverktyg och skal, som Command Prompt, PowerShell och WSL.

Penguin i fönstret: om potentialen och utsikterna för WSL2

Windows Terminal

Windows Terminal 1.0 erbjuder många inställningar och konfigurationsalternativ som ger dig mer kontroll över utseendet på terminalfönstret, såväl som över de skal/profiler som ska öppnas som nya flikar.

Inställningarna kommer att sparas i en strukturerad textfil, vilket gör dem enkla att konfigurera och designa terminalfönstret efter din smak.

Microsoft förfinar inte längre den befintliga Windows-konsolen och skapar en ny från grunden och beslutar sig för att ta ett nytt tillvägagångssätt. Windows Terminal installeras och körs parallellt med den befintliga Windows Console-applikationen som kommer ur kartongen.

Hur fungerar den här

När en Windows 10-användare direkt startar Cmd/PowerShell/etc, utlöses processen kopplad till den vanliga konsolinstansen. Den nya terminalens konfigurationsmotor tillåter Windows-användare att skapa flera profiler för alla sina önskade skal/applikationer/verktyg, oavsett om det är i PowerShell, Command Prompt, Ubuntu eller till och med SSH-anslutningar till Azure- eller IoT-enheter.

Dessa profiler kan ge sina egna kombinationer av design och teckenstorlek, färgteman, nivåer för bakgrundsoskärpa eller transparens. Dessutom kommer användare att kunna välja ett nytt monospace-teckensnitt för att göra terminalfönstret mer modernt och coolt. Detta teckensnitt innehåller programmeringsligaturer; det kommer att göras allmänt tillgängligt och lagras i sitt eget arkiv.

De främsta fördelarna med det nya Windows-kommandogränssnittet är många flikar och vacker text. Stöd för flera flikar ansågs vara den mest efterfrågade begäran för terminalutveckling. Vacker text erhålls tack vare renderingsmotorn baserad på DirectWrite/DirectX, utrustad med GPU-acceleration.

Motorn visar textikoner, glyfer och specialtecken som finns i typsnitt, inklusive kinesiska, japanska och koreanska ideogram (CJK), emoji, powerline-symboler, ikoner och programmeringsligaturer. Dessutom renderar denna motor text mycket snabbare än den GDI som tidigare använts i konsolen.

Bakåtkompatibiliteten förblir i full ordning, även om du kan prova Windows Terminal om du vill.

Kronologi: hur det kommer att hända

Microsoft kommer att tillhandahålla Windows Terminal via Microsoft Store i Windows 10 och uppdatera den regelbundet. På så sätt kommer användarna alltid att vara uppdaterade med de senaste versionerna och de senaste förbättringarna – praktiskt taget utan extra ansträngning.

Microsoft planerar att lansera en ny terminal under kommande vinter. När Microsoft rullar ut Windows Terminal 1.0 kommer utvecklarna att fortsätta att arbeta med många av de funktioner som redan är eftersatta.

Windows Terminal och Windows Console källkod redan postat på GitHub.

Vad kan vänta oss i framtiden?

Möjligheten att Microsoft kommer att använda sin egen Linux-kärna för andra ändamål, till exempel för att utveckla sin egen Linux-distribution, verkar något hypotetisk idag.

Resultatet beror troligen på om Microsoft lyckas hitta en betydande efterfrågan på en sådan produkt, och vilka kommersiella möjligheter en sådan utveckling potentiellt kan öppna upp, säger Charles King.

Han tror att företagets fokus under överskådlig framtid kommer att ligga på att göra Windows och Linux allt mer kompatibla och komplementära till varandra.

Joshua Schwartz menar att det i det här fallet kommer att bli nödvändigt att väga vad investeringen i detta arbete blir och vad avkastningen på det blir. Om Microsoft vore ett väldigt ungt företag idag, skulle det förmodligen göra allt baserat på Linux. Att portera all utveckling som redan finns tillgänglig från Microsoft till den inbyggda Linux-arkitekturen idag verkar dock vara ett dyrt och komplext projekt som sannolikt inte kommer att löna sig bra. Linux-älskare kommer att få sin egen Linux och kärnarkitekturen kommer att förbli intakt.

När Apple återuppfann Mac OS år 2000 var operativsystemet baserat på BSD Unix, som är mer likt Linux än DOS. Idag skapas en ny version av Microsoft Windows baserad på Linux.

Kanske en ny dörr öppnar sig för oss?

Microsofts Linuxkärna kan bana väg för större interoperabilitet mellan Windows-tjänster och operativsystemet Linux. I huvudsak indikerar dessa utvecklingar från Microsoft att Microsoft själv redan förstår: idag finns det nästan inga kunder kvar som föredrar att existera i en värld där allt är Windows.

Det är mycket mer meningsfullt att använda heterogena teknologier och system som bäst möter affärskrav och specifika praktiska situationer.

Den större strategiska frågan är, vilka nya strategiska möjligheter öppnar detta drag för själva Microsoft-plattformen?

Azure, Microsofts moln-ekosystem, ger redan ett enormt stöd för Linux. Tidigare stödde Windows Linux väl med hjälp av virtuella maskiner.

De grundläggande förändringarna som sker idag beror på att Linux-processer nu kommer att köras inbyggt på Windows-kärnan, vilket innebär att arbetet med Linux från Windows kommer att gå mycket snabbare än på virtuella maskiner. Det är troligt att som ett resultat kommer Azure att berika sig själv med ett helt lager av ingenjörer som använder Linux i industriell skala.

Källa: will.com

Lägg en kommentar