Tučniak v okne: o potenciáli a perspektívach WSL2

Čau Habr!

Kým sme stále v plnom prúde letný výpredaj, dovoľujeme si Vás pozvať na diskusiu o jednej z najväčších tém, ktorej sa v poslednej dobe venujeme - o interakcii Windows a Linux, ktorá súvisí najmä s vývojom systému WSL. WSL 2 je na ceste a tu je rýchly prehľad toho, čo príde v tomto subsystéme, ako aj predpoveď budúcej integrácie medzi Windows a Linuxom.

Tučniak v okne: o potenciáli a perspektívach WSL2

V máji tohto roku spoločnosť Microsoft oznámila, že WSL2, najnovšia verzia subsystému Windows v systéme Linux, bude fungovať na úplnom linuxovom jadre postavenom interne.
Je to prvýkrát, čo spoločnosť Microsoft zahrnula jadro Linuxu ako súčasť systému Windows. Microsoft tiež predstavuje príkazový riadok pre Windows, ktorý rozšíri možnosti PowerShell a WSL.

Linuxové jadro pre WSL2, vytvorené spoločnosťou Microsoft, ako aj nový príkazový riadok Windows sú zaujímavé predovšetkým pre vývojárov.

„Toto je najsilnejší ťah v hre proti AWS,“ hovorí Joshua Schwartz, riaditeľ programov digitalizácie v poradenskej spoločnosti AT Kearney.

Budúcnosť Microsoftu nie je spojená s PC trhom, aj keď si svoju pozíciu v tomto segmente bude aj naďalej pevne držať. Oveľa dôležitejšie bude presadiť sa na cloudovom trhu, ktorého jednou z komponentov môžu byť v budúcnosti aj stolné PC.

Čo robí WSL2?

WSL2 je najnovší rámec podsystému Windows pre Linux. Umožňuje vám radikálne zlepšiť výkon súborového systému a poskytuje plnú kompatibilitu so systémovými volaniami.

Jedna z hlavných požiadaviek komunity WSL sa týkala zlepšenia funkčnosti. WSL2 používa oveľa viac linuxových nástrojov ako WSL, najmä Docker a FUSE.
WSL2 zvláda operácie náročné na súbory, najmä klon git, inštaláciu npm, aktualizáciu apt a aktualizáciu apt. Skutočné zvýšenie rýchlosti závisí od konkrétnej aplikácie a jej interakcie so systémom súborov.

Prvé testy ukázali, že WSL2 je pri rozbaľovaní dechtu zo zipu asi 20-krát rýchlejší ako WSL1. Pri použití git clone, npm install a cmake v rôznych projektoch systém vykazoval dva až päťnásobné zvýšenie výkonu.

Pomôže to získať dôveru vývojárov?

Microsoft sa v podstate snaží získať uznanie a dôveru v komunite vývojárov vývojom vlastnej verzie linuxového jadra na podporu procesov WSL2, povedal Cody Swann, generálny riaditeľ spoločnosti Gunner Technology.

„Okrem vývoja výhradne pre Windows bolo vytváranie všetkých ostatných aplikácií – cloudových, mobilných, webových aplikácií – na PC mimoriadne nepohodlné, a preto musel vývojár nejako nabootovať linuxovú distribúciu paralelne s OS Windows. Microsoft si to uvedomil a prišiel s riešením,“ uzatvára.

Je nepravdepodobné, že zavedenie vlastného linuxového jadra bude mať vážny dopad na systém z pohľadu bežného používateľa. To však otvára možnosti pre užšiu interakciu medzi službami Microsoftu a operačným systémom Linux.
Tento krok zo strany Microsoftu je skutočne veľmi šikovný, pretože pomáha preniknúť hlbšie do vývojárskej komunity a tiež aktívne využívať produkty, ktoré vyvíja niekto iný – teda pripojiť sa k open source, hovorí Swann.

Vitajte v novom Microsofte

Trend vytvárania a udržiavania linuxového jadra „špecificky pre Windows“ odráža silné smerovanie open source, ktoré presadzuje generálny riaditeľ Satya Nadella. Microsoft už nie je rovnaký ako za Gatesa a Ballmera, keď bolo všetko držané za proprietárnym plotom a nikto nepremýšľal o interoperabilite.

„Satya úplne pretvoril Microsoft na oveľa modernejšiu platformu a táto stratégia sa bohato vyplatila. Dobrý deň, biliónová kapitalizácia,“ hovorí Schwartz.

Podľa Charlesa Kinga, hlavného analytika spoločnosti Pund-IT, sú dve hlavné silné stránky Microsoftu efektívnosť a bezpečnosť.

„Aktívnym využívaním vlastného seriózneho vývoja – zdrojov a nástrojov – môže spoločnosť zákazníkom zaručiť, že jadro bude úplne aktuálne a vybavené najnovšími záplatami a opravami na zaistenie úplnej bezpečnosti,“ dodáva.

Z toho profitujú aj vývojári

Linuxové binárne súbory vykonávajú mnoho funkcií pomocou systémových volaní, ako je napríklad prístup k súborom, vyžiadanie pamäte a vytváranie procesov. WSL1 sa spolieha na prekladovú vrstvu, ktorá interpretuje mnohé z týchto systémových volaní a umožňuje im interakciu s jadrom Windows NT.

Najťažšie je implementovať všetky systémové volania. Keďže to nebolo urobené vo WSL1, niektoré aplikácie tam nemohli fungovať. WSL2 predstavuje mnoho nových aplikácií, ktoré dobre fungujú v tomto prostredí.

Nová architektúra umožňuje Microsoftu priniesť najnovšie optimalizácie do linuxového jadra oveľa rýchlejšie ako pri WSL1. Microsoft môže aktualizovať jadro WSL2 namiesto toho, aby opätovne implementoval všetky obmedzenia.

Plne otvorený zdrojový nástroj

Vývoj vlastného linuxového jadra spoločnosti Microsoft bol vyvrcholením rokov práce skupiny Linux Systems Group, ako aj mnohých ďalších tímov v rámci spoločnosti Microsoft, povedal Jack Hammons, programový manažér v Linux Systems Group, Microsoft.

Jadro poskytnuté pre WSL2 bude úplne open source a Microsoft zverejní návod, ako takéto jadro postaviť na GitHub. Spoločnosť bude spolupracovať s vývojármi ochotnými pomôcť projektu a riadiť zmeny zdola nahor.

Vývojári spoločnosti Microsoft vytvorili WSL2 pomocou systémov nepretržitej integrácie a nepretržitého poskytovania spoločnosti. Tento softvér sa bude poskytovať prostredníctvom aktualizačného systému Windows a bude pre používateľa úplne transparentný. Jadro zostane aktuálne a bude obsahovať všetky funkcie najnovšej stabilnej vetvy Linuxu.

Na zabezpečenie dostupnosti zdroja spoločnosť zrkadlí archívy lokálne, neustále monitoruje obsah linuxového bezpečnostného mailing listu a spolupracuje s niekoľkými spoločnosťami, ktoré podporujú databázy v podnikových virtuálnych prostrediach (CVE). To zaisťuje, že linuxové jadro spoločnosti Microsoft je aktuálne s najnovšími aktualizáciami a eliminuje všetky vznikajúce hrozby.

Zmeny zdola nahor sa stávajú povinnými

Microsoft zaisťuje, že všetky zmeny jadra sa šíria proti prúdu – to je dôležitý aspekt filozofie Linuxu. Podpora následných opráv prináša ďalšiu zložitosť; Navyše, táto prax nie je bežná v komunite open source.

Cieľom Microsoftu ako aktívneho používateľa Linuxu je byť disciplinovaným členom komunity a prispievať k zmenám v komunite. Aby sa zabezpečila stabilita vetiev spojených s dlhodobou podporou, niektoré záplaty – napríklad tie, ktoré obsahujú nové funkcie – môžu byť zahrnuté iba v nových verziách jadra a nie sú portované na aktuálnu verziu LTS v režime spätnej kompatibility.

Keď budú dostupné základné zdroje WSL, budú pozostávať z odkazov na sadu opráv a dlhodobo stabilnej časti zdrojov. Microsoft očakáva, že tento zoznam sa bude časom scvrkávať, pretože záplaty sa distribuujú upstream a pridávajú sa nové lokálne záplaty na podporu nových funkcií WSL.

Príjemnejší dizajn okien

Microsoft tiež oznámil nadchádzajúcu zimnú verziu Windows Terminal, novej aplikácie pre používateľov, ktorí pracujú s nástrojmi príkazového riadka a shellmi, ako sú príkazový riadok, PowerShell a WSL.

Tučniak v okne: o potenciáli a perspektívach WSL2

Terminál systému Windows

Windows Terminal 1.0 ponúka mnoho nastavení a možností konfigurácie, ktoré vám poskytujú väčšiu kontrolu nad vzhľadom okna terminálu, ako aj nad shellmi/profilmi, ktoré by sa mali otvárať ako nové karty.

Nastavenia sa uložia do štruktúrovaného textového súboru, vďaka čomu sa dajú ľahko nakonfigurovať a navrhnúť okno terminálu podľa vášho vkusu.

Microsoft už nevylepšuje existujúcu konzolu Windows a vytvára novú od nuly, pričom sa rozhodol zvoliť nový prístup. Windows Terminal sa nainštaluje a spustí paralelne s existujúcou aplikáciou Windows Console, ktorá sa dodáva z krabice.

Ako to funguje

Keď používateľ systému Windows 10 priamo spustí Cmd/PowerShell/atď., spustí sa proces pripojený k bežnej inštancii konzoly. Konfiguračný mechanizmus nového terminálu umožňuje používateľom systému Windows vytvárať viaceré profily pre všetky ich požadované shelly/aplikácie/nástroje, či už v PowerShell, príkazovom riadku, Ubuntu alebo dokonca SSH pripojeniach k zariadeniam Azure alebo IoT.

Tieto profily môžu poskytovať vlastné kombinácie dizajnu a veľkosti písma, farebných tém, úrovne rozostrenia pozadia alebo priehľadnosti. Používatelia si navyše budú môcť vybrať nové jednopriestorové písmo, aby okno terminálu vyzeralo modernejšie a cool. Tento font obsahuje programátorské ligatúry; bude verejne dostupný a uložený v jeho vlastnom úložisku.

Hlavnými výhodami nového príkazového rozhrania systému Windows je množstvo kariet a krásny text. Podpora viacerých kariet bola považovaná za najžiadanejšiu požiadavku na vývoj terminálu. Krásny text sa získava vďaka vykresľovaciemu jadru založenému na DirectWrite/DirectX, vybavenému akceleráciou GPU.

Motor zobrazuje textové ikony, glyfy a špeciálne znaky nachádzajúce sa v fontoch, vrátane čínskych, japonských a kórejských ideogramov (CJK), emotikonov, symbolov powerline, ikon a programovacích ligatúr. Okrem toho tento engine vykresľuje text oveľa rýchlejšie ako GDI predtým používané v konzole.

Spätná kompatibilita zostáva v úplnom poriadku, aj keď ak chcete, môžete vyskúšať Windows Terminal.

Chronológia: ako sa to stane

Microsoft poskytne Windows Terminal prostredníctvom obchodu Microsoft Store vo Windowse 10 a bude ho pravidelne aktualizovať. Používatelia tak budú mať vždy k dispozícii najnovšie verzie a najnovšie vylepšenia – prakticky bez ďalšieho úsilia.

Microsoft plánuje spustiť nový terminál už túto zimu. Keď spoločnosť Microsoft uvedie na trh Windows Terminal 1.0, vývojári budú pokračovať v práci na mnohých funkciách, ktoré sú už nevybavené.

Zdrojový kód terminálu Windows a konzoly Windows už zverejnené na GitHub.

Čo nás môže čakať v budúcnosti?

Možnosť, že Microsoft použije vlastné linuxové jadro na iné účely, napríklad na vývoj vlastnej linuxovej distribúcie, sa dnes javí ako trochu hypotetická.

Výsledok pravdepodobne závisí od toho, či sa spoločnosti Microsoft podarí nájsť významný dopyt po takomto produkte a aké komerčné príležitosti by takýto vývoj mohol potenciálne otvoriť, hovorí Charles King.

Myslí si, že sa spoločnosť v dohľadnej budúcnosti zameria na to, aby Windows a Linux boli čoraz kompatibilnejšie a navzájom sa dopĺňali.

Joshua Schwartz verí, že v tomto prípade bude potrebné zvážiť, aká bude investícia do tohto diela a aká bude návratnosť. Ak by bol dnes Microsoft veľmi mladá spoločnosť, pravdepodobne by všetko robil na základe Linuxu. Zdá sa však, že prenos všetkého vývoja, ktorý je už dnes dostupný od Microsoftu, na natívnu architektúru Linuxu je nákladný a zložitý projekt, ktorý sa pravdepodobne dobre nevyplatí. Milovníci Linuxu dostanú svoj vlastný Linux a základná architektúra zostane nedotknutá.

Keď Apple v roku 2000 znovu objavil Mac OS, operačný systém bol založený na BSD Unix, ktorý je viac podobný Linuxu ako DOSu. Dnes sa vytvára nová verzia Microsoft Windows založená na Linuxe.

Možno sa nám otvárajú nové dvere?

Linuxové jadro od Microsoftu by mohlo pripraviť cestu pre väčšiu interoperabilitu medzi službami Windows a operačným systémom Linux. Tento vývoj od Microsoftu v podstate naznačuje, že aj samotný Microsoft už chápe: dnes už nie sú takmer žiadni zákazníci, ktorí uprednostňujú existenciu vo svete, kde je všetko Windows.

Oveľa väčší zmysel má používať heterogénne technológie a systémy, ktoré najlepšie spĺňajú obchodné požiadavky a špecifické praktické situácie.

Závažnejšou strategickou otázkou je, aké nové strategické príležitosti otvára tento krok pre samotnú platformu Microsoftu?

Azure, cloudový ekosystém spoločnosti Microsoft, už poskytuje obrovskú podporu pre Linux. Predtým Windows dobre podporoval Linux pomocou virtuálnych strojov.

Zásadné zmeny, ku ktorým dnes dochádza, sú spôsobené tým, že teraz budú linuxové procesy bežať natívne na jadre Windows, čo znamená, že práca s Linuxom z Windows bude oveľa rýchlejšia ako na virtuálnych strojoch. Je pravdepodobné, že v dôsledku toho sa Azure obohatí o celú vrstvu inžinierov využívajúcich Linux v priemyselnom meradle.

Zdroj: hab.com

Pridať komentár