Salut, Habr!
În timp ce continua , dorim să vă propunem să discutăm despre unul dintre cele mai ample subiecte pe care le dezvoltăm în ultima vreme — interacțiunea dintre Windows și Linux, legată în special de evoluția sistemului . WSL 2 se apropie, iar atenției dumneavoastră i se oferă un rezumat scurt al posibilităților care ne așteaptă în această subsistemă, precum și previziuni pentru integrarea viitoare dintre Windows și Linux.

În mai anul acesta, compania Microsoft a anunțat că WSL2, cea mai recentă versiune a subsistemului Windows pentru Linux, va funcționa pe un nucleu Linux complet, construit de companie.
Astfel, Microsoft include pentru prima dată în Windows un nucleu Linux ca unul dintre componentele sale. De asemenea, Microsoft introduce un nou terminal Windows, care va extinde capacitățile PowerShell și WSL.
Atât nucleul Linux pentru WSL2, creat cu ajutorul Microsoft, cât și noul terminal Windows sunt interesante, în primul rând, pentru dezvoltatori.
„Aceasta este cea mai puternică mișcare în partida împotriva AWS”, observă Joshua Schwartz, șeful programelor de digitalizare la compania de consultanță A.T. Kearney.
Viitorul Microsoft nu este legat de piața PC-urilor, deși va menține în continuare o poziție fermă în acest segment. Mult mai important va fi să se stabilizeze pe piața cloud, una dintre componentele căreia ar putea fi, în viitor, și desktop-urile.
Ce face WSL2
WSL2 este cea mai recentă infrastructură a subsistemului Windows pentru Linux. Aceasta permite o creștere radicală a performanței sistemului de fișiere și asigură compatibilitatea totală cu apelurile de sistem.
Una dintre principalele solicitări ale comunității WSL a fost legată de îmbunătățirea funcționalității. Pe WSL2 funcționează mult mai multe instrumente pentru Linux decât pe WSL, în special, Docker și FUSE.
WSL2 gestionează operațiuni intensive de fișiere, în special git clone, npm install, apt update și apt upgrade. Creșterea efectivă a vitezei depinde de aplicația specifică și de modul în care aceasta interacționează cu sistemul de fișiere.
Primele teste au arătat că WSL2 este de aproximativ 20 de ori mai rapid decât WSL1 în ceea ce privește dezarhivarea tar din zip. La utilizarea git clone, npm install și cmake în diferite proiecte, sistemul a arătat o creștere a performanței de două până la cinci ori.
Va ajuta acest lucru să câștige încrederea dezvoltatorilor?
În esență, Microsoft își dorește recunoaștere și încredere în comunitatea dezvoltatorilor, angajându-se în dezvoltarea propriei versiuni a nucleului Linux pentru a susține procesele WSL2 – consideră Cody Swann, CEO la Gunner Technology.
„Dacă excludem dezvoltările strict pentru Windows, crearea tuturor celorlalte aplicații – cloud, mobile, aplicații web – pe PC a fost extrem de incomodă, din cauza căreia dezvoltatorul a fost nevoit să încarce o distribuție Linux paralel cu sistemul de operare Windows. Microsoft a recunoscut acest lucru și a propus o soluție,” conchide el.
Este puțin probabil ca introducerea propriului nucleu Linux să aibă un impact serios asupra interacțiunii cu sistemul din perspectiva utilizatorului obișnuit. Totuși, în acest caz, se deschid oportunități pentru o colaborare mai strânsă între serviciile Microsoft și sistemul de operare Linux.
Această mișcare din partea Microsoft este într-adevăr foarte inteligentă, deoarece ajută la un angajament mai profund în comunitatea dezvoltatorilor, precum și la utilizarea activă a produselor dezvoltate de alții – adică, la conectarea la open-source – consideră Swann.
Bine ați venit la New Microsoft
Tendința de a crea și susține un nucleu Linux „special pentru Windows” reflectă o direcție hotărâtă în dezvoltarea către open-source, promovată de CEO-ul Satya Nadella. Microsoft nu mai este aceeași companie care era pe vremea lui Gates și Ballmer, când totul era păstrat în spatele unui gard proprietar, iar interoperabilitatea nu se punea în discuție.
„Satya a transformat complet Microsoft într-o platformă mult mai modernă, iar această strategie s-a dovedit extrem de profitabilă. Salut, capitalizare în triliarde de dolari,” spune Schwartz.
Conform lui Charles King, analist principal la Pund-IT, cele două principale calități ale Microsoft sunt eficiența și securitatea.
„Folosind activ propriile resurse și instrumente valoroase, compania poate garanta clienților că nucleul va fi complet actualizat și dotat cu cele mai recente patch-uri și corecturi, asigurând astfel o securitate totală,” adaugă el.
Dezvoltatorii beneficiază de asemenea
Fișierele binare Linux îndeplinesc multe funcții prin intermediul apelurilor de sistem, cum ar fi accesarea fișierelor, solicitarea memoriei și crearea proceselor. WSL1 se bazează pe un strat de traducere care interpretează multe dintre aceste apeluri de sistem și le permite să interacționeze cu nucleul Windows NT.
Cea mai dificilă parte este implementarea tuturor apelurilor de sistem. Deoarece în WSL1 acest lucru nu a fost realizat, unele aplicații nu puteau funcționa acolo. În WSL2 apar multe noi aplicații care funcționează corect în acest mediu.
Noua arhitectură permite Microsoft să introducă cele mai recente optimizări în nucleul Linux mult mai repede decât în cazul WSL1. Microsoft poate actualiza nucleul WSL2, fără a realimenta toate limitările de la început.
Instrument complet open-source
Dezvoltarea propriului nucleu Linux de către Microsoft a fost culminarea unei munci de ani de zile efectuate de Linux Systems Group, precum și de multe alte echipe din întreaga corporație Microsoft – afirmă Jack Hammons, manager de programe în Linux Systems Group, Microsoft.
Nucleul furnizat pentru WSL2 va fi complet open-source, iar Microsoft va publica pe GitHub instrucțiuni despre cum să construiești un astfel de nucleu. Compania va colabora cu dezvoltatori care doresc să ajute proiectul și va stimula modificările ascendente.
Dezvoltatorii Microsoft au creat WSL2 folosind sisteme de integrare continuă și livrare continuă care funcționează în cadrul companiei. Acest software va fi întreținut prin intermediul sistemului de actualizări Windows și va fi complet transparent pentru utilizator. Nucleul va rămâne actualizat și va include toate capacitățile celei mai recente ramuri stabile a Linux.
Pentru a asigura accesibilitatea codului sursă, compania clonează local repozitoriile și monitorizează constant conținutul listei de discuții Linux pentru probleme de securitate și colaborează cu mai multe companii care sprijină funcționarea bazelor de date în medii virtuale corporative (CVE). Astfel, se garantează că nucleul Linux de la Microsoft va include cele mai recente actualizări și va elimina toate amenințările emergente.
Modificările ascendente devin obligatorii
Microsoft garantează că toate modificările nucleului vor fi distribuite în direcția ascendentă - acesta este un aspect important al filozofiei Linux. Suportul pentru patch-uri descendente este asociat cu complexitate suplimentară; în plus, această practică nu este acceptată în mod obișnuit în comunitatea de dezvoltare liberă.
Obiectivul Microsoft, care folosește activ Linux, este să devină un membru disciplinat al acestei comunități și să facă modificările aduse disponibile pentru comunitate. Pentru a obține stabilitate în ramurile legate de suport pe termen lung, unele patch-uri - de exemplu, cele care conțin noi funcționalități - pot fi incluse doar în versiunile noi ale nucleului, și nu portate în versiunea curentă LTS în modul de compatibilitate inversă.
Când sursele nucleului WSL vor fi disponibile, acestea vor consta din linkuri către un set de patch-uri și dintr-o parte stabilă de lungă durată a surselor. Microsoft speră că, în timp, această listă se va diminua, pe măsură ce patch-urile sunt distribuite în direcția ascendentă, iar noi patch-uri locale vor fi adăugate pentru a sprijini noile capacități WSL.
Oferire mai plăcută a ferestrelor
Microsoft a anunțat, de asemenea, lansarea versiunii „iarna” a Windows Terminal - o nouă aplicație destinată utilizatorilor care lucrează cu instrumente pentru linia de comandă și shell-uri, în special Command Prompt, PowerShell și WSL.

Terminal Windows
Windows Terminal 1.0 oferă o multitudine de opțiuni de configurare și setare, oferind un control mai complet asupra aspectului ferestrei terminalului, precum și asupra shell-urilor/profielor care trebuie deschise ca tab-uri noi.
Setările vor fi păstrate într-un fișier text structurat, ceea ce le va face ușor de configurat și de personalizat aspectul ferestrei terminalului după bunul plac.
Microsoft oprește dezvoltarea consolei Windows existente și creează una nouă de la zero, alegând să aplice o abordare nouă. Windows Terminal se instalează și funcționează în paralel cu aplicația Windows Console existentă, livrată „din cutie”.
Cum funcționează
Când un utilizator Windows 10 lansează direct Cmd/PowerShell/etc., se activează un proces atașat la o instanță obișnuită a Consolului. Mecanismul de configurare a noului terminal permite utilizatorilor Windows să creeze mai multe profile pentru toate shell-urile/aplicațiile/uneltele dorite, fie că este vorba de PowerShell, linia de comandă, Ubuntu, sau chiar în conexiuni SSH cu Azure sau dispozitive IoT.
Aceste profile pot include combinații personalizate de stil și dimensiune a fontului, teme de culoare, niveluri de estompare sau transparență a fundalului. În plus, utilizatorii vor putea alege un nou font monospațiat, pentru ca fereastra terminalului să aibă un aspect mai modern și mai atractiv. Acest font va include ligaturi programabile, va fi pus la dispoziția publicului și va fi stocat într-un repository propriu.
Principalele avantaje ale noului interfață de comandă Windows sunt numeroasele tab-uri și textul atrăgător. Suportul pentru numeroase tab-uri a fost considerat cea mai solicitată caracteristică pentru dezvoltarea terminalului. Textul atrăgător este obținut prin motorul de randare bazat pe DirectWrite/DirectX, echipat cu accelerare GPU.
Motorul afișează pictograme textuale, glife și simboluri speciale incluse în fonturi, precum ideograme chinezești, japoneze și coreene (CJK), emoji, simboluri powerline, icoane și ligături programabile. De asemenea, acest motor afișează textul mult mai repede decât GDI, care a fost anterior utilizat în consolă.
Compatibilitatea înapoi rămâne perfectă, deși, dacă doriți, puteți încerca și Windows Terminal.
Cronologie: cum va fi
Microsoft va face terminalul Windows disponibil prin Microsoft Store în Windows 10 și îl va actualiza regulat. Astfel, utilizatorii vor lucra mereu cu cele mai recente versiuni și cele mai recente îmbunătățiri – practic fără efort suplimentar.
Microsoft plănuiește să lanseze noul terminal în următoarea iarnă. După ce Microsoft va lansa Windows Terminal 1.0, dezvoltatorii vor continua să lucreze la numeroase funcționalități, deja amânate în backlog.
Codul sursă pentru Windows Terminal și Windows Console pe GitHub.
Ce ne așteaptă în continuare?
Posibilitatea ca Microsoft să folosească propriul său nucleu Linux și pentru alte scopuri, de exemplu, pentru dezvoltarea propriului său sistem de operare Linux, pare în prezent oarecum ipotetică.
Probabil că rezultatul depinde de cât de bine poate Microsoft să identifice o cerere semnificativă pentru un astfel de produs și de ce oportunități comerciale ar putea deschide dezvoltările respective – consideră Charles King.
El crede că, în viitorul apropiat, compania se va concentra pe asigurarea unei compatibilități tot mai strânse între Windows și Linux și a complementarității acestora.
Joshua Schwartz consideră că, în acest caz, va trebui să se evalueze care vor fi investițiile în această muncă și care va fi rentabilitatea acesteia. Dacă Microsoft ar fi o companie complet nouă acum, probabil că ar face totul pe baza Linux. Totuși, portarea tuturor realizărilor deja existente la Microsoft pe arhitectura nativă Linux se prezintă astăzi ca un proiect costisitor și complex, care cu greu va aduce profit. Iubitorii Linux vor obține Linux, iar arhitectura principală va rămâne neatinsă.
Când Apple a reinventat Mac OS în 2000, acest sistem de operare a fost construit pe baza BSD Unix, care este mai similar cu Linux decât cu DOS. Astăzi, noua versiune a Microsoft Windows este creată de fapt pe baza Linux.
Poate că se deschide o nouă ușă?
Nucleul Linux de la Microsoft ar putea deschide calea pentru o interacțiune mai strânsă între serviciile Windows și sistemul de operare Linux. Practic, aceste realizări ale Microsoft demonstrează că și în cadrul companiei Microsoft se înțelege deja: aproape că nu mai există clienți care preferă să trăiască într-o lume complet dominată de Windows.
Este mult mai rațional să utilizăm tehnologii și sisteme heterogene, care răspund cel mai bine cerințelor de afaceri și situațiilor practice specifice.
O întrebare strategică mai importantă este ce noi oportunități strategice deschide o astfel de mișcare pentru platforma Microsoft însăși?
Azure – ecosistemul cloud de la Microsoft – oferă deja o susținere imensă pentru Linux. Anterior, Windows oferea o bună susținere pentru Linux prin intermediul mașinilor virtuale.
Schimbările fundamentale care au loc astăzi sunt legate de faptul că acum procesele Linux vor fi executate nativ pe nucleul Windows, ceea ce înseamnă că lucrul cu Linux din Windows va fi mult mai rapid decât pe mașinile virtuale. Este foarte posibil ca, în urma acestei dezvoltări, Azure să se îmbogățească cu un întreg strat de ingineri care utilizează Linux la scară industrială.
Sursa: habr.com
