Разработчики: | 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.
Поскольку на сентябрь 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.TAdviser SummIT 28 мая стал самым масштабным за всю историю его проведения. Более 1,5 тыс участников и 50 стендов. ФОТО
Пользователи, которые используют сборку Windows 11 Insider могут выполнить обновление до предварительной версии WSL 0.67.6 или более поздней версии с помощью команды wsl --update. Проверить установленную версию можно с помощью команды wsl –version, как показано ниже.
Теперь можно включить 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.
Сначала 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.
![]() | Мы знаем, что многие дистрибутивы Linux полностью построены на программном обеспечении с открытым исходным кодом, поэтому мы хотели бы приблизить WSL к сообществу Open Source. Мы надеемся, что этот открытый проект поможет повысить участие сообщества и добавить больше ваших любимых дистрибутивов в Microsoft Store, — написал в блоге Microsoft участник команды WSL Тара Радж (Tara Raj). | ![]() |
Первым к проекту Windows Subsystem for Linux в свое время подключилась Canonical, которая разместила свой дистрибутив Ubuntu в магазине Microsoft Store. Затем Microsoft наладила сотрудничество с разработчиками дистрибутивов SUSE, Debian, Kali и Fedora.[5]
Примечания
- ↑ Microsoft добавляет systemd в подсистему Windows для Linux
- ↑ The Windows Subsystem for Linux BUILD 2020 Summary
- ↑ Windows 10 WSL2 теперь позволяет настраивать глобальные параметры
- ↑ Microsoft встроит полноценное ядро Linux в Windows 10
- ↑ Linux on Windows 10: Microsoft releases new tool to get more distros on Windows
Подрядчики-лидеры по количеству проектов
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Распределение систем по количеству проектов, не включая партнерские решения
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)