Пінгвін у вікні: про потенціал та перспективи WSL2

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

Поки що у нас щосили триває літній розпродаж, ми хотіли б запропонувати вам обговорити одну з наймасштабніших тем, яку опрацьовуємо останнім часом – взаємодія Windows та Linux, пов'язана, зокрема, з розвитком системи WSL. WSL 2 вже на підході, і вашій увазі пропонується короткий огляд можливостей, які чекають на нас у цій підсистемі, а також прогноз подальшої інтеграції Windows та Linux.

Пінгвін у вікні: про потенціал та перспективи WSL2

У травні цього року компанія Microsoft оголосила, що WSL2, найновіша версія підсистеми Windows на Linux, працюватиме на повноцінному ядрі Linux, зібраному в компанії.
Таким чином, Microsoft вперше включає в Windows ядро ​​Linux як один з компонентів. Також Microsoft вводить у Windows командний рядок, який розширить можливості PowerShell та WSL.

Як ядро ​​Linux для WSL2, створене силами Microsoft, так і новий командний рядок Windows цікаві передусім розробникам.

"Це найбільш сильний хід у партії проти AWS," зазначає Джошуа Швартц, керівник програм цифровізації в консалтинговій компанії AT 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.

Пінгвін у вікні: про потенціал та перспективи WSL2

Термінал 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 у промислових масштабах.

Джерело: habr.com

Додати коментар або відгук