Компания Microsoft объявила об открытии инструментария, обеспечивающего работу подсистемы WSL (Windows Subsystem for Linux), позволяющей запускать Linux-приложения в Windows. Отмечается, что теперь любой желающий может собрать WSL из исходного кода и принять участие в разработке. Среди прочего, Microsoft начал принимать в WSL исправления и новые возможности, подготовленные представителями из сообщества. Код опубликован под лицензией MIT. Для разработчиков, желающих принять участие в работе над проектом, запущен сайт wsl.dev.
WSL предоставляет виртуальную машину с полноценным ядром Linux (на базе ветки 6.6), в которой могут запускаться дистрибутивы Linux. Ядро включает специфичные для WSL изменения, такие как оптимизации для сокращения времени запуска и уменьшения потребления памяти, возможность возвращения Windows освобождённой Linux-процессами памяти и настройки для исключения лишних драйверов и подсистем. Система устанавливается в отдельный дисковый образ (VHD) c файловой системой ext4 и виртуальным сетевым адаптером.
Компоненты WSL, связанные с ядром Linux и графическим стеком wslg, применяемым для запуска GUI-приложений на базе Wayland и X11, развивались в открытом виде изначально, но весь сопутствующий инструментарий оставался проприетарным. Отныне в число открытых переведены следующие компоненты:
- Утилиты командной строки wsl.exe, wslconfig.exe и wslg.exe, используемые для взаимодействия с WSL.
- Сервис wslservice.exe, применяемый для запуска виртуальной машины, активации в ней Linux-окружения и монтирования файловых систем.
- Фоновые процессы, запускаемые в Linux-окружении для доступа к функциональности WSL. Например, процесс init для начальной инициализации, gns для настройки сетевого доступа, localhost для перенаправления портов.
- Процесс plan9 c реализацией сервера Plan9, применяемого в WSL для совместного доступа к Linux-файлам из Windows.
Остаются частью Windows и не открыты в настоящее время:
- Драйвер ядра Lxcore.sys, применяемый для запуска исполняемых файлов в формате ELF через слой обеспечения совместимости.
- Драйвер P9rdr.sys и библиотека p9np.dll, обеспечивающие перенаправление доступа к ФС "\\wsl.localhost" при обращении из Windows к Linux.
Одновременно компания Microsoft открыла под лицензией MIT исходный код консольного текстового редактора Edit, написанного на языке Rust и нацеленного на поставку по умолчанию в 64-разрядных версиях Windows. В ближайшие месяцы редактор будет предложен для ознакомления и тестирования в сборках Windows Insider Program, после чего войдёт в штатную поставку Windows 11.
В редакторе попытались реализовать современный интерфейс с управлением в стиле VS Code. Целью заявлено предоставление интерфейса, который был бы понятен и прост в использовании даже для тех, кто не имеет опыта работы в терминале. Редактор компактен и занимает всего 250kB на диске. Из возможностей упомянуты: система меню, управление клавиатурными комбинациями или мышью, поддержка вкладок и одновременной работы с несколькими файлами, операции поиска и замены, режим автоматического переноса текста на новую строку.
Дополнительно можно отметить устранение в майском обновлении Windows ошибки, приводившей к невозможности загрузить некоторые Linux-системы в конфигурациях с двойной загрузкой, в которых на одном компьютере используются Windows и Linux. Проблема возникла в августе прошлого года и устранена только сейчас (до этого исправление требовало ручного удаления данных SBAT, установленных в UEFI). Суть ошибки в том, что Microsoft хотел заблокировать возможность обхода режима Secure Boot при помощи уязвимых версий GRUB на компьютерах, на которых используется только Windows, но не учёл нюансы. В итоге изменение привело к нарушению процесса загрузки у пользователей систем с двойной загрузкой, использующих дистрибутивы Linux с необновленными параметрами SBAT и загрузчиком GRUB.