Некоторые новости приходят и уходят, но некоторые истории знаменуют собой исторический момент в мире открытого исходного кода — и это определённо одна из таких историй. Microsoft сделала то, чего давно ждали разработчики, — выпустила подсистему Windows для Linux (WSL) с открытым исходным кодом, разместив её основную кодовую базу на GitHub.
Это объявление удовлетворяет самый первый запрос, когда-либо зарегистрированный в системе отслеживания проблем проекта, — почти девятилетнюю просьбу «сделать WSL открытым источником».
Для тех, кто не очень хорошо разбирается в технологиях, WSL, или подсистема Windows для Linux, — это функция Windows, которая позволяет запускать Linux прямо в Windows без необходимости использовать отдельный компьютер или виртуальную машину. Честно говоря, это невероятно полезная функция, которая позволяет пользователям Windows получить практический опыт работы с Linux без сложных установок или запутанных конфигураций.
Давайте вспомним несколько ключевых событий. История WSL началась в 2016 году, когда в юбилейном обновлении Windows 10 появился уровень совместимости (позже переименованный в «WSL 1»), который на лету преобразовывал системные вызовы Linux с помощью lxcore.sys
драйвера.
Несмотря на революционность этого подхода, он всё же уступал реальной среде Linux в плане совместимости с крайними случаями. Поэтому в 2019 году Microsoft представила WSL 2, переключившись на облегчённую виртуальную машину, которая загружает настоящее ядро Linux, поддерживаемое Microsoft. Это изменение позволило использовать вычисления на GPU, приложения с графическим интерфейсом через WSLg и, совсем недавно, поддержку systemd.
К 2021 году компания отделила выпуск WSL от выпуска самой Windows, выпустив его как пакет в Microsoft Store. Это разделение подготовило почву для «зеркальной сети» WSL 2.0.0, туннелирования DNS и интеграции с брандмауэром.
Вернёмся к теме: что теперь открыто, а что остаётся закрытым? Вот в чём дело: недавно открытый репозиторий содержит все компоненты пользовательского режима, которые обеспечивают работу WSL:
- Интерфейс командной строки заканчивается (
wsl.exe
,wslconfig.exe
,wslg.exe
). wslservice.exe
Служба Windows, которая запускает виртуальную машину, управляет жизненным циклом дистрибутива и монтирует общие ресурсы.- Демоны на стороне Linux (включая
init
,gns
для работы в сети иlocalhost
для переадресации портов). - Сервер Plan 9, обеспечивающий общий доступ к файлам между ОС.
Компоненты, которые на данный момент остаются проприетарными, включают lxcore.sys
(необходимый для пользователей WSL 1) и драйвер перенаправления Plan 9 (p9rdr.sys
), отвечающий за раздел \\wsl.localhost
Итак, чего нам ожидать в будущем? Если вкратце, то значительного улучшения качества WSL. Потому что на данный момент многое ещё предстоит доработать. Участники уже подали тысячи заявок и запросов на исправление ошибок в проекты, связанные с WSL (в частности, в WSLg и специальное ядро Linux), несмотря на то, что они не имеют доступа к внутренним компонентам основного сервиса.
Но теперь это не так: открытие кодовой базы устраняет серьёзное препятствие для исправлений, функций и проверок безопасности, предлагаемых сообществом, и сокращает время ожидания обратной связи. Кроме того, переход на открытый исходный код упрощает аудит и соблюдение требований цепочки поставок для предприятий. Прозрачная WSL — это ещё одна причина, по которой не нужно использовать двойную загрузку или отдельную виртуальную машину.
Разработчики, желающие заглянуть «под капот», могут клонировать репозиторий, запустить локальную сборку и отправлять запросы на вытягивание. Сопровождающие Microsoft опубликовали рекомендации с подробным описанием стандартов кодирования, требований к непрерывной интеграции и модели управления.
Дополнительные сведения см. в официальном объявлении Microsoft .