Хабрахабр

[Перевод] Пингвин в окне: о потенциале и перспективах WSL2

Привет, Хабр!

WSL 2 уже на подходе, и вашему вниманию предлагается краткий обзор возможностей, которые ждут нас в этой подсистеме, а также прогноз дальнейшей интеграции Windows и Linux. Пока у нас вовсю продолжается летняя распродажа, мы хотели бы предложить вам обсудить одну из самых масштабных тем, которую прорабатываем в последнее время — взаимодействие Windows и Linux, связанное, в частности, с развитием системы WSL.

Также Microsoft вводит в Windows командную строку, которая расширит возможности PowerShell и WSL. В мае этого года компания Microsoft объявила, что WSL2, новейшая версия подсистемы Windows на Linux, будет работать на полноценном ядре Linux, собранном в компании.
Таким образом, Microsoft впервые включает в Windows ядро Linux в качестве одного из компонентов.

Как ядро Linux для WSL2, созданное силами Microsoft, так и новая командная строка Windows интересны, прежде всего, разработчикам.

T. «Это наиболее сильный ход в партии против AWS,» отмечает Джошуа Швартц, руководитель программ цифровизации в консалтинговой компании A. Kearney.

Гораздо важнее будет закрепиться на облачном рынке, одной из составляющих которого в будущем смогут стать и настольные ПК. Будущее Microsoft связано не с рынком ПК, хотя, она и в дальнейшем будет прочно удерживать позиции в этом сегменте.

Что делает WSL2

Она позволяет радикально повысить производительность файловой системы и обеспечивает полную совместимость с системными вызовами. WSL2 – это новейшая инфраструктура подсистемы Windows для Linux.

На WSL2 работает гораздо больше инструментов под Linux, чем на WSL, в частности, Docker и FUSE.
WSL2 обрабатывает интенсивные файловые операции, в частности, git clone, npm install, apt update и apt upgrade. Один из основных запросов WSL-сообщества был связан с доработкой функционала. Фактическое увеличение скорости зависит от конкретного приложения и от того, как оно взаимодействует с файловой системой.

При использовании git clone, npm install и cmake в различных проектах система показывала рост производительности в два-пять раз. Первые тесты показали, что WSL2 примерно в 20 раз быстрее WSL1 справляется с распаковкой tar из zip.

Поможет ли это завоевать доверие разработчиков?

В сущности, Microsoft стремится обрести признание и доверие в сообществе разработчиков, берясь за разработку собственной версии ядра Linux для поддержки процессов WSL2 – считает Коди Суонн, CEO в Gunner Technology.

Microsoft это признала и предложила решение,» заключает он. «Если не считать разработки строго под Windows, создание всех прочих приложений – облачных, мобильных, веб-приложений – на ПК было крайне неудобным, из-за чего разработчику так или иначе приходилось загружать дистрибутив Linux параллельно с ОС Windows.

Однако, в таком случае открываются возможности для более тесного взаимодействия между службами Microsoft и операционной системой Linux.
Такой ход со стороны Microsoft действительно очень грамотный, поскольку помогает глубже проникнуть в сообщество разработчиков, а также активно пользоваться продуктами, которые развивает кто-то еще – то есть, подключиться к опенсорсу – считает Суонн. Маловероятно, что внедрение собственного ядра Linux серьезно скажется на работе с системой с точки зрения обычного пользователя.

Добро пожаловать в Нью-Майкрософт

Microsoft уже не тот, что при Гейтсе и Балмере, когда все хранилось за проприетарным частоколом, а об интероперабельности никто и не задумывался. Тренд в сторону создания и поддержки ядра Linux «специально под Windows» отражает решительную направленность развития в сторону опен-сорса, которую продвигает CEO Сатья Наделла (Satya Nadella).

Привет, капитализация в триллионы долларов», — говорит Швартц. «Сатья полностью преобразил Microsoft в гораздо более современную платформу, и эта стратегия окупилась сторицей.

По мнению Чарльза Кинга, главного аналитика в Pund-IT, два основных достоинства Microsoft связаны с эффективностью и безопасностью.

«Активно используя собственные серьезные наработки – ресурсы и инструменты – компания может гарантировать клиентам, что ядро будет полностью актуальным и оснащенным новейшими патчами и исправлениями, обеспечивающими полную безопасность», — добавляет он.

Разработчики – также в выигрыше

WSL1 опирается на уровень трансляции, интерпретирующий многие из этих системных вызовов и позволяющий им взаимодействовать с ядром Windows NT. Двоичные файлы Linux выполняют многие функции при помощи системных вызовов, например, обращаются к файлам, запрашивают память и создают процессы.

Поскольку в WSL1 это сделано не было, некоторые приложения там работать не могли. Самое сложное – реализовать все системные вызовы. В WSL2 появляется множество новых приложений, нормально работающих в данном окружении.

Microsoft может обновлять ядро WSL2, а не реализовывать все ограничения заново. Новая архитектура позволяет Microsoft вносить новейшие оптимизации в ядро Linux гораздо быстрее, чем в случае WSL1.

Полностью опенсорсный инструмент

Разработка собственного ядра Linux компанией Microsoft стала кульминацией многолетней работы, проделанной Linux Systems Group, а также многих других команд, действующих во всей корпорации Microsoft – свидетельствует Джек Хэммонс (Jack Hammons), менеджер программ в Linux Systems Group, Microsoft.

Компания будет взаимодействовать с разработчиками, желающими помочь проекту, и стимулировать восходящие изменения.
Разработчики Microsoft создавали WSL2 при помощи систем непрерывной интеграции и непрерывной доставки, действующих в компании. Ядро, предоставляемое для WSL2, будет полностью опенсорсным, и Microsoft выложит на GitHub инструкции о том, как собрать такое ядро. Ядро будет оставаться актуальным и включать все возможности новейшей стабильной ветки Linux. Этот софт будет обслуживаться через систему обновлений Windows и будет полностью прозрачен для пользователя.

Таким образом гарантируется, что в ядре Linux от Microsoft будут учитываться новейшие обновления и устраняться все возникающие угрозы. Чтобы обеспечить доступность исходников, компания зеркалит репозитории локально, а также постоянно мониторит содержимое почтовой рассылки Linux по проблемам безопасности, а также сотрудничает с несколькими компаниями, поддерживающими работу с базами данных в корпоративной виртуальной среде (CVE).

Восходящие изменения становятся обязательными

Поддержка нисходящих патчей сопряжена с дополнительной сложностью; кроме того, такая практика не является общепринятой в сообществе свободной разработки. Microsoft гарантирует, что все изменения ядра будут распространяться в восходящем направлении – это важный аспект философии Linux.

Чтобы добиться стабильности веток, связанных с долгосрочной поддержкой, некоторые патчи – например, содержащие новые возможности – могут включаться лишь в новые версии ядра, а не портироваться в текущую версию LTS в режиме обратной совместимости. Цель Microsoft, активно использующей Linux –стать дисциплинированным членом этого сообщества и поставлять вносимые изменения в распоряжение сообщества.

Microsoft рассчитывает, что со временем этот список сократится, по мере распространения патчей в восходящем направлении, и новые локальные патчи будут добавляться для поддержки свежих возможностей WSL. Когда будут доступны исходники ядра WSL, они будут состоять из ссылок на набор патчей и из долгоиграющей стабильной части исходников.

Более приятное оформление окон

Microsoft также анонсировала выход готовящейся «зимней» версии Windows Terminal – это новое приложение для пользователей, работающих с инструментами командной строки и оболочками, в частности, Command Prompt, PowerShell и WSL.

Терминал Windows

0 предлагает множество настроек и конфигурационных возможностей, дающих более полный контроль над оформлением окна терминала, а также над оболочками/профилями, которые должны открываться как новые вкладки. Windows Terminal 1.

Настройки будут сохраняться в структурированном текстовом файле, благодаря чему их станет легко конфигурировать и оформлять окно терминала на свой вкус.

Windows Terminal устанавливается и и работает параллельно с имеющимся приложением Windows Console, поставляемым «из коробки». Microsoft прекращает доработку имеющейся консоли Windows, а создает новую с нуля, решив применить при этом свежий подход.

Как это работает

Механизм конфигурации нового терминала позволяет пользователям Windows создавать множество профилей для всех желаемых оболочек/приложений/инструментов, будь то в PowerShell, командной строке, Ubuntu, или даже при SSH-соединениях с Azure или устройствами Интернета Вещей. Когда пользователь Windows 10 напрямую запускает Cmd/PowerShell/т.д, срабатывает процесс, прикрепленный к обычному экземпляру Console.

Кроме того, пользолватели смогут выбрать новый моноширинный шрифт, чтобы окно терминала выглядело современнее и круче. В этих профилях могут предусматриваться собственные комбинации оформления и кегля шрифта, цветовые темы, уровни размытия или прозрачности фона. В этом шрифте предусмотрены программерские лигатуры, он будет выложен в открытый доступ и станет храниться в собственном репозитории.

Поддержка множества вкладок считалась самым востребованным запросом по поводу разработки терминала. Основные достоинства нового командного интерфейса Windows – множество вкладок и красивый текст. Красивый текст получается благодаря движку рендеринга на основе DirectWrite/DirectX, оснащенного GPU-ускорением.

Кроме того, этот движок отображает текст гораздо быстрее, чем GDI, ранее использовавшийся в консоли. Движок отображает текстовые значки, глифы и специальные символы, имеющиеся в шрифтах, в том числе, китайские, японские и корейские идеограмы (CJK), эмодзи, символы powerline, иконки и программерские лигатуры.

Обратная совместимость остается в полном порядке, хотя, при желании можно попробовать и Windows Terminal.

Хронология: как это будет

Таким образом, пользователи всегда будут работать с новейшими версиями и самыми последними доработками – практически без лишних усилий. Microsoft будет предоставлять Windows Terminal через Microsoft Store в Windows 10 и регулярно его обновлять.

После того как Microsoft выкатит Windows Terminal 1. Microsoft планирует запустить новый терминал ближайшей зимой. 0, разработчики продолжат заниматься множеством возможностей, уже отложенных в бэклог.

Исходный код Windows Terminal и Windows Console уже выложен на GitHub.

Что нас может ждать в дальнейшем?

Возможность того, что Microsoft станет использовать собственное ядро Linux и для других целей, например, для разработки своего дистрибутива Linux, сегодня кажется несколько гипотетической.

Вероятно, исход зависит от того, удастся ли Microsoft обнаружить заметный спрос на такой продукт, и какие коммерческие возможности потенциально могут открыть такие разработки – считает Чарльз Кинг.

Он думает, что в обозримом будущем компания сосредоточит основную работу на обеспечении все более тесной совместимости Windows и Linux и их взаимном дополнении.

Если бы сегодня Microsoft была совсем молодой компанией, то, вероятно, все делала бы на основе Linux. Джошуа Швартц полагает, что в данном случае потребуется взвесить, каковы будут вложения в эту работу, и какова – отдача от нее. Любители Linux получат себе Linux, а основная архитектура останется нетронутой. Однако, портирование всех наработок, уже имеющихся у Microsoft, на нативную архитектуру Linux, сегодня представляется дорогостоящим и сложным проектом, который едва ли хорошо окупится.

Сегодня же новая версия Microsoft Windows создается именно на базе Linux. Когда Apple в 2000 году заново изобрела Mac OS, эта операционная система строилась на основе BSD Unix, которая более схожа с Linux, чем с DOS.

Возможно, перед нами отворяется новая дверь?

В сущности, эти наработки Microsoft свидетельствуют о том, что и в самой компании Microsoft уже понимают: сегодня почти не осталось клиентов, которые предпочитают существовать в мире, где всюду сплошная Windows. Ядро Linux от Microsoft может открыть путь для более тесного взаиодействия между службами Windows и операционной системой Linux.

Гораздо разумнее использовать гетерогенные технологии и системы, наиболее полно отвечающие бизнес-требованиям и конкретным практическим ситуациям.

Более важный стратегический вопрос заключается в том, какие новые стратегические возможности открывает такой ход для самой платформы Microsoft?

Ранее Windows хорошо поддерживала Linux при помощи виртуальных машин. Azure – облачная экосистема от Microsoft – уже предоставляет колоссальную поддержку Linux.

Вполне вероятно, что в результате Azure обогатится целой прослойкой инженеров, использующих Linux в промышленных масштабах. Принципиальные изменения, происходящие сегодня, связаны с тем, что теперь процессы Linux будут нативно выполняться на ядре Windows, а значит – работа с Linux из Windows пойдет гораздо быстрее, чем на виртуальных машинах.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть