Здравейте, Хабр!
Докато нашата лятна разпродажба продължава с пълна сила, WSL. WSL 2 вече е на път, и на вашето внимание се предлага кратък преглед на възможностите, които ни очакват в тази подсистема, както и прогноза за по-нататъшната интеграция на Windows и Linux.

През май тази година компанията Microsoft обяви, че WSL2, най-новата версия на подсистемата Windows за Linux, ще работи с изцяло Linux ядро, събрано в компанията.
По този начин Microsoft за първи път включва Linux ядро в Windows като един от компонентите. Също така Microsoft въвежда в Windows команден ред, който ще разшири възможностите на PowerShell и WSL.
Както Linux ядрото за WSL2, създадено от екипа на Microsoft, така и новият команден ред на Windows са интересни преди всичко за разработчиците.
„Това е най-силният ход в играта срещу AWS,“ отбелязва Джошуа Швартц, ръководител на програмите за цифровизация в консултантската компания A.T. Kearney.
Бъдещето на Microsoft не е свързано с пазара на ПК, въпреки че тя ще продължи да задържа позиции в този сегмент. Много по-важно ще бъде да се утвърди на облачния пазар, една от съставляващите част от който в бъдеще може да станат и настолни ПК.
Какво прави WSL2?
WSL2 е най-новата инфраструктура на подсистемата Windows за Linux. Тя позволява драстично да се увеличи производителността на файловата система и осигурява пълна съвместимост със системните повици.
Един от основните заявки на WSL обществото беше свързан с подобряване на функционалността. Под WSL2 работят много повече инструменти под Linux, отколкото под WSL, в частност Docker и FUSE.
WSL2 обработва интензивни файлови операции, по-специално git clone, npm install, apt update и apt upgrade. Фактическото увеличаване на скоростта зависи от конкретното приложение и от начина, по който то взаимодейства с файловата система.
Първите тестове показаха, че WSL2 е приблизително 20 пъти по-бърз от WSL1 при разархивиране на tar от zip. При използване на git clone, npm install и cmake в различни проекти системата показва растеж на производителността в диапазона от два до пет пъти.
Ще помогне ли това да спечелим доверието на разработчиците?
По същество, Microsoft се стреми да спечели признание и доверие в общността на разработчиците, като разрабатва собствена версия на ядрото на Linux за поддръжка на процесите на WSL2 – смята Коди Суонн, CEO на Gunner Technology.
«Освен разработки строго за Windows, създаването на всички останали приложения – облачни, мобилни, уеб приложения – на ПК е било изключително неудобно, заради което разработчиците по един или друг начин са трябвало да инсталират дистрибутив на Linux паралелно с ОС Windows. Microsoft го признае и предложи решение,» заключава той.
Малко вероятно е внедряването на собствено ядро на Linux да има значителен ефект върху работата на системата от гледна точка на обикновения потребител. Въпреки това, в такъв случай се откриват възможности за по-тясно взаимодействие между услугите на Microsoft и операционната система Linux.
Такъв ход от страна на Microsoft е наистина много умно, тъй като помага да се навлезе по-дълбоко в общността на разработчиците и активно да се използват продукти, които се развиват от други – тоест, да се включат в опенсорса – смята Суонн.
Добре дошли в Ню-Майкрософт
Тенденцията към създаване и поддръжка на ядро на Linux «специално за Windows» отразява решителната ориентация към развитие в посока опенсорс, която пропагандира CEO Сатья Наделла (Satya Nadella). Microsoft вече не е същата, каквато беше при Гейтс и Балмер, когато всичко беше скрито зад проприетарна ограда, а за интероперативността никой не се замисляше.
«Сатья напълно трансформира Microsoft в много по-съвременна платформа и тази стратегия вече се изплаща многократно. Здравей, капитализация от трилиони долари», — казва Швартц.
Според Чарлз Кинг, главен анализатор в Pund-IT, двата основни плюса на Microsoft са свързани с ефективността и сигурността.
«Активно използвайки собствените си значими разработки – ресурси и инструменти – компанията може да гарантира на клиентите, че ядото ще бъде напълно актуално и оборудвано с най-новите пачове и корекции, осигуряващи пълна сигурност», — добавя той.
Разработчиците също са в печалба
Двоичните файлове на Linux изпълняват много функции чрез системни повиквания, например, достъпват файлове, искат памет и създават процеси. WSL1 разчита на ниво транслация, което интерпретира много от тези системни повиквания и позволява тяхното взаимодействие с ядрото на Windows NT.
Най-трудното е да се реализират всички системни повиквания. Тъй като това не е било осъществено в WSL1, някои приложения не можеха да работят там. В WSL2 се появяват много нови приложения, които функционират нормално в тази среда.
Новата архитектура позволява на Microsoft да внедрява нови оптимизации в ядрото на Linux много по-бързо, отколкото при WSL1. Microsoft може да обновява ядрото на WSL2, а не да реализира отново всички ограничения.
Напълно опенсорс инструмент
Разработването на собствено ядро на Linux от Microsoft беше кулминация на многогодишната работа, извършена от Linux Systems Group, както и от много други екипи в корпорацията Microsoft – свидетелства Джек Хъмънс (Jack Hammons), мениджър програми в Linux Systems Group, Microsoft.
Ядро, предоставяно за WSL2, ще бъде напълно опенсорсно, а Microsoft ще публикува в GitHub инструкции за съставяне на такова ядро. Компанията ще работи с разработчици, желаещи да помогнат на проекта, и ще стимулира възходящите промени.
Разработчиците на Microsoft създадоха WSL2 с помощта на системи за непрекъсната интеграция и непрекъснато доставяне, работещи в компанията. Софтуерът ще бъде обслужван чрез системата за актуализации на Windows и ще бъде напълно прозрачен за потребителя. Ядрото ще остане актуално и ще включва всички възможности на най-новата стабилна версия на Linux.
За да се осигури достъпност на изходния код, компанията огледално отразява репозиториите локално и постоянно следи съдържанието на пощенския списък на Linux относно проблемите със сигурността, както и сътрудничи с няколко компании, които поддержават работата с бази данни в корпоративна виртуална среда (CVE). По този начин се гарантира, че в ядрото на Linux от Microsoft ще бъдат включени най-новите актуализации и ще се отстраняват всички възникнали заплахи.
Възходящите промени стават задължителни
Microsoft гарантира, че всички изменения на ядрото ще бъдат разпространявани в изходяща посока – това е важен аспект от философията на Linux. Поддръжката на входящи патчи е свързана с допълнителна сложност; освен това, такава практика не е общоприета в общността на свободното разработване.
Целта на Microsoft, активно използваща Linux, е да стане дисциплиниран член на тази общност и да предостави внасяните промени в разпореждане на общността. За да се постигне стабилност на клоновете, свързани с дългосрочна поддръжка, някои патчи – например, съдържащи нови възможности – могат да бъдат включвани само в нови версии на ядрото, а не да бъдат преносими в текущата версия LTS в режим на обратна съвместимост.
Когато изходните кодове на ядрото WSL станат достъпни, те ще се състоят от линкове към набор от патчи и от дълготрайна стабилна част от изходните кодове. Microsoft се надява, че с течение на времето този списък ще намалее, докато патчовете се разпространяват в изходяща посока, и нови локални патчи ще бъдат добавяни за поддръжка на нови функции на WSL.
По-приятен дизайн на прозорците
Microsoft също обяви предстоящото издание на зимната версия на Windows Terminal – ново приложение за потребители, работещи с инструменти за команден ред и обвивки, по-специално Command Prompt, PowerShell и WSL.

Windows Terminal
Windows Terminal 1.0 предлага множество настройки и конфигурационни възможности, предоставящи по-пълен контрол върху оформлението на прозореца на терминала, както и над обвивките/профилите, които трябва да се отварят като нови табове.
Настройките ще се запазват в структурирания текстов файл, което ще улесни конфигурирането и оформянето на прозореца на терминала по ваше усмотрение.
Microsoft спира разработката на съществуващата Windows конзола и създава нова от нулата, решавайки да приложи нов подход. Windows Terminal се инсталира и работи паралелно със съществуващото приложение Windows Console, доставяно "извън кутията".
Как работи
Когато потребител на Windows 10 стартира Cmd/Powershell/и т.н. директно, се активира процес, свързан с обикновен екземпляр на конзолата. Механизмът на конфигурация на новия терминал позволява на потребителите на Windows да създават множество профили за всички желани черупки/приложения/инструменти, независимо дали става въпрос за PowerShell, команден ред, Ubuntu, или дори при SSH връзки с Azure или устройства от Интернет на нещата.
В тези профили могат да бъдат предвидени собствени комбинации за оформление и размер на шрифта, цветови теми, нива на размазване или прозрачност на фона. Освен това, потребителите ще могат да избират нов моноширинен шрифт, за да изглежда терминалът по-модерен и стилен. Този шрифт включва програмни лигатури, ще бъде публикуван с отворен достъп и ще бъде запазен в собствено хранилище.
Основните предимства на новия команден интерфейс на Windows са множество раздели и красив текст. Поддръжката на множество раздели се смяташе за най-търсена функция по отношение на разработката на терминала. Красивият текст се постига благодарение на рендеринг механизма, основан на DirectWrite/DirectX, с GPU ускорение.
Движението показва текстови икони, глифове и специални символи, налични в шрифтовете, включително китайски, японски и корейски идеограми (CJK), емоджита, символи powerline, икони и програмни лигатури. Освен това, този механизъм показва текста много по-бързо отколкото GDI, използван по-рано в конзолата.
Обратната съвместимост остава изцяло запазена, въпреки че, при желание, можете да опитате и Windows Terminal.
Хронология: какво ни очаква
Microsoft ще предлага Windows Terminal чрез Microsoft Store в Windows 10 и редовно ще го обновява. Така потребителите винаги ще работят с най-новите версии и най-скорошните подобрения – практически без излишни усилия.
Microsoft планира да пусне новия терминал през следващата зима. След като Microsoft пусне Windows Terminal 1.0, разработчиците ще продължат да работят по множество възможности, вече отложени в бэклога.
Изходният код на Windows Terminal и Windows Console може да бъде намерен на GitHub.
Какво можем да очакваме в бъдеще?
Възможността Microsoft да използва собствено ядро Linux и за други цели, например, за разработка на собствен дистрибутив на Linux, днес изглежда донякъде хипотетична.
Вероятно, успехът зависи от това дали Microsoft ще успее да открие значителен интерес към такъв продукт и какви търговски възможности потенциално могат да се отворят с такива разработки – смята Чарлз Кинг.
Той смята, че в обозримото бъдеще компанията ще концентрира основните си усилия върху осигуряване на все по-тясна съвместимост между Windows и Linux и тяхното взаимно допълване.
Джошуа Швартц смята, че в този случай ще е необходимо да се прецени каква ще бъде инвестицията в тази работа и каква е възвръщаемостта от нея. А ако днес Microsoft беше съвсем младо дружество, вероятно щеше да извършва всичко на базата на Linux. Но преносът на всички вече налични технологии на Microsoft към нативната архитектура на Linux, днес изглежда като скъп и сложен проект, който едва ли ще се изплати добре. Любителите на Linux ще получат Linux, а основната архитектура ще остане непокътната.
Когато Apple през 2000 г. прероди Mac OS, тази операционна система беше изградена на базата на BSD Unix, който е по-подобен на Linux, отколкото на DOS. Днес новата версия на Microsoft Windows се създава именно на базата на Linux.
Може би пред нас се отваря нова врата?
Ядрото на Linux от Microsoft може да отвори път за по-тясно взаимодействие между услугите на Windows и операционната система Linux. Всъщност, тези разработки на Microsoft показват, че дори в самата компания Microsoft вече разбират: днес почти няма клиенти, които предпочитат да съществуват в свят, в който навсякъде е само Windows.
Много по-разумно е да се използват хетерогенни технологии и системи, които най-добре отговарят на бизнес изискванията и конкретните практически ситуации.
По-важният стратегически въпрос е какви нови стратегически възможности отваря този ход за самата платформа на Microsoft?
Azure – облачната екосистема на Microsoft – вече предоставя огромна поддръжка за Linux. По-рано Windows успешно поддържаше Linux чрез виртуални машини.
Принципните промени, които се случват днес, са свързани с факта, че сега процесите на Linux ще се изпълняват нативно на ядрото на Windows, а това означава, че работата с Linux от Windows ще бъде много по-бърза, отколкото на виртуални машини. Напълно възможно е в резултат на това Azure да се обогати с цяла прослойка инженери, използващи Linux в индустриален мащаб.
Източник: habr.com
