Среда Windows Subsystem for Linux (WSL) позволяет запускать нативные приложения, писать скрипты, выполнять команды и скрипты Linux непосредственно из Windows без использования эмуляторов или развертывания выделенных виртуальных машин. Актуальной версией среды является WSL 2, в которой используется полноценное ядро Linux (версия ядра 5.15) и обеспечивает полную совместимость с системными вызовами. Образ ядра Linux в WSL представляет собой легкую виртуальную машину, для запуска которой не нужно устанавливать полноценную роль Hyper-V.
Содержание:
- Как установить Windows Subsystem for Linux (WSL2)?
- WSL: Установка дистрибутива Linux в Windows
- Команды для управления WSL в Windows
- Использование Linux в среде WSL
Вы можете запустить WSL 2:
- Во всех версиях Windows 10, начиная с 1903, а также в Windows 11 и Windows Server 2022;
- В настройка BIOS/UEFI компьютера должна быть включена поддержка аппаратной виртуализации: Intel VT (Intel Virtualization Technology) или AMD-V (SVM Mode).
Как установить Windows Subsystem for Linux (WSL2)?
Компонент WSL по умолчанию отключен в Windows. Современных дистрибутивах Windows 10 и Windows 11 для установки среды WSL достаточно выполнить команду:
wsl --install
Этак команда автоматически включит все необходимые компоненты Windows, необходимые для работы WSL, установить обновление ядра Linux для WSL2, загрузит дистрибутив Ubuntu (по-умолчанию) и установит его в WSL.
Осталось перезагрузить компьютер, и вы можете запускать среду WSL!
Вы можете установить для WSL другой дистрибутив Linux. Выведите список доступных дистрибутивов:
wsl --list --online
Укажите имя дистрибутива Linux, который установить в WSL. Например:
wsl --install -d kali-linux
Если в BIOS/UEFI компьютера не включена виртуализация, при установке WSL вы получите ошибку:
Installation failed with error 0x80070003 or error 0x80370102” it means that Bios Level Virtualization is not enabled on your computer.
Вы можете установить WSL2 в Windows вручную. Для этого придется вручную последовательно выполнить все этапы, который команда wsl —install запускала автоматически:
- Установить WSL
- Включить компонент виртуалзации VirtualMachinePlatform
- Установить ядро WSL 2
- Скачать и установить дистрибутив Linux для WSL
Сначала установите следующие компоненты Windows:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Перезагрузите компьютер.
Скачаем и установим обновление ядра Linux для WSL2 (WSL2 Linux kernel update package for x64 machines — https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi). Можете скачать пакет вручную или с помощью PowerShell:
Invoke-WebRequest -Uri https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -OutFile "$($env:userprofile)\Downloads\wsl_update_x64.msi" -UseBasicParsing
Invoke-Item "$($env:userprofile)\Downloads\wsl_update_x64.msi"
rm "$($env:userprofile)\Downloads\wsl_update_x64.msi"
Еще раз перезагрузите компьютер и назначьте версию WSL 2 в качестве среды по-умолчанию:
wsl --set-default-version 2
WSL: Установка дистрибутива Linux в Windows
После того, как ядро WSL установлено в Windows, вы можете установить один или несколько дистрибутивов Linux на компьютер.
Можно установить пакет с дистрибутивом Linux через Microsoft Store. Доступны следующие дистрибутивы:
- Ubuntu
- Debian
- Kali Linux
- OpenSUSE
- Oracle Linux
- SUSE Linux Enterprise Server
- Fedora
Найдите нужную версию дистрибутива в Store и установите ее, нажав кнопку Получить (Get).
Если у вас отключен Windows Store, вы хотите установить дистрибутив WSL в Core редакции Windows Server или вам нужно установить WSL на Изолированном от интернета компьютере (оффлайн), вы можете скачать дистрибутив Ubuntu с помощью PowerShell командлета Invoke-WebRequest:
Invoke-WebRequest https://aka.ms/wslubuntu2204 -OutFile ubuntu-2204.appx –UseBasicParsing
Установите пакет для WSL с помощью:
Add-AppxPackage .\ubuntu-2204.appx
После окончания установки появится окно, в котором вам будет предложено указать имя пользователя и пароль для вашего дистрибутива.
После установки вы можете в меню Пуск появится отдельная программа для запуска Linux.
Также вы можете запустить ваш Linux из отдельной вкладки Windows Terminal или с помощью команды
wsl
.
Команды для управления WSL в Windows
Рассмотрим основные команды для управления ядром и дистрибутивами Linux в WSL.
Проверить текущую версию ядра WSL:
wsl --version
Обновить ядро WSL вручную:
wsl --update
Откатится к предыдущему ядру WSL:
wsl --update rollback
Вывести список установленных версий Linux:
wsl --list
Вывести дистрибутив Linux, который используется по-умолчанию:
wsl --status
Дистрибутив Linux по-умолчанию в WSL можно изменить:
wsl --setdefault Ubuntu
Запустить определенный дистрибутив в WSL:
wsl -d kali-linux
Завершить среду WSL:
wsl --shutdown
Можно войти в WSL Ubuntu под root и сбросить пароль:
ubuntu config --default-user root
Passwd
Вернуть пользователя по умолчанию
ubuntu config --default-user your_username
Для настройки параметров WSL и дистрибутивов Linux используются конфиг файлы:
- wsl.conf – файл с настройками конкретного дистрибутива Linux (находится в директории /etc)
- .wslconfig – глобальные настройки WSL, которые применяются ко всем дистрибутовам (находится в профиле пользователя в
%UserProfile%
)
Например, если вы хотите ограничить использование оперативной памяти и CPU компьютера дистрибутивами Linux в WSL, создайте такой файл
%UserProfile%\.wslconfig
:
[wsl2] memory=2GB processors=2
Использование Linux в среде WSL
Дистрибутив Linux, установленный в WSL является полноценной операционной системой. Поэтому после установки рекомендуется выполнить обновление пакетов. Для Ubuntu выполните команду:
$ sudo apt-get update && sudo apt-get upgrade -y
Файловая система вашего дистрибутива Linux хранится в профиле пользователя в виде VHDX файла. Например, виртуальный диск Ubuntu хранится в папке
%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState
Файловая система Linux в WSL монтируется в виде сетевой папки прямо в проводник Windows.
Также для прямого доступа к файлам WSL из Windows можно использовать UNC путь. Например:
notepad \\wsl$\Ubuntu\sysops\home\1122.txt
В свою очередь локальные диски Windows монтируются в WSL в папку mnt. Вывести список файлов папок на диске C:
wsl
ls /mnt
ls/mnt/c
Другие примеры запуска Linux команд из Windows:
dir | wsl grep Sa
wsl ls ‑la > 123.txt
wsl ls ‑la /proc/cpuinfo
wsl ls ‑la “/mnt/c/Program Files”
Вы можете установить любые пакеты в Linux. Например, установите файловый менеджер Midnight Commander:
$ sudo apt-get install mc
В современной версии WSL 2 вы можете запускать из Windows любые приложения Linux с графическим интерфейсом (X11 и Wayland). Например, установите графический редактор:
$ sudo apt install gimp -y
Чтобы запустить его из Windows просто выполните команду:
wsl gimp
Компонент WSL (Windows Subsystem for Linux или Подсистема Windows для Linux) появился в Windows 10 и с тех пор постоянно развивается. Одна из новых возможностей, которую кто-то из пользователей мог пропустить — возможность простого и удобного запуска программ Linux с GUI прямо в ОС Windows.
В этом материале — пример быстрой установки всего необходимого и запуска приложений с графическим интерфейсом в Windows 11 и 10 и дополнительная информация, которая может оказаться полезной.
Установка WSL, дистрибутива Linux и приложений
Установить WSL и нужный дистрибутив можно разными способами:
- Включив необходимые компоненты в дополнительных компонентах Windows и загрузив дистрибутив в Microsoft Store (подробнее).
- Почти автоматически в командной строке.
Далее будет рассмотрен второй вариант, как более быстрый в контексте рассматриваемой темы.
Для установки WSL и конкретного дистрибутива Linux достаточно выполнить следующие шаги:
- Запустите командную строку от имени администратора, введите команду
wsl --install
и нажмите Enter, дождитесь завершения выполнения команды.
- Перезагрузите компьютер и снова зайдите в командную строку. Если на первом шаге была также произведена установка Ubuntu (в некоторых версиях Windows устанавливается автоматически), завершите установку с помощью
wsl --install Ubuntu
В процессе потребуется задать имя пользователя и пароль.
- Если требуется другой дистрибутив или автоматическая установка не выполнялась, по порядку введите команды (первая покажет список доступных дистрибутивов, во второй укажите имя дистрибутива из левого столбца):
wsl --list --online wsl --install NAME
Готово, дистрибутив установлен, а поддержка графического интерфейса приложений в WSL текущих версий включается автоматически (ранее этого можно было добиться лишь обходными путями, по умолчанию приложения работали только в режиме терминала), переходим к установке приложений:
- Введите команду
sudo apt-get update
также можно использовать apt вместо apt-get. Дождитесь обновления репозиториев.
- Для установки приложения по его имени введите команду
sudo apt-get install ИМЯ_ПРИЛОЖЕНИЯ -y
- Приложение будет установлено и появится в меню «Пуск» Windows (в папке соответствующего дистрибутива), откуда его можно будет запустить:
- Тем же способом можно установить и другие необходимые приложения, а для их удаления используйте команду
sudo apt-get remove ИМЯ_ПРИЛОЖЕНИЯ
Результат: приложения Linux с графическим интерфейсом исправно работают прямо в Windows:
Делают это со звуком, ускорением графики OpenGl, пробросом локальных дисков.
При желании вы даже можете установить менеджер пакетов с графическим интерфейсом (своего рода «магазин приложений»). Например, мне удалось добиться вполне исправной работы Gnome Software:
- Устанавливаем с помощью команды в WSL
sudo apt install gnome-software -y
- Изменяем свойства ярлыка, добавленного в меню «Пуск» (правый клик по ярлыку в меню Пуск — перейти к расположению файла — открыть свойства ярлыка), заменив поле объект на (пример для Ubuntu)
"C:\Program Files\WSL\wslg.exe" -d Ubuntu -u root sudo gnome-software
Подобным же способом можно «заставить» запускаться от имени суперпользователя с ярлыков Windows и другие программы.
- Пользуемся для установки, обновления и удаления приложений Linux прямо в Windows, в графическом интерфейсе:
Подробная техническая информация о том, как именно работают Linux-приложения с GUI доступна на GitHub проекта WSLg, с помощью которого реализована соответствующая функциональность.
Все способы:
- Способ 1: Апплет «Программы и компоненты»
- Способ 2: Утилита «DISM»
- Способ 3: Команда установки
- Дополнительные рекомендации
- Вопросы и ответы: 0
WSL, или «Подсистема Windows для Linux», представляет собой встроенную функцию Windows 10, позволяющую запускать в Windows-среде консольные и графические приложения Linux. Существуют два основных способа установки данного компонента.
Способ 1: Апплет «Программы и компоненты»
Данный способ является устаревшим, он использовался, когда Windows 10 (версия 20H2) еще не поддерживала установку WSL через консоль.
- Вызовите нажатием клавиш Win + R диалоговое окошко быстрого запуска приложений и выполните в нем команду
optionalfeatures
, чтобы запустить апплет «Программы и компоненты». - Отыщите в списке компонентов «Платформа виртуальной машины» и «Подсистема Windows для Linux», включите их и нажмите кнопку «ОК».
Для применения конфигурации и установки компонентов потребуется перезагрузка компьютера.
- Запустите встроенное приложение «Microsoft Store», найдите через поиск нужный дистрибутив Linux и установите его. Процедура установки практически ничем не отличается от инсталляции других UWP-приложений, разве что занимает больше времени.
Запустить установленную Linux можно будет из меню «Пуск», как и всякое другое приложение. В настоящее время в магазине Windows доступны несколько популярных Linux-дистрибутивов, в частности Ubuntu, openSUSE Leap, SUSE Linux Enterprise, Kali Linux, Debian и некоторые другие.
Способ 2: Утилита «DISM»
Этот способ дублирует предыдущий, разница лишь в том, что необходимые компоненты устанавливаются через консоль.
- Запустите от имени администратора «PowerShell» из контекстного меню кнопки «Пуск». Вместо «PowerShell» можно использовать классическую «Командную строку».
- Выполните одну за другой следующие две команды:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Вместо указанных выше, вы также можете использовать команды Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
и Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
(в «PowerShell») — результат будет тот же. Для применения настроек потребуется перезагрузка компьютера, после чего можно устанавливать дистрибутивы Linux из магазина Windows.
Способ 3: Команда установки
Все новые версии и сборки Windows 10 поддерживают установку WSL одной командой. Этот способ является наименее затратным по времени и наиболее простым.
- Запустите от имени администратора «PowerShell» или «Командную строку».
- Выполните команду
wsl --install
.
Windows 10 сама включит необходимые компоненты и установит актуальную на текущий момент версию подсистемы. Также автоматически будет загружен и установлен дистрибутив по умолчанию – Linux Ubuntu. Чтобы установить другой дистрибутив, сделайте следующее:
- Сначала выведите в запущенной консоли список доступных дистрибутивов командой
wsl --list --online
. - Установите WSL c нужным дистрибутивом, выполнив команду
wsl --install -d name
, где name – название дистрибутива.
Дополнительные рекомендации
После установки WSL рекомендуется выполнить некоторые настройки и проверить доступность обновлений подсистемы.
- На момент написания этой инструкции существуют две версии «Подсистемы Windows для Linux» – 1.0 и 2.0. Проверить версию установленной подсистемы можно командой
wsl -l -v
в запущенной «PowerShell». - Установите последние обновления подсистемы, выполнив в запущенной с правами администратора консоли команду
wsl --update
. - Чтобы инсталлировать вторую версию используемой по умолчанию, выполните команду
wsl --set-default-version 2
. - Скачайте и установите обновление ядра Linux для WSL2 с сайта Microsoft.
Скачать обновление ядра WSL2 с официального сайта - Инсталлятор представлен исполняемым файлом MSI – запустите его двойным кликом и проследуйте указаниям мастера.
Если при инсталляции обновления ядра появится ошибка, вероятнее всего, версия Windows 10 не поддерживает данное обновление. В этом случае рекомендуется сначала установить последние обновления для самой операционной системы.
Читайте также: Обновление Windows 10 до последней версии
Наша группа в TelegramПолезные советы и помощь
Время на прочтение3 мин
Количество просмотров18K
Корпорация Microsoft запустила тестирование запуска Linux-приложений с графическим интерфейсом в ОС Windows. Реализовано это на основе подсистемы WSL2 (Windows Subsystem for Linux), которую компания разрабатывает много месяцев. Отмечается, что приложения полностью интегрируются с рабочим столом Windows, включая размещение ярлыков в меню Start, воспроизведение звука, запись с микрофона, аппаратное ускорение OpenGL. Также реализовано отображение информации о ПО в панели задач, между программами можно переключаться по Alt+Tab, данные между приложениями Linux и Windows можно копировать при помощи буфера обмена.
Интерфейс Linux-приложений на основной рабочий стол ОС Windows выводится при помощи композитного менеджера RAIL-Shell. Он использует протокол Wayland и основан на кодовой базе Weston. Вывод реализован посредством бэкенда RDP-RAIL (RDP Remote Application Integrated Locally), который не выполняет отрисовку рабочего стола, а перенаправляет отдельные поверхности по каналу RDP RAIL для отображения на основном рабочем столе Windows. X11-приложения запускаются при помощи XWayland.
Остальные подробности
Компания использует интересный способ вывода звука — при помощи сервера PulseAudio. Сервер взаимодействует с операционной системой посредством протокола RDP (для вывода звука применяется плагин rdp-sink, а для ввода — rdp-source). Этот сервер и XWayland помещены в универсальный мини-дистрибутив WSLGd. В его состав входят компоненты для абстрагирования как графической, так и звуковой подсистем.
Базируется все это на дистрибутиве CBL-Mariner Linux, который Microsoft тоже использует — в своей облачной инфраструктуре. Мини-дистрибутив запускается при помощи механизмов виртуализации. В то же время совместный доступ между гостевым окружением с Linux и хост-системой Windows реализован на базе virtio-fs.
Разработчики выбрали FreeRDP в качестве RDP-сервера, который запускается в Linux-окружении WSLGd. Для той же задачи в ОС Widnows используется mstsc. Обработчик WSLDVCPlugin применяется для определения имеющихся графических Linux-приложений и их отображения в меню Windows. Он позволяет взаимодействовать с дистрибутивами Linux в окружении WLS2 посредством предоставления сокетов, которые обрабатывают запросы по протоколам Wayland, X11 и PulseAudio. Подготовленные для WSLGd обвязки распространяются под лицензией MIT.
Как получить доступ к новым возможностям?
Для этого нужно установить Windows 10 Insider Preview как минимум версии 21362. Разработчики обещают, что в ближайшем будущем для установки WSLGd будет достаточно и обычных выпусков Windows, при этом пользователю не требуется участвовать в программе Insider Preview.
Устанавливается WSLGd при помощи команды «wsl —install», например, для Ubuntu — «wsl —install -d Ubuntu». В случае уже существующих окружений WSL2, установка WSLGd осуществляется через команду «wsl —update» (поддерживаются только окружения WSL2, в которых применяется ядро Linux, а не трансляция вызовов). Графические приложения устанавливаются через штатный пакетный менеджер дистрибутива.
WSLGd позволяет работать лишь с 2D-графикой. Если нужна 3D-графика на основе OpenGL, используется иной механизм — виртуальный GPU (vGPU). Драйверы для него предоставляются в трех вариантах — для чипов AMD, Intel и NVIDIA. Работа с графикой выполняется путем предоставления прослойки с реализацией OpenGL поверх DirectX 12. Прослойка оформлена в виде драйвера d3d12, вошедшего в основной состав Mesa 21.0, и развиваемого совместно с компанией Collabora.
В Linux виртуальный GPU реализован на основе устройства /dev/dxg с сервисами, повторяющими WDDM (Windows Display Driver Model) D3DKMT ядра Windows. В этой системе драйвер организует соединение с физическим видеочипом через VM bus. У приложений Linux тот же уровень доступа к GPU, что и у родных приложений для Windows, разделения ресурсов между Windows и Linux нет.
В ходе тестирования производительности системы на базе Surface Book Gen3 с GPU Intel выяснилось, что тест Geeks3D GpuTest показывает 19 FPS в Windows, 18 FPS — в Linux. В Mesa же, при программной отрисовке — всего 1 FPS.
Немного бэкграунда
WSL2 стало доступным для пользователей Windows с 20 августа 2020 года — именно тогда Microsoft выпустила кумулятивное обновление KB4566116.
После его установки пользователи ОС Windows 10 версии 1903 и версии 1909 стали тестировать WSL2, причем отзывы были в большинстве своем положительные. До 20 августа была доступна лишь WSL первой версии, и только в Windows 10 версии 2004.
Что касается первой версии WSL, то работа над ней началась несколько лет назад. Официальное заявление о подсистеме было сделано на конференции Microsoft Build 2016. Анонс был коротким — тогда о возможностях WSL рассказали в течение пары минут. Но он вызвал такой ажиотаж и наплыв трафика на страницу с анонсом, что у организаторов конференции даже возникло подозрение в том, что кто-то организовал DDoS-атаку.
C тех пор WSL эволюционировала очень сильно, и сейчас подсистема продолжает развиваться.
Windows 10 уже как несколько лет умеет использовать GNU/Linux-среду и запускать терминальные программы благодаря Windows Subsystem for Linux (WSL). В свежей инсайдерской сборке Windows 10 WSL расширила свои возможности — теперь пользователи могут запускать Linux-приложения с графическим интерфейсом (GUI). Раньше это можно было делать только при помощи сторонних инструментов. Смотрим, насколько хорошо работает новая фича и как её попробовать уже сейчас.
- В тему: Как выполнять Linux-команды внутри Windows — официальный и сторонние способы
Как работают Linux-программы внутри Windows
По словам разработчиков, X-сервер теперь не приходится запускать вручную. Вместо этого автоматически стартует дистрибутив-компаньон WSLGd, содержащий Wayland, X-сервер и PulseAudio-сервер. С его помощью происходит коммуникация приложений с Windows. Примечательно, что за основу взят дистрибутив CBL-Mariner, разработанный изначально для облачной инфраструктуры Microsoft. После закрытия сессии этот компаньон закрывается.
Возможность расширить Windows Subsystem for Linux таким образом появилась за счёт полного внедрения ядра Linux в ОС от Microsoft. Приложения полноценно интегрированы: они отображаются на панели задач и в «Пуске», между ними можно переключаться сочетанием Alt+Tab, буфер обмена общий.
Одно из преимуществ нативной поддержки GUI-приложений — полноценная работа со звуком. Программы, запущенные в WSL, могут принимать данные с микрофона и выводить аудио. Более того, есть поддержка 3D-графики с ускорением за счёт GPU. Это будет полезно в программах для работы с трёхмерной графикой.
Как запустить Linux-программы в Windows 10
Чтобы запускать GUI-приложения для Linux в Windows 10, надо установить инсайдерскую сборку из Dev-ветки под номером 21364 или выше. После этого потребуется активировать WSL 2 и скачать из Microsoft Store нужный дистрибутив.
Шаг 1. Запустите PowerShell от имени администратора и включите компонент WSL:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Шаг 2. Включите компонент для WSL 2:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
После этого скачайте и установите пакет обновления с официального сайта.
Шаг 3. Перезагрузите компьютер и введите следующую команду:
wsl —set-default-version 2
Шаг 4. После перезагрузки откройте фирменный магазин приложений Microsoft Store и найдите GNU/Linux-дистрибутив, например, Ubuntu.
Шаг 5. Как только установка завершится, найдите дистрибутив в меню «Пуск» и запустите его.
Шаг 6. Пройдите этап первоначальной настройки, введя имя нового пользователя и придумав пароль.
Шаг 7. Теперь можно устанавливать и запускать Linux-приложения. Для запуска GNU/Linux-окружения открывайте дистрибутив из меню «Пуск» или пишите wsl в PowerShell или командной строке.
Какие приложения я протестировал и как они работают
Я запустил несколько программ: клиент Spotify, браузер Firefox, редактор текста gedit и даже Steam. Все, за исключением последнего, работают отлично. Если ранее с использованием неофициального метода я встречал регулярные вылеты и ошибки, то сейчас могу спокойно пользоваться программами так, как будто они запущены нативно.
Spotify воспроизводит звук так, как и задумано, мне не пришлось дополнительно настраивать что-либо. Firefox работает быстро и плавно, правда, есть проблема в виде медленного скролла — она встречается и под нативным Линуксом. gedit не только правильно работает с файлами, но и отображает всю файловую систему подсистемы при нажатии кнопки Open.
Steam обрадовал и разочаровал одновременно. Мне удалось открыть свою библиотеку игр и даже скачать одну из них. Но остальные вкладки остались недоступны: магазин, страница и настройки просто не открывались. Игра art of rally, которую я скачал для проверки, запустилась, но её фреймрейт ограничивался парой FPS. Впрочем, в реальной жизни такой юзкейс не встретится — это было по большей части испытание возможностей WSL.
Бенчмарк Geekbench 5.4.0 выдал приблизительные результаты как на Windows и нативной Ubuntu, так и на Ubuntu через WSL 2.
А вот в тесте Compute, использующем GPU, WSL 2 выдал ошибку, несмотря на установленный специальный драйвер.
Вывод
Возможность запускать GUI-приложения прямо в Windows — огромный шаг для системы. Пользователям теперь будет куда проще работать с различными программами, часть из которых эксклюзивна для той или иной системы. А бесшовная интеграция Linux-программ в ОС от Microsoft снижает порог входа и позволяет использовать новую фичу даже не самым опытным юзерам.