Windows Subsystem for Linux

Продукт
Разработчики: Microsoft
Дата последнего релиза: 2022/09/24
Технологии: ОС

Содержание

Windows Subsystem for Linux (WSL) - функция, позволяющая запускать Linux-приложения в операционной системе Windows 10 без виртуализации и эмуляции. Технология предоставляет интерфейсы, во многом совместимые с интерфейсами ядра Linux, благодаря чему транслируются системные вызовы Linux в системные вызовы Windows. Подсистема WSL была полностью разработана Microsoft и не содержит в себе каких-либо исходных кодов ядра Linux. WSL создает для программистов полноценную среду разработки Linux, позволяя им тестировать программы на Windows-компьютерах. 

2022

Поддержка systemd

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

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

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

Дерево процессов. Иллюстрация: securitylab.ru.

Поскольку на сентябрь 2022 года 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.Метавселенная ВДНХ 3.3 т

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

Команда wsl –version. Иллюстрация: securitylab.ru.

Теперь можно включить systemd, запустив нужный дистрибутив WSL Linux и добавив следующие строки в /etc/wsl.conf:

[boot] systemd=true[1].

Интеграция с Windows Server 2022

Компания Microsoft объявила об интеграции поддержки Linux-окружений на базе подсистемы WSL2 (Windows Subsystem for Linux) в состав выпущенного июньского сводного обновления Windows Server 2022. Изначально подсистема WSL2, обеспечивающая запуск исполняемых файлов Linux в Windows, предлагалась только в вариантах Windows для рабочих станций. Об этом стало известно 22 июня 2022 года. Подробнее здесь.

2020: WSL2 - поддержка Linux-приложений с графическим интерфейсом

19 мая 2020 года Microsoft сообщила о добавлении в Windows 10 поддержки запуска Linux-приложений с графическим интерфейсом. В качестве примера на конференции Build 2020 компания продемонстрировала запуск на рабочем столе Windows таких приложений, как файлового менеджера Eye of GNOME, текстового редактора gedit и медиаплеера mpv.

В блоге Microsoft размещен скриншот, на котором приложение Eye of GNOME открыто в отдельном окне рядом с окном Windows-приложения Outlook. Для реализации этой возможности был обновлён инструмент Windows Subsystem for Linux - выпущена версия WSL2.

В Windows 10 теперь можно запускать Linux-приложения с графическим интерфейсом

Сначала Microsoft добавила в Windows поддержку запуска операционной системы Ubuntu, доступ к которой можно получать посредством командной оболочки Bash.

Один из наиболее часто поступающих в Microsoft запросов — возможность запуска в Windows не просто приложений для командной строки, а приложений с графическим интерфейсом, рассказали в компании.

«
В некоторых случаях пользователи хотели бы иметь возможность запускать предпочитаемые текстовые редакторы или интегрированные среды разработки, написанные для Linux, или просто разрабатывать приложения для Linux на своем Windows-ПК, — добавили в Microsoft.
»

В итоге корпорация решила добавить поддержку приложений Linux с графическим интерфейсом и возможность одновременной работы с приложениями Linux и Windows, как если бы дистрибутив был запущен в виртуальной машине.

«
Вы даже сможете запускать приложения, оптимизированные для среды Linux, — заявили в компании.
»

В Windows можно запускать Linux-приложения с графическим интерфейсом с помощью X-сервера. Однако это сопровождается проблемами с производительностью.

Microsoft также анонсировала добавление в WSL поддержки графических ускорителей. Кроме того, вскоре WSL будет поддерживать упрощенный процесс установки с помощью команды `wsl.exe - -install`, что позволит быстрее начать работу с Linux-приложениями в Windows.[2]

2019

Windows 10 WSL2 позволяет настраивать глобальные параметры

5 августа 2019 года стало известно, что Microsoft выпустила функцию для подсистемы WSL2 (Windows для Linux версии 2), позволяющую настраивать глобальные параметры для всех установленных дистрибутивов на системе Windows 10. Для этого в папке %UserProfile% пользователя необходимо будет создать файл конфигурации .wslconfig.

Поскольку все дистрибутивы WSL2 запускаются на одной и той же виртуальной машине, после создания файла глобальной конфигурации он будет использоваться для всех дистрибутивов WSL2, установленных в Windows 10. Дистрибутивы Linux, работающие под WSL1, не будут затронуты этим файлом конфигурации. Для просмотра списка установленных дистрибутивов WSL2, которые затронет файл глобальной конфигурации, нужно ввести команду wsl-l-v.

Указанные пользователем параметры будут использоваться только после того, как он создаст файл конфигурации и перезапустит дистрибутив Linux.

Также появилась возможность указать кастомное ядро ​​Linux для использования с установленными дистрибутивами. В рамках выпуска WSL2 компания Microsoft также выложила свое ядро ​​Linux для общего доступа на репозитории GitHub. Пользователи могут перекомпилировать данное ядро для включения определенного модуля или патча. Достаточно скомпилировать кастомное ядро, сохранить его в Windows 10, а затем использовать опцию kernel = для указания полного пути к ядру. После перезапуска дистрибутива Linux WSL2 будет использовать это настроенное ядро[3].

Встроенное полноценное ядро Linux в WSL 2

7 мая 2019 года стало известно, что компания Microsoft представила обновленную подсистему WSL 2, предназначенную для запуска исполняемых файлов Linux в Windows. Ключевой особенностью обновления WSL 2 является встроенное полноценное ядро Microsoft Linux.

По данным разработчика, первые тестовые сборки для участников программы Windows Insider будут выпущены в конце июня 2019 года. Кастомное ядро обеспечит основу для архитектуры Microsoft Windows Subsystem for Linux (WSL) 2. Реализация полноценного ядра Linux в WSL 2 позволит улучшить совместимость, существенно повысить производительность приложений Linux под Windows, ускорить время загрузки, оптимизировать использование оперативной памяти, ускорить работу ввода-вывода файловой системы и запускать контейнеры Docker напрямую, а не через виртуальную машину.

Согласно результатам внутреннего тестирования Microsoft, вторая редакция WSL работает в 20 раз быстрее по сравнению с WSL 1 при распаковке архивов tarball и порядка в 2-5 раз быстрее при использовании git clone, npm install и cmake в различных проектах.

Как отметили в Microsoft, первый релиз WSL 2 будет базироваться на долгосрочной стабильной версии Linux 4.19. По мере выхода исправлений для LTS ветки 4.19 ядро для WSL 2 будет оперативно обновляться через механизм Windows Update и тестироваться в инфраструктуре непрерывной интеграции Microsoft.

Согласно сообщению компании, ядро будет полностью открытым. Microsoft также предоставит разработчикам инструкции для создания собственных версий ядра. Всю информацию техногигант пообещал разместить на Github.[4]

2018: Поддержка всех дистрибутивов Linux

В марте 2018 года Microsoft объявила о расширении возможностей инструмента Windows Subsystem for Linux (WSL), реализующего окружение Linux в среде Windows. Если раньше терминал Linux, работающий внутри Windows 10, поддерживал только популярные дистрибутивы, то теперь реализована совместимость со всеми проектами. 

Microsoft открыла исходный код некоторых компонентов WSL, чтобы разработчики могли создавать кастомные Linux-дистрибутивы, которые бы можно было запускать в Windows 10. Проект WSL-DistroLauncher, написанный на языке программирования C++, доступен в открытом виде на портале GitHub. Он позволяет разрабатывать пакеты для Linux с последующим размещением в Microsoft Store. Сами дистрибутивы разработчики не могут загрузить в онлайн-магазин самостоятельно — только при договоренностях с Microsoft.

Microsoft позволила запускать любые Linux-дистрибутивы в Windows 10
«
Мы знаем, что многие дистрибутивы Linux полностью построены на программном обеспечении с открытым исходным кодом, поэтому мы хотели бы приблизить WSL к сообществу Open Source. Мы надеемся, что этот открытый проект поможет повысить участие сообщества и добавить больше ваших любимых дистрибутивов в Microsoft Store, — написал в блоге Microsoft участник команды WSL Тара Радж (Tara Raj). 
»

Первым к проекту Windows Subsystem for Linux в свое время подключилась Canonical, которая разместила свой дистрибутив Ubuntu в магазине Microsoft Store. Затем Microsoft наладила сотрудничество с разработчиками дистрибутивов SUSE, Debian, Kali и Fedora.[5]

Примечания



СМ. ТАКЖЕ (3)


Подрядчики-лидеры по количеству проектов

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Ред Софт (Red Soft) (42)
  НППКТ (40)
  Softline (Софтлайн) (29)
  Кортис (16)
  Крок (15)
  Другие (348)

  НППКТ (17)
  Almi Partner, Алми партнер (ГК Алми) (7)
  Кортис (4)
  Крок (4)
  Ред Софт (Red Soft) (4)
  Другие (46)

  НППКТ (23)
  Кортис (7)
  Ред Софт (Red Soft) (5)
  ОТР-БИТ (ОТР - безопасность информационных технологий) (2)
  Кортис Технологии (1)
  Другие (8)

  Ред Софт (Red Soft) (5)
  Линс (Lins) (1)
  Электронные офисные системы (ЭОС) (1)
  Аквариус (Aquarius) (1)
  Атлант (ГК Applite) (1)
  Другие (6)

  Ред Софт (Red Soft) (8)
  РТ МИС (РТ Медицинские информационные системы) (4)
  IServ (Интернет-Сервис) ИСерв (1)
  RDV (РДВ Автоматизация) (1)
  RNT Group (ранее EPAM в России) (1)
  Другие (4)

Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Microsoft (80, 144)
  Ред Софт (Red Soft) (3, 66)
  РусБИТех-Астра (ГК Астра) (3, 45)
  НППКТ (2, 41)
  ИВК (3, 27)
  Другие (302, 133)

  НППКТ (1, 17)
  РусБИТех-Астра (ГК Астра) (2, 9)
  Ред Софт (Red Soft) (1, 8)
  Almi Partner, Алми партнер (ГК Алми) (1, 7)
  Microsoft (2, 6)
  Другие (11, 19)

  НППКТ (1, 23)
  Ред Софт (Red Soft) (1, 13)
  ИВК (2, 4)
  Базальт СПО (BaseALT) ранее ALT Linux (3, 3)
  РусБИТех-Астра (ГК Астра) (2, 3)
  Другие (0, 0)

  Ред Софт (Red Soft) (1, 6)
  Базальт СПО (BaseALT) ранее ALT Linux (1, 2)
  ИВК (1, 2)
  Microsoft (1, 1)
  Атлант (ГК Applite) (1, 1)
  Другие (0, 0)

  Ред Софт (Red Soft) (1, 9)
  Jolla (Sailfish Holding) (1, 1)
  Открытая мобильная платформа (ОМП) (1, 1)
  Synology (SLMP PTE) (1, 1)
  Другие (0, 0)

Распределение систем по количеству проектов, не включая партнерские решения

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Ред ОС (Red OS) - 61
  Microsoft Windows - 60
  НППКТ: ОСнова (Операционная система общего назначения, ОС ОН) - 41
  Astra Linux Common Edition - 27
  Astra Linux Special Edition - 21
  Другие 197

  НППКТ: ОСнова (Операционная система общего назначения, ОС ОН) - 17
  Ред ОС (Red OS) - 8
  AlterOS - 7
  Astra Linux Common Edition - 7
  Microsoft Windows - 5
  Другие 18

  НППКТ: ОСнова (Операционная система общего назначения, ОС ОН) - 23
  Ред ОС (Red OS) - 13
  Astra Linux Common Edition - 2
  Альт Рабочая станция - 2
  ОС Альт (ранее Альт Линукс (ALT Linux) - 2
  Другие 2

  Ред ОС (Red OS) - 6
  ОС Альт (ранее Альт Линукс (ALT Linux) - 2
  Атлант ОС - 1
  Windows Server 2019 - 1
  Другие 0

  Ред ОС (Red OS) - 9
  Аврора ОС - 1
  Synology NAS - DiskStation Manager - 1
  Другие 0