Microsoft сделала исходный код подсистемы Windows для Linux (WSL) общедоступным спустя почти девять лет после первого релиза. Теперь большая часть компонентов WSL выложена в открытый репозиторий на GitHub под лицензией MIT. Это означает, что разработчики по всему миру могут не только изучать внутреннюю архитектуру подсистемы, но и участвовать в её доработке и развитии.
WSL позволяет запускать приложения, разработанные для Linux, в среде Windows 10 и 11 — без необходимости их перекомпиляции или переноса. Также пользователи могут устанавливать популярные дистрибутивы Linux, такие как Ubuntu и Fedora, прямо из Microsoft Store. При этом отпадает необходимость использовать сторонние инструменты виртуализации.
Проект WSL был впервые представлен в апреле 2016 года, а уже в августе того же года стал частью финального релиза Windows 10. Изначально была реализована версия WSL1, обеспечивающая работу Linux-программ за счёт прослойки, которая транслировала системные вызовы Linux в вызовы Windows NT, используя драйвер lxcore.sys. Однако такой подход не обеспечивал полной совместимости с большим количеством Linux-приложений.
Второй этап развития — WSL2 — стартовал в 2019 году. Microsoft внедрила полноценное ядро Linux, модифицированное под нужды Windows. В этой версии подсистема работает через виртуальную машину, которая запускается в фоновом режиме. Это решение дало значительный прирост производительности, особенно в области ввода-вывода, и сняло множество ограничений по совместимости. Также появилась возможность запускать Linux-программы с графическим интерфейсом и использовать аппаратное ускорение с помощью GPU.
Весной 2020 года стало известно, что WSL2 получит поддержку графических Linux-приложений. Это стало возможным благодаря внедрению компонента WSLg — графической подсистемы, основанной на собственном дистрибутиве Microsoft под названием CBL-Mariner (позднее переименованном в Azure Linux). В WSLg используются такие компоненты, как PulseAudio, Wayland, X-сервер и RDP, которые обеспечивают отображение интерфейса Linux-программ в Windows-среде. Все они упакованы в компактный контейнер и взаимодействуют с пользовательскими дистрибутивами через сокеты.
Теперь Microsoft опубликовала исходники многих ключевых компонентов WSL, включая утилиты командной строки (wsl.exe, wslg.exe), фоновые службы (wslservice.exe), а также связанные с ними Linux-демоны, отвечающие за настройку сети, проброс портов и другие функции. Код доступен в репозитории “microsoft/WSL” на GitHub. Техническую документацию на английском языке можно найти на сайте wsl.dev, а руководство пользователя, включая русскоязычную версию, — на официальном портале Microsoft Docs.
В то же время исходный код некоторых критически важных элементов, являющихся частью закрытой архитектуры Windows, корпорация публиковать не планирует. Среди них драйвер ядра lxcore.sys для WSL1, а также компоненты 9rdr.sys и p9np.dll, обеспечивающие доступ к файловой системе Linux через протокол 9P и маршрут “\wsl.localhost”.
Открытие кода WSL даёт возможность всем желающим вносить улучшения, разрабатывать новые функции и лучше понимать принципы работы подсистемы. Однако Microsoft пока не сообщила, планирует ли передать управление проектом сообществу или сохранит над ним полный контроль.



