Новости | ITSec.Ru

Microsoft добавляет systemd в подсистему Windows для Linux

Written by Komolov Rostislav | 26/09/22

Microsoft и Canonical добавили поддержку systemd в подсистему Windows для Linux, что позволит устанавливать большее количество совместимых приложений.

systemd — подсистема инициализации и управления службами в Linux, фактически вытеснившая в 2010-е годы традиционную подсистему init, напоминает Securitylab. Основная особенность — интенсивное распараллеливание запуска служб в процессе загрузки системы, что позволяет существенно ускорить запуск операционной системы. Основная единица управления — модуль, одним из типов модулей являются «службы» — аналог демонов — наборы процессов, запускаемые и управляемые средствами подсистемы и изолируемые контрольными группами.

Поскольку systemd отвечает за запуск всех остальных служб, он запускается как первый процесс (PID 1), созданный ядром Linux при запуске. Затем все остальные службы первоначального запуска запускаются и управляются systemd, как показано в дереве процессов ниже из Ubuntu.

Поскольку в настоящее время WSL использует init в качестве диспетчера системы и служб, приложения Linux, требующие systemd, такие как Snap, microk8s (Kubernetes) и systemctl, работают некорректно.

Вчера Microsoft и Canonical объявили, что последняя предварительная версия подсистемы Windows для Linux в сборках Windows 11 Insider теперь поддерживает systemd, что позволяет устанавливать приложения, которым требуется диспетчер служб.

«Поддержка systemd потребовала внесения изменений в архитектуру WSL. Поскольку systemd требует PID 1, процесс инициализации WSL, запущенный в дистрибутиве Linux, становится дочерним процессом systemd», — пояснил Крейг Лоуэн из Microsoft.

«Поскольку процесс инициализации WSL отвечает за обеспечение инфраструктуры для связи между компонентами Linux и Windows, изменение этой иерархии потребовало переосмысления некоторых предположений, сделанных в процессе инициализации WSL».

Все кто использует сборку Windows 11 Insider может выполнить обновление до предварительной версии WSL 0.67.6 или более поздней версии с помощью команды wsl --update. Проверить установленную версию можно с помощью команды wsl –version.

Microsoft  также опубликовала видео, в котором подробно рассказывает о том, что означают изменения.