Pingvin u izlogu: o potencijalu i izgledima WSL2

Hej Habr!

Dok smo još u punom jeku ljeto Rasprodaja, pozivamo vas da razgovarate o jednoj od najvećih tema na kojoj radimo u posljednje vrijeme - interakciji Windows-a i Linuxa, posebno vezanoj za razvoj sistema WSL. WSL 2 je na putu, a evo kratkog pregleda onoga što dolazi u ovom podsistemu, kao i prognoze za buduću integraciju između Windowsa i Linuxa.

Pingvin u izlogu: o potencijalu i izgledima WSL2

U maju ove godine, Microsoft je najavio da će WSL2, najnovija verzija Windows podsistema na Linuxu, raditi na potpunom Linux kernelu izgrađenom u kući.
Ovo je prvi put da je Microsoft uključio Linux kernel kao komponentu u Windows. Microsoft takođe uvodi komandnu liniju u Windows koja će proširiti mogućnosti PowerShell-a i WSL-a.

I Linux kernel za WSL2, koji je kreirao Microsoft, i nova Windows komandna linija su od interesa prvenstveno za programere.

„Ovo je najjači potez u igri protiv AWS-a“, kaže Joshua Schwartz, direktor programa digitalizacije u konsultantskoj kući AT Kearney.

Budućnost Microsofta nije povezana sa PC tržištem, iako će nastaviti da čvrsto drži svoju poziciju u ovom segmentu. Biće mnogo važnije učvrstiti se na tržištu oblaka, čija bi jedna od komponenti u budućnosti mogla biti desktop računara.

Šta radi WSL2?

WSL2 je najnoviji okvir Windows podsistema za Linux. Omogućava vam da radikalno poboljšate performanse sistema datoteka i pruža punu kompatibilnost sa sistemskim pozivima.

Jedan od glavnih zahtjeva WSL zajednice odnosio se na poboljšanje funkcionalnosti. WSL2 pokreće mnogo više Linux alata od WSL-a, posebno Docker i FUSE.
WSL2 upravlja operacijama koje zahtijevaju velike količine datoteka, posebno git clone, npm install, apt update i apt upgrade. Stvarno povećanje brzine ovisi o specifičnoj aplikaciji i načinu na koji stupa u interakciju sa datotečnim sistemom.

Prvi testovi su pokazali da je WSL2 oko 20 puta brži od WSL1 u raspakiranju tar-a iz zip-a. Kada se koristi git clone, npm install i cmake u raznim projektima, sistem je pokazao dva do pet puta povećanje performansi.

Hoće li to pomoći da se stekne povjerenje programera?

U suštini, Microsoft nastoji steći priznanje i povjerenje u zajednici programera razvojem vlastite verzije Linux kernela za podršku WSL2 procesima, rekao je Cody Swann, izvršni direktor Gunner Technology.

“Osim razvoja isključivo za Windows, kreiranje svih drugih aplikacija - cloud, mobilnih, web aplikacija - na PC-u je bilo izuzetno nezgodno, zbog čega je programer nekako morao pokrenuti Linux distribuciju paralelno sa Windows OS-om. Microsoft je to prepoznao i došao do rješenja”, zaključuje on.

Malo je vjerovatno da će uvođenje prilagođenog Linux kernela imati ozbiljan utjecaj na sistem sa stanovišta prosječnog korisnika. Međutim, ovo otvara mogućnosti za bližu interakciju između Microsoftovih usluga i Linux operativnog sistema.
Ovaj potez Microsofta je zaista vrlo pametan, jer pomaže da se prodre dublje u zajednicu programera, kao i da se aktivno koriste proizvodi koje neko drugi razvija – odnosno da se poveže na otvoreni kod, kaže Swann.

Dobrodošli u novi Microsoft

Trend ka stvaranju i održavanju Linux kernela "posebno za Windows" odražava snažan smjer otvorenog koda koji promovira izvršni direktor Satya Nadella. Microsoft više nije isti kao što je bio pod Gejtsom i Balmerom, kada je sve držano iza vlasničke ograde, a niko nije razmišljao o interoperabilnosti.

“Satya je u potpunosti transformirao Microsoft u mnogo moderniju platformu i ta strategija se odlično isplatila. Zdravo, kapitalizacija od triliona dolara”, kaže Schwartz.

Prema Charlesu Kingu, glavnom analitičaru Pund-IT-a, dvije glavne prednosti Microsofta su efikasnost i sigurnost.

“Aktivnim korištenjem vlastitih ozbiljnih razvoja – resursa i alata – kompanija može garantirati kupcima da će kernel biti potpuno ažuriran i opremljen najnovijim zakrpama i popravkama kako bi se osigurala potpuna sigurnost,” dodaje on.

Programeri također imaju koristi

Linux binarne datoteke izvode mnoge funkcije koristeći sistemske pozive, kao što su pristup datotekama, traženje memorije i kreiranje procesa. WSL1 se oslanja na sloj za prevođenje kako bi interpretirao mnoge od ovih sistemskih poziva i omogućio im interakciju sa Windows NT kernelom.

Najteže je implementirati sve sistemske pozive. Pošto to nije urađeno u WSL1, neke aplikacije tamo nisu mogle raditi. WSL2 uvodi mnoge nove aplikacije koje dobro rade u ovom okruženju.

Nova arhitektura omogućava Microsoftu da donese najnovije optimizacije u Linux kernel mnogo brže nego sa WSL1. Microsoft može ažurirati WSL2 jezgro umjesto da ponovo implementira sva ograničenja.

Alat potpuno otvorenog koda

Microsoftov razvoj vlastitog Linux kernela bio je kulminacija višegodišnjeg rada Linux Systems grupe, kao i mnogih drugih timova širom Microsofta, rekao je Jack Hammons, programski menadžer u Linux Systems Group, Microsoft.

Kernel obezbeđen za WSL2 će biti potpuno otvorenog koda, a Microsoft će objaviti uputstva o tome kako da se napravi takav kernel na GitHubu. Kompanija će se sarađivati ​​sa programerima koji su voljni da pomognu projektu i pokrenu promene odozdo prema gore.

Microsoft programeri su kreirali WSL2 koristeći kontinuiranu integraciju i sisteme kontinuirane isporuke kompanije. Ovaj softver će biti serviran putem Windows ažuriranja i biće potpuno transparentan za korisnika. Kernel će ostati ažuriran i uključivati ​​sve karakteristike najnovije stabilne grane Linuxa.

Kako bi osigurala dostupnost izvora, kompanija lokalno preslikava spremišta, stalno prati sadržaj Linux sigurnosne mailing liste i radi sa nekoliko kompanija koje podržavaju baze podataka u virtuelnim okruženjima preduzeća (CVE). Ovo osigurava da je Microsoftov Linux kernel ažuriran s najnovijim ažuriranjima i eliminiše sve nove prijetnje.

Promjene odozdo prema gore postaju obavezne

Microsoft osigurava da se sve promjene kernela propagiraju uzvodno, što je važan aspekt filozofije Linuxa. Podržavanje nizvodnih zakrpa dolazi sa dodatnom složenošću; Štaviše, ova praksa nije uobičajena u zajednici otvorenog koda.

Microsoftov cilj kao aktivnog korisnika Linuxa je da bude disciplinovan član zajednice i da doprinese promjenama u zajednici. Kako bi se osigurala stabilnost grana povezanih s dugotrajnom podrškom, neke zakrpe - na primjer one koje sadrže nove funkcije - mogu biti uključene samo u nove verzije kernela, a ne portovane na trenutnu LTS verziju u načinu kompatibilnosti s prethodnim verzijama.

Kada su izvori jezgre WSL-a dostupni, oni će se sastojati od veza do skupa zakrpa i dugotrajnog stabilnog dijela izvora. Microsoft očekuje da će se ova lista vremenom smanjiti kako se zakrpe distribuiraju uzvodno i dodaju nove lokalne zakrpe koje podržavaju nove WSL funkcije.

Prijatniji dizajn prozora

Microsoft je također najavio nadolazeću zimsku verziju Windows Terminala, nove aplikacije za korisnike koji rade sa alatima i ljuskama komandne linije, kao što su Command Prompt, PowerShell i WSL.

Pingvin u izlogu: o potencijalu i izgledima WSL2

Windows terminal

Windows Terminal 1.0 nudi mnoge postavke i opcije konfiguracije koje vam daju veću kontrolu nad izgledom prozora terminala, kao i nad školjkama/profilima koji bi se trebali otvoriti kao nove kartice.

Postavke će biti sačuvane u strukturiranoj tekstualnoj datoteci, što ih čini lakim za konfigurisanje i dizajn prozora terminala po vašem ukusu.

Microsoft više ne usavršava postojeću Windows konzolu i stvara novu od nule, odlučujući da zauzme novi pristup. Windows Terminal se instalira i radi paralelno sa postojećom aplikacijom Windows konzole koja dolazi iz kutije.

Kako ovo radi

Kada korisnik Windows 10 direktno pokrene Cmd/PowerShell/itd, pokreće se proces vezan za regularnu instancu konzole. Konfiguracijski mehanizam novog terminala omogućava korisnicima Windowsa da kreiraju višestruke profile za sve svoje željene ljuske/aplikacije/alate, bilo u PowerShell-u, Command Prompt-u, Ubuntu-u ili čak SSH konekcijama na Azure ili IoT uređaje.

Ovi profili mogu pružiti vlastite kombinacije dizajna i veličine fonta, tema boja, nivoa zamućenja pozadine ili transparentnosti. Osim toga, korisnici će moći odabrati novi monospace font kako bi prozor terminala izgledao modernije i cool. Ovaj font sadrži programske ligature; bit će javno dostupan i pohranjen u vlastitom spremištu.

Glavne prednosti novog Windows komandnog interfejsa su mnoge kartice i prelep tekst. Podrška za više kartica smatra se najtraženijim zahtjevom za razvoj terminala. Prekrasan tekst se dobija zahvaljujući mašini za renderovanje baziranom na DirectWrite/DirectX, opremljenom GPU ubrzanjem.

Motor prikazuje ikone teksta, glifove i posebne znakove koji se nalaze u fontovima, uključujući kineske, japanske i korejske ideograme (CJK), emotikone, simbole električne mreže, ikone i programske ligature. Osim toga, ovaj motor prikazuje tekst mnogo brže od GDI-a koji se ranije koristio u konzoli.

Kompatibilnost unatrag ostaje u punom redu, iako možete isprobati Windows Terminal ako želite.

Hronologija: kako će se to dogoditi

Microsoft će obezbijediti Windows Terminal putem Microsoft Store-a u Windows 10 i redovno ga ažurirati. Na ovaj način, korisnici će uvijek biti u toku s najnovijim verzijama i najnovijim poboljšanjima – gotovo bez dodatnog napora.

Microsoft planira lansirati novi terminal ove zime. Kada Microsoft uvede Windows Terminal 1.0, programeri će nastaviti da rade na mnogim funkcijama koje su već zaostale.

Izvorni kod Windows terminala i Windows konzole već objavljeno na GitHubu.

Šta nas može čekati u budućnosti?

Mogućnost da će Microsoft koristiti svoje vlastito jezgro Linuxa u druge svrhe, na primjer, za razvoj vlastite Linux distribucije, danas izgleda pomalo hipotetično.

Ishod vjerovatno zavisi od toga hoće li Microsoft uspjeti pronaći značajnu potražnju za takvim proizvodom i kakve komercijalne mogućnosti bi takav razvoj potencijalno mogao otvoriti, kaže Charles King.

On misli da će fokus kompanije u doglednoj budućnosti biti na tome da Windows i Linux budu sve kompatibilniji i međusobno komplementarni.

Joshua Schwartz smatra da će u ovom slučaju biti potrebno odmjeriti kolika će biti investicija u ovaj posao i koliki će biti prinos. Da je Microsoft danas vrlo mlada kompanija, vjerovatno bi sve radila na bazi Linuxa. Međutim, čini se da je prenošenje svih već dostupnih razvojnih rješenja iz Microsofta na izvornu Linux arhitekturu skup i složen projekat koji se vjerojatno neće dobro isplatiti. Ljubitelji Linuxa će dobiti svoj Linux, a arhitektura jezgra će ostati netaknuta.

Kada je Apple ponovo izumio Mac OS 2000. godine, operativni sistem je bio baziran na BSD Unixu, koji je više sličan Linuxu nego DOS-u. Danas se kreira nova verzija Microsoft Windowsa bazirana na Linuxu.

Možda nam se otvaraju nova vrata?

Microsoftov Linux kernel mogao bi utrti put za veću interoperabilnost između Windows servisa i Linux operativnog sistema. U suštini, ovi razvoji Microsofta ukazuju na to da sam Microsoft već razumije: danas gotovo da nema kupaca koji više vole da postoje u svijetu u kojem je sve Windows.

Mnogo je smislenije koristiti heterogene tehnologije i sisteme koji najbolje odgovaraju poslovnim zahtjevima i specifičnim praktičnim situacijama.

Veće strateško pitanje je, koje nove strateške mogućnosti ovaj potez otvara za samu Microsoft platformu?

Azure, Microsoftov cloud ekosistem, već pruža ogromnu podršku za Linux. Ranije je Windows dobro podržavao Linux koristeći virtuelne mašine.

Fundamentalne promjene koje se danas dešavaju su zbog činjenice da će sada Linux procesi biti izvorno pokrenuti na Windows kernelu, što znači da će rad sa Linuxom iz Windowsa biti mnogo brži nego na virtuelnim mašinama. Vjerovatno je da će se kao rezultat toga Azure obogatiti cijelim slojem inženjera koji koriste Linux na industrijskoj razini.

izvor: www.habr.com

Dodajte komentar