Penguin i vinduet: om potensialet og utsiktene til WSL2

Hei Habr!

Mens vi fortsatt er i full gang sommersalg, vil vi invitere deg til å diskutere et av de største temaene vi har jobbet med i det siste - samspillet mellom Windows og Linux, spesielt relatert til utviklingen av systemet WSL. WSL 2 er på vei, og her er en rask oversikt over hva som kommer i dette delsystemet, samt en prognose for fremtidig integrasjon mellom Windows og Linux.

Penguin i vinduet: om potensialet og utsiktene til WSL2

I mai i år kunngjorde Microsoft at WSL2, den nyeste versjonen av Windows-undersystemet på Linux, ville kjøre på en full Linux-kjerne bygget internt.
Dette er første gang Microsoft har inkludert Linux-kjernen som en komponent i Windows. Microsoft introduserer også en kommandolinje til Windows som vil utvide mulighetene til PowerShell og WSL.

Både Linux-kjernen for WSL2, laget av Microsoft, og den nye Windows-kommandolinjen er først og fremst av interesse for utviklere.

"Dette er det sterkeste trekket i kampen mot AWS," sier Joshua Schwartz, direktør for digitaliseringsprogrammer hos konsulentfirmaet AT Kearney.

Microsofts fremtid er ikke knyttet til PC-markedet, selv om de vil fortsette å holde fast på sin posisjon i dette segmentet. Det blir mye viktigere å få fotfeste i skymarkedet, hvor en av komponentene i fremtiden kan være stasjonære PC-er.

Hva gjør WSL2?

WSL2 er det nyeste Windows Subsystem-rammeverket for Linux. Den lar deg radikalt forbedre filsystemytelsen og gir full kompatibilitet med systemanrop.

En av hovedforespørslene fra WSL-fellesskapet var relatert til forbedring av funksjonaliteten. WSL2 kjører mange flere Linux-verktøy enn WSL, spesielt Docker og FUSE.
WSL2 håndterer filintensive operasjoner, spesielt git clone, npm install, apt update og apt upgrade. Den faktiske hastighetsøkningen avhenger av den spesifikke applikasjonen og hvordan den samhandler med filsystemet.

De første testene viste at WSL2 er omtrent 20 ganger raskere enn WSL1 når det gjelder å pakke ut tjære fra zip. Ved bruk av git clone, npm install og cmake i forskjellige prosjekter, viste systemet en to til fem ganger økning i ytelse.

Vil dette bidra til å få tilliten til utviklerne?

I hovedsak søker Microsoft å få anerkjennelse og tillit i utviklerfellesskapet ved å utvikle sin egen versjon av Linux-kjernen for å støtte WSL2-prosesser, sa Cody Swann, administrerende direktør i Gunner Technology.

"Bortsett fra å utvikle strengt for Windows, var det ekstremt upraktisk å lage alle andre applikasjoner - sky, mobil, webapplikasjoner - på en PC, og det er grunnen til at utvikleren på en eller annen måte måtte starte en Linux-distribusjon parallelt med Windows OS. Microsoft anerkjente dette og kom med en løsning, avslutter han.

Det er usannsynlig at introduksjon av en tilpasset Linux-kjerne vil ha en alvorlig innvirkning på systemet fra den gjennomsnittlige brukerens synspunkt. Dette åpner imidlertid muligheter for tettere interaksjon mellom Microsoft-tjenester og Linux-operativsystemet.
Dette trekket fra Microsofts side er virkelig veldig smart, siden det bidrar til å trenge dypere inn i utviklerfellesskapet, samt aktivt bruke produktene som noen andre utvikler – det vil si å koble til åpen kildekode, sier Swann.

Velkommen til nye Microsoft

Trenden mot å lage og vedlikeholde en Linux-kjerne "spesifikt for Windows" gjenspeiler den sterke åpen kildekode-retningen fremmet av administrerende direktør Satya Nadella. Microsoft er ikke lenger det samme som det var under Gates og Ballmer, da alt ble holdt bak et proprietært gjerde, og ingen tenkte på interoperabilitet.

"Satya har fullstendig forvandlet Microsoft til en mye mer moderne plattform, og den strategien har gitt gode resultater. Hei, trillion-dollar kapitalisering, sier Schwartz.

Ifølge Charles King, hovedanalytiker i Pund-IT, er Microsofts to hovedstyrker effektivitet og sikkerhet.

"Ved å aktivt bruke sin egen seriøse utvikling - ressurser og verktøy - kan selskapet garantere kundene at kjernen vil være fullstendig oppdatert og utstyrt med de nyeste oppdateringene og rettelsene for å sikre fullstendig sikkerhet," legger han til.

Utviklere har også fordel

Linux-binærfiler utfører mange funksjoner ved å bruke systemanrop, for eksempel tilgang til filer, be om minne og opprette prosesser. WSL1 er avhengig av et oversettelseslag for å tolke mange av disse systemanropene og la dem samhandle med Windows NT-kjernen.

Det vanskeligste er å implementere alle systemanropene. Siden dette ikke ble gjort i WSL1, kunne noen applikasjoner ikke fungere der. WSL2 introduserer mange nye applikasjoner som fungerer godt i dette miljøet.

Den nye arkitekturen gjør at Microsoft kan bringe de nyeste optimaliseringene til Linux-kjernen mye raskere enn med WSL1. Microsoft kan oppdatere WSL2-kjernen i stedet for å implementere alle begrensningene på nytt.

Helt åpen kildekodeverktøy

Microsofts utvikling av sin egen Linux-kjerne var kulminasjonen av mange års arbeid av Linux Systems Group, så vel som mange andre team i hele Microsoft, sa Jack Hammons, programleder i Linux Systems Group, Microsoft.

Kjernen som er gitt for WSL2 vil være fullstendig åpen kildekode, og Microsoft vil legge ut instruksjoner om hvordan man bygger en slik kjerne på GitHub. Selskapet vil engasjere seg med utviklere som er villige til å hjelpe prosjektet og drive nedenfra og opp endring.

Microsoft-utviklere opprettet WSL2 ved å bruke selskapets kontinuerlige integrasjon og kontinuerlige leveringssystemer. Denne programvaren vil bli servert gjennom Windows-oppdateringssystemet og vil være helt gjennomsiktig for brukeren. Kjernen vil forbli oppdatert og inkludere alle funksjonene til den siste stabile grenen av Linux.

For å sikre kildetilgjengelighet speiler selskapet repositories lokalt, overvåker kontinuerlig innholdet i Linux-sikkerhetspostlisten og samarbeider med flere selskaper som støtter databaser i virtuelle bedriftsmiljøer (CVE). Dette sikrer at Microsofts Linux-kjerne er oppdatert med de siste oppdateringene og eliminerer eventuelle nye trusler.

Endringer nedenfra og opp blir obligatoriske

Microsoft sørger for at alle kjerneendringer spres oppstrøms, et viktig aspekt ved Linux-filosofien. Støtte nedstrøms patcher kommer med ekstra kompleksitet; Dessuten er denne praksisen ikke vanlig i åpen kildekode-fellesskapet.

Microsofts mål som en aktiv Linux-bruker er å være et disiplinert medlem av fellesskapet og å bidra med endringer i fellesskapet. For å sikre stabiliteten til grener knyttet til langsiktig støtte, kan enkelte patcher - for eksempel de som inneholder nye funksjoner - bare inkluderes i nye versjoner av kjernen, og ikke porteres til gjeldende LTS-versjon i bakoverkompatibilitetsmodus.

Når WSL-kjernekildene er tilgjengelige, vil de bestå av lenker til et sett med patcher og en langvarig stabil del av kildene. Microsoft forventer at denne listen vil krympe over tid ettersom oppdateringer distribueres oppstrøms og nye lokale oppdateringer legges til for å støtte nye WSL-funksjoner.

Mer behagelig vindusdesign

Microsoft kunngjorde også den kommende vinterversjonen av Windows Terminal, en ny app for brukere som jobber med kommandolinjeverktøy og skjell, som Command Prompt, PowerShell og WSL.

Penguin i vinduet: om potensialet og utsiktene til WSL2

Windows Terminal

Windows Terminal 1.0 tilbyr mange innstillinger og konfigurasjonsalternativer som gir deg mer kontroll over utseendet til terminalvinduet, samt over skallene/profilene som skal åpnes som nye faner.

Innstillingene vil bli lagret i en strukturert tekstfil, noe som gjør dem enkle å konfigurere og designe terminalvinduet etter din smak.

Microsoft foredler ikke lenger den eksisterende Windows-konsollen og lager en ny fra bunnen av, og bestemmer seg for å ta en ny tilnærming. Windows Terminal installerer og kjører parallelt med den eksisterende Windows Console-applikasjonen som kommer ut av esken.

Hvordan fungerer det

Når en Windows 10-bruker direkte starter Cmd/PowerShell/etc, utløses prosessen knyttet til den vanlige konsollforekomsten. Den nye terminalens konfigurasjonsmotor lar Windows-brukere lage flere profiler for alle de ønskede skall/applikasjoner/verktøy, enten det er i PowerShell, Command Prompt, Ubuntu eller til og med SSH-tilkoblinger til Azure- eller IoT-enheter.

Disse profilene kan gi sine egne kombinasjoner av design og skriftstørrelse, fargetemaer, bakgrunnsuskarphet eller gjennomsiktighet. I tillegg vil brukerne kunne velge en ny monospace-font for å få terminalvinduet til å se mer moderne og kult ut. Denne fonten inneholder programmererligaturer; den vil bli gjort offentlig tilgjengelig og lagret i sitt eget depot.

De viktigste fordelene med det nye Windows-kommandogrensesnittet er mange faner og vakker tekst. Støtte for flere faner ble ansett som den mest etterspurte forespørselen om terminalutvikling. Vakker tekst oppnås takket være renderingsmotoren basert på DirectWrite/DirectX, utstyrt med GPU-akselerasjon.

Motoren viser tekstikoner, glyfer og spesialtegn som finnes i fonter, inkludert kinesiske, japanske og koreanske ideogrammer (CJK), emoji, strømlinjesymboler, ikoner og programmeringsligaturer. I tillegg gjengir denne motoren tekst mye raskere enn GDI som tidligere ble brukt i konsollen.

Bakoverkompatibiliteten forblir i full rekkefølge, selv om du kan prøve Windows Terminal hvis du ønsker det.

Kronologi: hvordan det vil skje

Microsoft vil levere Windows Terminal gjennom Microsoft Store i Windows 10 og oppdatere den regelmessig. På denne måten vil brukerne alltid være oppdatert med de nyeste versjonene og de siste forbedringene – praktisk talt uten ekstra innsats.

Microsoft planlegger å lansere en ny terminal kommende vinter. Når Microsoft ruller ut Windows Terminal 1.0, vil utviklerne fortsette å jobbe med mange av funksjonene som allerede er tilbakelogget.

Windows Terminal og Windows Console Kildekode allerede lagt ut på GitHub.

Hva kan vente oss i fremtiden?

Muligheten for at Microsoft vil bruke sin egen Linux-kjerne til andre formål, for eksempel for å utvikle sin egen Linux-distribusjon, virker noe hypotetisk i dag.

Utfallet avhenger sannsynligvis av om Microsoft klarer å finne betydelig etterspørsel etter et slikt produkt, og hvilke kommersielle muligheter en slik utvikling potensielt kan åpne opp, sier Charles King.

Han tror selskapets fokus i overskuelig fremtid vil være på å gjøre Windows og Linux stadig mer kompatible og komplementære til hverandre.

Joshua Schwartz mener det i dette tilfellet vil være nødvendig å veie hva investeringen i dette arbeidet blir og hva avkastningen på det vil være. Hvis Microsoft var et veldig ungt selskap i dag, ville det sannsynligvis gjort alt basert på Linux. Imidlertid ser det ut til å være et dyrt og komplekst prosjekt å overføre all utviklingen som allerede er tilgjengelig fra Microsoft til den opprinnelige Linux-arkitekturen i dag som neppe vil lønne seg. Linux-elskere vil få sin egen Linux og kjernearkitekturen vil forbli intakt.

Da Apple gjenoppfant Mac OS i 2000, var operativsystemet basert på BSD Unix, som ligner mer på Linux enn på DOS. I dag lages en ny versjon av Microsoft Windows basert på Linux.

Kanskje en ny dør åpner seg for oss?

Microsofts Linux-kjerne kan bane vei for større interoperabilitet mellom Windows-tjenester og Linux-operativsystemet. I hovedsak indikerer denne utviklingen fra Microsoft at Microsoft selv allerede forstår: i dag er det nesten ingen kunder igjen som foretrekker å eksistere i en verden der alt er Windows.

Det er mye mer fornuftig å bruke heterogene teknologier og systemer som best oppfyller forretningskrav og spesifikke praktiske situasjoner.

Det større strategiske spørsmålet er, hvilke nye strategiske muligheter åpner dette trekket for selve Microsoft-plattformen?

Azure, Microsofts skyøkosystem, gir allerede enorm støtte for Linux. Tidligere støttet Windows Linux godt ved bruk av virtuelle maskiner.

De grunnleggende endringene som skjer i dag skyldes det faktum at nå vil Linux-prosesser kjøre naturlig på Windows-kjernen, noe som betyr at arbeid med Linux fra Windows vil være mye raskere enn på virtuelle maskiner. Det er sannsynlig at som et resultat, vil Azure berike seg selv med et helt lag med ingeniører som bruker Linux i industriell skala.

Kilde: www.habr.com

Legg til en kommentar