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

През май тази година Microsoft обяви, че WSL2, най-новата версия на подсистемата Windows за Linux, ще работи на пълноценен Linux ядро, компилирано от компанията.
Така Microsoft за първи път включва в Windows Linux ядро като един от компонентите. Освен това 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 наистина е много разумен, тъй като спомага за по-дълбоко навлизане в общността на разработчиците и активно ползване на продукти, които развиват други – тоест, свързване с отворения код – смята Суон.
Добре дошли в Ню-Мicrosoft
Тенденцията да се създаде и поддържа ядро на 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 – твърди Джак Хемънс, мениджър на програмите в 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 получат свою версию, в то время как основная архитектура останется нетронутой.
Когда Apple в 2000 году заново изобрела Mac OS, эта операционная система была основана на BSD Unix, которая больше похожа на Linux, чем на DOS. Сегодня новая версия Microsoft Windows создается именно на базе Linux.
Возможно, перед нами открывается новая возможность?
Ядро Linux от Microsoft может открыть путь для более тесного взаимодействия между службами Windows и операционной системой Linux. Эти наработки Microsoft показывают, что в самой компании понимают: почти не осталось клиентов, предпочитающих жить в мире, где сплошная Windows.
Гораздо разумнее использовать гетерогенные технологии и системы, которые лучше всего соответствуют бизнес-требованиям и конкретным практическим ситуациям.
Более важный стратегический вопрос заключается в том, какие новые стратегические возможности открывает это решение для самой платформы Microsoft?
Azure – облачная экосистема от Microsoft – уже предоставляет значительную поддержку Linux. Ранее Windows хорошо поддерживала Linux через виртуальные машины.
Принципиальные изменения, происходящие сегодня, связаны с тем, что процессы Linux теперь будут нативно запускаться на ядре Windows, что означает, что работа с Linux из Windows будет значительно быстрее, чем в виртуальных машинах. Вероятно, в результате Azure обогатится целой прослойкой инженеров, использующих Linux в промышленных масштабах.
Източник: habr.com
