Привет!
Пока у нас вовсю продолжается летняя распродажа, мы хотели бы предложить вам обсудить одну из самых масштабных тем, которую прорабатываем в последнее время — взаимодействие Windows и Linux, связанное, в частности, с развитием системы WSL. 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 действительно очень грамотный, поскольку помогает глубже проникнуть в сообщество разработчиков, а также активно пользоваться продуктами, которые развивает кто-то еще – то есть, подключиться к опенсорсу – считает Суонн.
Добро пожаловать в Нью-Майкрософт
Тренд в сторону создания и поддержки ядра 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
Windows Terminal 1.0 предлагает множество настроек и конфигурационных возможностей, дающих более полный контроль над оформлением окна терминала, а также над оболочками/профилями, которые должны открываться как новые вкладки.
Настройки будут сохраняться в структурированном текстовом файле, благодаря чему их станет легко конфигурировать и оформлять окно терминала на свой вкус.
Microsoft прекращает доработку имеющейся консоли Windows, а создает новую с нуля, решив применить при этом свежий подход. Windows Terminal устанавливается и и работает параллельно с имеющимся приложением Windows Console, поставляемым «из коробки».
Как это работает
Когда пользователь Windows 10 напрямую запускает Cmd/PowerShell/т.д, срабатывает процесс, прикрепленный к обычному экземпляру Console. Механизм конфигурации нового терминала позволяет пользователям 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 в промышленных масштабах.
Автор: ph_piter