Время на прочтение
9 мин
Количество просмотров 82K
Введение
Данная статья предназначена вниманию системных администраторов, которые подготавливают типовые рабочие места на компьютерах под управлением ОС Windows 10, в том числе для разработчиков ПО.
Следует отметить, что существует определенная проблема, связанная с невозможностью интеграции ПО, полученного в on-line магазине Microsoft Store для использования в пользовательском образе Windows 10. Не вдаваясь в подробности уточню, что данная проблема связана с тем, что установленные из Microsoft Store программы связываются со служебной учетной записью Administrator, и при завершении создания пользовательского образа утилитой sysprep
возникают обусловленные этим обстоятельством ошибки.
Рассмотренный в данной статье способ позволить избежать такой проблемы при подготовке образа ОС Windows 10 с предварительно настроенной подсистемой WSL2, а также с заранее подготовленным и настроенным образом ОС Ubuntu 20.04 с GUI KDE Plasma, который в свою очередь может иметь свой набор пользовательского ПО.
В сети Интернет имеется большое количество примеров и руководств по настройке подсистем WSL (т.е. WSL1 и сравнительно новой WSL2), с настройкой GUI интерфейса для linux систем на базе ОС начиная с версии Ubuntu 16.04 и заканчивая Ubuntu 20.04, но в основном это касалось рабочих столов на основе т.н. «легковесного» xfce4, имеющий вполне объяснимые ограничения в пользовательских настройках. Но что касается GUI KDE Plasma для Ubuntu 20.04, в сети не нашлось какой-либо существенной информации. Но именно этот вариант предоставляет конечному пользователю практически неограниченный набор настроек как внешнего вида системы, так и настроек оборудования, конечно с учетом текущих возможностей интеграции linux-систем, реализованных в подсистеме WSL2.
Установка требуемого набора ПО и настройка WSL2
Проверяем текущую версию Windows, для этого в строке поиска Windows вводим команду winver
и получаем примерно следующее:
Важно, чтобы ОС имела версию 1903 или 1909 (указанные версии ОС должны быть с установленным накопительным обновлением KB4566116), либо 2004 (номер сборки не менее чем 19041), остальная информация не имеет значения. Если номер версии меньше, то для корректного повторения результатов, изложенных в данной статье, рекомендуется обновиться до последней версии Windows.
Для удобства дальнейших действий устанавливаем бесплатный Windows Terminal, используя Microsoft Store (также существует возможность загрузки из других источников):
Устанавливаем X Server X410 через тот же Microsoft Store, это ПО платное, но имеется бесплатный период в 15 дней, что вполне достаточно для проведения различных тестов.
В качестве бесплатной альтернативы X410 скачиваем и устанавливаем X-сервер VcXsrv.
В любом удобном месте на диске создаем каталог, в котором будем хранить наши файлы. В качестве примера создадим каталог C:\wsl
.
Скачиваем и устанавливаем автономный установщик Ubuntu 20.04, распаковываем полученный файл с помощью архиватора (например 7-zip). Переименовываем распакованный каталог с длинным именем Ubuntu_2004.2020.424.0_x64
во что-то более приемлемое, например Ubuntu-20.04
и копируем его в каталог C:\wsl
(далее по тексту просто \wsl
).
Скачиваем и распаковываем в каталог \wsl
кроссплатформенный звуковой сервер PulseAudio v.1.1., также вносим исправления в его конфигурационные файлы.
В файле \wsl\pulseaudio-1.1\etc\pulse\default.pa
в разделе Load audio drivers statically
редактируем строку:
load-module module-waveout sink_name=output source_name=input record=0
а в разделе Network access
редактируем строку:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
В файле \wsl\pulseaudio-1.1\etc\pulse\daemon.conf
раскомментируем и изменяем строку
exit-idle-time = -1
Настраиваем подсистему WSL2 в соответствии с документацией Microsoft. Единственное замечание — дистрибутив Ubuntu мы уже скачали, и устанавливать его будем на следующем шаге. В основном, настройка сводится к включению дополнительных компонентов «Подсистема Windows для Linux» и «Платформа виртуальной машины», и последующей перезагрузки для применения изменений в настройках компьютера:
При необходимости скачиваем и устанавливаем пакет обновлений для ядра Linux в WSL2.
Запускаем Windows Terminal и выбираем режим работы Command Prompt нажатием клавиш Ctrl+Shift+2
.
В первую очередь устанавливаем режим работы WSL2, для этого вводим команду:
wsl --set-default-version 2
Переходим в каталог с автономным загрузчиком Ubuntu 20.04, в моем случае это \wsl\Ubuntu-20.04
и запускаем файл ubuntu2004.exe
. При появлении запроса имени пользователя указываю имя engineer
(можно ввести любое другое имя), ввести свой пароль и подтвердить введенный пароль для указанной учетной записи:
Появилась строка приглашения терминала, ядро Ubuntu 20.04 установлено. Проверим правильность настройки режима WSL2, для этого в Windows Terminal выбираем закладку Windows PowerShell и вводим команду:
wsl -l -v
результат выполнения должен быть такой:
Настраиваем брандмауэр Microsoft Defender, т.е. отключаем его для общедоступной сети:
Настройка Ubuntu 20.04
В Windows Terminal снова выбираем закладку Command Prompt и устанавливаем обновления для Ubuntu 20.04. Для этого в командной строке вводим:
sudo apt update && sudo apt upgrade –y
Устанавливаем рабочий стол KDE Plasma:
sudo apt install kubuntu-desktop -y
установка занимает до 30 минут в зависимости от производительности компьютера и пропускной способности канала доступа в Internet, при появлении запроса установщика подтверждаем OK
.
Устанавливаем русскую локализацию и словари Ubuntu 20.04. Для этого в командной строке вводим:
sudo apt install language-pack-ru language-pack-kde-ru -y
sudo apt install libreoffice-l10n-ru libreoffice-help-ru -y
sudo apt install hunspell-ru mueller7-dict -y
sudo update-locale LANG=ru_RU.UTF-8
sudo dpkg-reconfigure locales # примечание: выбираем ru_RU.UTF-8 UTF-8, см. скриншоты ниже.
sudo apt-get install --reinstall locales
Добавляем последнюю версию рабочего стола KDE Plasma:
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt update && sudo apt full-upgrade -y
Добавляем свой набор консольных приложений, например mc
и neofetch
:
sudo apt install mc neofetch -y
Проверяем, что получилось, вводим в командную строку neofetch
, см. скриншот:
Редактируем конфигурационный файл WSL /etc/wsl.conf
:
sudo nano /etc/wsl.conf
в открывшееся пустое окно текстового редактора копируем текст:
[automount]
enabled = true
root = /mnt
options = «metadata,umask=22,fmask=11»
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
сохраняем изменения (Ctrl+O
), подтверждаем операцию и выходим из текстового редактора (Ctrl+X
).
Экспортируем настроенный образ Ubuntu-20.04 в созданный нами каталог \wsl
. Для этого в Windows Terminal снова выбираем закладку Windows PowerShell и вводим команду:
wsl --export Ubuntu-20.04 c:\wsl\Ubuntu-plasma-desktop
созданный образ поможет нам автоматизировать операции запуска/переустановки настроенной Ubuntu 20.04, при необходимости позволит легко перенести на другой компьютер.
Подготовка bat-файлов и ярлыков на рабочий стол Windows
С помощью редактора Notepad++ создаем bat-файлы (обязательно в кодировке OEM-866 для корректного вывода символов кириллицы):
Файл Install-Ubuntu-20.04-plasma-desktop.bat
— предназначен для автоматизации первоначальной установки созданного образа Ubuntu 20.04 на компьютере с уже настроенной подсистемой WSL2 и X-сервером. Если имя пользователя и пароль отличается от указанных в примере, то необходимо внести соответствующие изменения в этот bat-файл:
@echo off
wsl --set-default-version 2
cls
echo Ожидайте окончания установки дистрибутива Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:\wsl c:\wsl\Ubuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Дистрибутив Ubuntu-20.04 успешно установлен!
echo Не забудьте сменить учетную запись по умолчанию «root» на существующую учетную запись пользователя,
echo либо используйте предустановленную учетную запись «engineer», пароль: «password».
pause
Файл Reinstall-Ubuntu-20.04-plasma-desktop.bat
— предназначен для переустановки подготовленного образа Ubuntu 20.04 на компьютере.
@echo off
wsl --unregister Ubuntu-20.04
wsl --set-default-version 2
cls
echo Ожидайте окончания переустановки дистрибутива Ubuntu-20.04...
wsl --import Ubuntu-20.04 c:\wsl c:\wsl\Ubuntu-plasma-desktop
wsl -s Ubuntu-20.04
cls
echo Дистрибутив Ubuntu-20.04 успешно переустановлен!
pause
Файл Set-default-user.bat
— для установки пользователя «по умолчанию».
@echo off
set /p answer=Введите существующую учетную запись в Ubuntu (engineer):
c:\wsl\Ubuntu-20.04\ubuntu2004.exe config --default-user %answer%
cls
echo Учетная запись пользователя %answer% в Ubuntu-20.04 установлена по умолчанию!
pause
Файл Start-Ubuntu-20.04-plasma-desktop.bat
— собственно запуск рабочего стола KDE Plasma.
@echo off
echo ===================================== Внимание! ============================================
echo Для корректной работы GUI Ubuntu 20.04 в WSL2 необходимо использовать X Server.
echo Примечание: в случае использования VcXsrv Windows X Server необходимо раскомментировать
echo строки в файле Start-Ubuntu-20.04-plasma-desktop.bat, содержащие "config.xlaunch" и
echo "vcxsrv.exe", и закомментировать все строки, содержащие "x410".
echo ============================================================================================
rem start "" /B "c:\wsl\vcxsrv\config.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:\wsl\pulseaudio-1.1\bin\pulseaudio.exe" --use-pid-file=false -D > nul
c:\wsl\Ubuntu-20.04\Ubuntu2004.exe run "if [ -z \"$(pidof plasmashell)\" ]; then cd ~ ; export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 ; setxkbmap us,ru -option grp:ctrl_shift_toggle ; export LIBGL_ALWAYS_INDIRECT=1 ; export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}') ; sudo /etc/init.d/dbus start &> /dev/null ; sudo service ssh start ; sudo service xrdp start ; plasmashell ; pkill '(gpg|ssh)-agent' ; fi;"
rem taskkill.exe /F /T /IM vcxsrv.exe > nul
taskkill.exe /F /T /IM x410.exe > nul
taskkill.exe /F /IM pulseaudio.exe > nul
Файл Start-Ubuntu-20.04-terminal.bat
— запуск графического терминала без рабочего стола KDE Plasma.
@echo off
echo ===================================== Внимание! ============================================
echo Для корректной работы GUI Ubuntu 20.04 в WSL2 необходимо использовать X Server.
echo Примечание: в случае использования VcXsrv Windows X Server необходимо раскомментировать
echo строки в файле Start-Ubuntu-20.04-plasma-desktop.bat, содержащие "config.xlaunch" и
echo "vcxsrv.exe", и закомментировать все строки, содержащие "x410".
echo ============================================================================================
rem start "" /B "c:\wsl\vcxsrv\config.xlaunch" > nul
start "" /B x410.exe /wm /public > nul
start "" /B "c:\wsl\pulseaudio-1.1\bin\pulseaudio.exe" --use-pid-file=false -D > nul
c:\wsl\Ubuntu-20.04\Ubuntu2004.exe run "cd ~ ; export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 ; export LIBGL_ALWAYS_INDIRECT=1 ; setxkbmap us,ru -option grp:ctrl_shift_toggle ; export PULSE_SERVER=tcp:$(grep nameserver /etc/resolv.conf | awk '{print $2}') ; sudo /etc/init.d/dbus start &> /dev/null ; sudo service ssh start ; sudo service xrdp start ; konsole ; pkill '(gpg|ssh)-agent' ;"
taskkill.exe /F /T /IM x410.exe > nul
rem taskkill.exe /F /T /IM vcxsrv.exe > nul
taskkill.exe /F /IM pulseaudio.exe > nul
Также для удобства использования в каталоге \wsl
подготавливаем ярлыки, указывающие на соответствующие bat-файлы. После чего содержимое каталога \wsl
выглядит следующим образом:
Запуск рабочего стола KDE Plasma
Проверяем, что все подготовительные действия выполнены, пробуем запустить ярлык Plasma-desktop
. Появляется запрос пароля, вводим пароль для учетной записи и… окно закрывается. В первый раз это нормально. Пробуем еще раз — и видим знакомую панель задач KDE Plasma. Настраиваем требуем внешний вид панели задач, на примере для удобства использования панель переносится в правую часть экрана и центрируется. Проверяем настройки локализации, при необходимости добавляем русский язык:
При необходимости выносим ярлыки для установленных linux-приложений на панель задач KDE Plasma.
Если Ubuntu 20.04 требует выйти из учетной записи пользователя для применения изменений в настройках, или Вам необходимо перезагрузить ОС, для этого в Windows Terminal введите команду:
wsl -d Ubuntu20.04 --shutdown
С помощью ярлыка Plasma-desktop
или Konsole
можно запустить GUI KDE Plasma Ubuntu 20.04. Например, установим с помощью Konsole
графический редактор GIMP:
После окончания установки запускаем из Konsole
графический редактор GIMP:
GIMP работает, что и требовалось проверить.
А вот как работают различные linux-приложения в KDE Plasma в WSL2:
настроенная панель задач KDE Plasma находится в правой части экрана. а видео в окне Firefox воспроизводится со звуком.
При необходимости можно настроить доступ к Ubuntu20.04 по SSH
и RDP
, для этого необходимо установить соответствующие службы командой:
sudo apt install ssh xrdp -y
примечание: для включения парольного доступа по SSH
необходимо отредактировать файл /etc/ssh/sshd_config
, а именно параметр PasswordAuthentication no
необходимо установить в значение PasswordAuthentication yes
, сохранить изменения и перезагрузить Ubuntu20.04.
При каждом запуске Ubuntu20.04 меняется внутренний ip-адрес, перед настройкой удаленного доступа необходимо уточнить текущий ip-адрес с помощью команды ip a
:
Соответственно, этот ip-адрес необходимо внести в настройки сессий SSH
и RDP
перед запуском.
Вот так выглядит удаленный доступ по SSH
с помощью MobaXterm:
А вот так выглядит удаленный доступ по RDP
:
Использование X-сервера vcxsrv вместо x410
Запускаем и настраиваем vcxsrv
, внимательно устанавливаем соответствующие флажки:
Сохраняем настроенную конфигурацию в каталоге \wsl\vcxsrv
со стандартным именем config.xlaunch
.
Редактируем bat-файлы Start-Ubuntu-20.04-plasma-desktop.bat
и Start-Ubuntu-20.04-terminal.bat
в соответствии с имеющимися в них инструкциями.
Запускаем ярлык Plasma-desktop
, и вот что получаем:
Рабочий стол KDE Plasma полностью закрывает рабочий стол Windows, для переключения между окнами linux- и windows-приложений используем известную комбинацию клавиш Alt+Tab
, что не совсем удобно.
Кроме того, выяснилась неприятная особенность X-сервера vcxsrv
– он «падает» при запуске некоторых приложений, в частности того же GIMP или LibreOffice Writer. Возможно следует подождать, когда разработчики уберут замеченные «баги», но это не точно… Так что для получения приемлемых результатов лучше использовать X Server Microsoft x410.
Заключение
Все-таки надо отдать должное компании Microsoft, продукт WSL2 получился вполне рабочим, и на мой неискушенный взгляд — весьма удачным. И насколько мне известно, разработчики продолжают усиленно его «допиливать», и возможно — через годик-другой, данная подсистема предстанет во всей своей функциональной полноте.
1. Overview
Windows Subsystem for Linux (WSL) allows you to install a complete Ubuntu terminal environment in minutes on your Windows machine, allowing you to develop cross-platform applications without leaving windows.
What you will learn:
- How to enable and install WSL on Windows 10 and Windows 11
- How to install and run a simple graphical application that uses WSLg
- How to install and run a much more advanced application that uses WSLg
Note: As of November 2022, WSL is now available as a Windows Store app for both Windows 10 and Windows 11. This means previous tutorials related to installing WSL as a Windows feature are no longer required.
What you will need:
- A Windows 10 or Windows 11 physical or virtual machine with all the updates installed
2. Install WSL
WSL can be installed from the command line. Open a powershell prompt as an Administrator (we recommend using Windows Terminal) and run:
wsl --install
This command will enable the features necessary to run WSL and also install the default Ubuntu distribution of Linux available in the Microsoft Store. It is recommended to reboot your machine after this initial installation to complete the setup.
You can also install WSL from the Microsoft Store.
Installation of WSL from the Microsoft Store
Duration: 3:00
The WSL app is availble to install directly from the Microsoft Store like other Windows applications.
To install the WSL application from the Microsoft Store, open it and search for Windows subsystem.
Click on the item Windows Subsystem for Linux to open the corresponding application page.
Click on Get to download and install the application.
Upon installation, you can click on Open, but it will not do much since there is no Linux distribution installed.
However, if you really want to open the WSL application without installing a distribution, you’ll see a nice and short help message that you must follow in order to make something useful with WSL:
You can now proceed with the installation of Ubuntu.
3. Download Ubuntu
WSL supports a variety of Linux distributions including the latest Ubuntu release, Ubuntu 20.04 LTS and Ubuntu 18.04 LTS. You can find them by opening the Microsoft Store app and searching for Ubuntu.
Choose the distribution you prefer and then select Get.
Which version should I choose?
There are three types of Ubuntu releases published to the Microsoft Store:
- Ubuntu with a version number e.g. Ubuntu 20.04.x. This will always be 20.04 and upgrades won’t be proposed.
- Ubuntu without a version number. This is the latest LTS version of Ubuntu after the first point release. At the time of writing, it is Ubuntu 22.04. It will remain Ubuntu 22.04 until the first point release of the next LTS release of Ubuntu, for example 24.04.1 in 2024.
- Ubuntu Preview is a daily build of the latest development version of Ubuntu. You should install it if you want to live on the edge but not for production workload as it doesn’t receive the same amount of QA as stable releases and may break at any time.
Ubuntu will then install on your machine.
Once installed, you can either launch the application directly from the store or search for Ubuntu in your Windows search bar.
Install Ubuntu from the command line
It is possible to install the same Ubuntu applications available on the Windows Store directly from the command line.
In a Powershell terminal you can run:
wsl --list --online
to see all available distros.
You can install a distro using the NAME by running:
wsl --install -d Ubuntu-20.04
Use wsl -l -v
to see all your currently installed distros and which version of WSL they are using:
4. Configure Ubuntu
Congratulations, you now have an Ubuntu terminal running on your Windows machine!
Once it has finished its initial setup, you will need to create a username and password (this does not need to match your Windows user credentials).
Finally, it’s always good practice to install the latest updates with the following commands, entering your password when prompted.
sudo apt update
Then
sudo apt full-upgrade
Press Y when prompted.
(Optional) Enable systemd
In September 2022, Microsoft announced support for systemd in WSL. This long-awaited upgrade to WSL unlocks a huge number of quality of life features for managing processes and services. This includes snapd support, which enables users to take advantage of all of the tools and apps available on snapcraft.io.
To enable systemd you will need make a small modification to /etc/wsl.conf in your Ubuntu distribution.
Run `sudo nano /etc/wsl.conf’ to open the file and insert the following lines:
[boot]
systemd=true
Then restart your distro by running wsl --shutdown
in powershell and relaunching.
5. Install and use a GUI package
WSL2 comes with WSLg enabled by default. WSLg allows you to run graphical linux applications.
To check that you have the latest package lists, type:
sudo apt update
Then, start with some basic X11 applications:
sudo apt install x11-apps
To run the xeyes, a “follow the mouse” application, type:
xeyes &
The & at the end of the line will execute the command asynchronously. In other words, the shell will run the command in the background and return to the command prompt immediately.
The first launch of a GUI application takes a few seconds while WSL is initializing the graphics stack. Next executions of GUI applications are much faster.
Leave xeyes opened and run the calculator xcalc with:
xcalc
When you move the cursor over the calculator, xeyes follows the cursor. This shows that several GUI applications can interact together.
Note that applications running under WSLg display a little penguin at the bottom right corner of their icons in the Windows taskbar. That’s one way you can distinguish applications running on Windows or Ubuntu (besides the window decoration and styling).
Close xeyes and xcalc by pressing the cross icon on the top right corner of each X application window.
Xcalc and xeyes are very basic X Windows applications but there are plenty of choices in the Linux ecosystem corresponding to your needs and available out of the box on Ubuntu.
In the following example, we will use GNU Octave to perform numerical computation.
We will use it to calculate and draw a beautiful Julia fractal. The goal here is to use Octave to demonstrate how WSLg works, not to go through the theory of fractals.
First thing is to install the software like we did for x11-apps, from the terminal prompt run:
sudo apt install octave
Then start the application:
octave --gui &
Do not forget the ampersand & at the end of the line, so the application is started in the background and we can continue using the same terminal window.
In Octave, click on the New script icon to open a new editor window and copy/paste the following code:
#{
Inspired by the work of Bruno Girin ([Geek Thoughts: Fractals with Octave: Classic Mandelbrot and Julia](http://brunogirin.blogspot.com/2008/12/fractals-with-octave-classic-mandelbrot.html))
Calculate a Julia set
zmin: Minimum value of c
zmax: Maximum value of c
hpx: Number of horizontal pixels
niter: Number of iterations
c: A complex number
#}
function M = julia(zmin, zmax, hpx, niter, c)
%% Number of vertical pixels
vpx=round(hpx*abs(imag(zmax-zmin)/real(zmax-zmin)));
%% Prepare the complex plane
[zRe,zIm]=meshgrid(linspace(real(zmin),real(zmax),hpx),
linspace(imag(zmin),imag(zmax),vpx));
z=zRe+i*zIm;
M=zeros(vpx,hpx);
%% Generate Julia
for s=1:niter
mask=abs(z)<2;
M(mask)=M(mask)+1;
z(mask)=z(mask).^2+c;
end
M(mask)=0;
end
This code is the function that will calculate the Julia set.
Save it to a file named julia.m. Since it is a function definition, the name of the file must match the name of the function.
Open a second editor window with the New Script button and copy and paste the following code:
Jc1=julia(-1.6+1.2i, 1.6-1.2i, 640, 128, -0.75+0.2i);
imagesc(Jc1)
axis off
colormap('default');
This code calls the function defined in julia.m. You can later change the parameters if you want to explore the Julia fractal.
Save it to a file named juliatest.m.
And finally, press the button Save File and Run.
After a few seconds, depending on your hardware and the parameters, a Julia fractal is displayed.
Like Octave, this window is displayed using WSLg completely transparently to the user.
Enjoy!
6. Enjoy Ubuntu on WSL!
That’s it! In this tutorial, we’ve shown you how to install WSL and Ubuntu on Windows 11, set up your profile, install a few packages, and run a graphical application.
We hope you enjoy working with Ubuntu inside WSL. Don’t forget to check out our blog for the latest news on all things Ubuntu.
Further Reading
- Enabling GPU acceleration on Ubuntu on WSL2 with the NVIDIA CUDA Platform
- Setting up WSL for Data Science
- Working with Visual Studio Code on Ubuntu on WSL2
- Microsoft WSL Documentation
- Whitepaper: Ubuntu WSL for Data Scientists
- WSL on Ubuntu Wiki
- Ask Ubuntu
Was this tutorial useful?
Thank you for your feedback.
- Linux GUI apps are installed using the
sudo apt-get install
command inside the WSL distro. - Once the GUI app is installed, you can launch it from the Start menu or use a command.
- The feature requires installing WSL2 with the
wsl --install
command on build 21364 or higher.
On Windows 10, you can now install Linux GUI apps (almost natively) through Windows Subsystem for Linux (WSL), and these instructions will show you how.
Although you could run Linux apps on Windows 10 with WSL for a long time, the system was limited to command-line tools and applications. However, starting with build 21364 and higher releases (with a special update to the WSL integration), Microsoft is finally bringing GUI (graphical user interface) support to run your favorite Linux applications with the mouse and keyboard.
The new feature is to develop and test your applications on Linux without needing a virtual machine, but you can use it for anything. The implementation even includes support for speakers and microphones, so if you install a media app, the peripherals will pass through and appear in the app. GPU accelerated 3D graphics are also supported to run any app that needs to do complex 3D rendering leveraging OpenGL.
When using this feature, there is no need to start an X server manually since WSL automatically starts a “companion system distro,” which includes a Wayland, X server, pulse audio server, and all the required components. Then after you close the app and the WSL session, the system distro will end automatically.
This guide will teach you the steps to download and install graphical Linux applications on Windows 10. You can also watch this video tutorial with the step-by-step to complete this process.
- Install Linux GUI apps via WSL on Windows 10
- Install or update WSL on Windows 10
To install a Linux GUI app on Windows 10, use these steps:
-
Open Start on Windows 10.
-
Search for Ubuntu (or another distro) and click the top result to open the Linux distro.
-
Type the following command to update the package distribution and press Enter:
sudo apt-get update
-
Type the following command to install a Linux GUI app on Windows 10 and press Enter:
sudo apt-get install APP-NAME -y
In the command, replace APP-NAME with the graphical app you want to install.
This example installs the gedit text editor app:
sudo apt-get install gedit -y
-
Confirm your Linux account password and press Enter (if applicable).
Once you complete the steps, the app will install and register in the Start menu, which means that you can launch the app by running the app’s name in the Windows Subsystem for Linux (WSL) console or from the Start menu.
The above instructions outline the steps to install a simple app from known repositories, but depending on the app, the instructions may differ. The good news is that the installation process is the same as any other Linux application. You can follow the developer steps to install virtually any application, such as VLC, Audacity, web admin, etc.
If you launch the Linux GUI app from the Windows 10 Start menu, you will find the entries in the “Recently added” list, or you can also find them inside the (distro name) folder below the Linux distro entry.
As you launch the app, the virtual machine will spin, and it will run (in a few seconds) without needing to open the WSL console. You will also notice that the taskbar will show the icon with a Linux logo, indicating that you are not running a Windows 10 application.
The experience of using a graphical Linux app on Windows 10 feels native, but it’s not. The app renders with all the Linux visual styles for the frame, menus, and other elements, and there is even a shadow around the edge, and every window works independently.
However, it is a remote desktop connection, which Microsoft is leveraging with the RemoteApp feature built into the operating system.
Install or update WSL on Windows 10
The ability to run Linux GUI apps requires the Windows Subsystem for Linux 2 integration, which means you must have the latest feature and distribution version to install and run your applications.
If you have WSL2 already installed, then you will need to update the feature.
Before installing or updating WSL2, the device must have the Windows 10 build 21364 or higher release.
Also, as a prerequisite, you must install the driver to enable a virtual GPU (vGPU) to use hardware-accelerated OpenGL rendering before installing applications. Here are the download links:
- NVIDIA GPU driver.
- Intel GPU driver.
- AMD GPU driver.
Install WSL2 on Windows 10
These instructions will show you how to install WSL2 and the Ubuntu Linux distribution to get started running GUI apps.
To install WSL2 components to run Linux GUI apps, use these steps:
-
Open Start.
-
Search for Command Prompt, right-click the top result, and select the Run as administrator option.
-
Type the following command to install the WSL 2 and press Enter:
wsl --install
Once you complete the steps, the required Linux components will install automatically, and the command will also download the latest version of the Ubuntu Linux distro.
After the installation, you only need to open the distro from the Start menu and continue with the on-screen directions to complete the setup.
You can use these instructions if you want to install a different distro to run apps instead of Ubuntu.
Update WSL2 on Windows 10
If you already have the Windows Subsystem for Linux 2 installed, confirm the system has the latest updates to run GUI apps.
To update WSL2 to download the GUI support for Linux apps, use these steps:
-
Open Start.
-
Search for Command Prompt, right-click the top result, and select the Run as administrator option.
-
Type the following command to update the Windows Subsystem for Linux 2 and press Enter:
wsl --update
-
Type the following command to force restart WSL2 and press Enter:
wsl --shutdown
After you complete the steps, the latest version of WSL will download automatically. Then you can use the above instructions to install Linux GUI apps.
Looking for more How To posts? Check out our How To Page for all the latest tips on Windows, Microsoft Teams, LinkedIn, and more!
Windows Subsystem for Linux (WSL) allows you to run Linux GUI apps on Windows 10 or 11 without the need for a virtual machine.
Prerequisites for installation
To run Linux GUI apps on WSL, you will need to install an X Server on your Windows machine. X Server is a program that allows Linux GUI apps to connect to a display on your Windows machine. Other than that, you just need to make sure you have the following:
- Windows 10 build 19044 or higher or Windows 11 running on your PC.
- An installed driver for the virtual graphics processing unit (vGPU) for Intel, AMD, or NVIDIA.
The first step is to enable the WSL feature on your Windows PC. You can click the Start menu to search for “Turn Windows features on or off,” and then check the box next to Windows Subsystem for Linux (WSL) and press Enter to enable virtualization. You will need to restart your computer for the changes to take effect.
Alternatively, you can open a Windows Terminal and type wsl --install
to install WSL if you’ve never installed it before and If you already have WSL installed on your machine, you can open Windows Terminal and type wsl --update
and then type wsl --shutdown
to restart WSL for the changes to take effect.
Next, you will need to install a Linux distribution, such as Ubuntu, on your Windows machine. You can do this by searching for the Microsoft Store app in the Start menu and then searching for Ubuntu. Once installed, launch the Ubuntu app.
In the Ubuntu terminal, you will need to install the X Server software. You can do this by running the command sudo apt-get install xorg
to install the Xorg X Server, or sudo apt-get install xserver-xorg-core
to install the Xorg X Server core package.
Once the X Server is installed, you will need to configure it to allow connections from WSL. To do this, you will need to create a new file called .xinitrc
in your home directory. This file will contain the command exec startx
or exec gnome-session
depending on your distro.
Run Linux GUI apps on Windows 10 or 11
To run a Linux GUI app, you will need to start the X Server by running the command startx
in the Ubuntu terminal. Once the X Server is up and running, you can install, launch, and test Linux GUI apps on Windows 10 or 11 using your distro’s terminal.
You can install X11 apps to help you get started. Open your distro’s terminal and type sudo apt install x11-apps -y
. X11 is the Linux windowing system and contains a collection of various Linux apps like xcalc
, xclock
, or xeyes
.
It’s worth noting that while running Linux GUI apps on Windows 10 or 11 using WSL can be useful, but it’s not a perfect solution and the performance may not be as good as if the apps were running natively on Linux. However, it’s a good way to run Linux GUI apps on a Windows machine if you need to do so for compatibility or testing purposes.
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 снижает порог входа и позволяет использовать новую фичу даже не самым опытным юзерам.
- Теперь не боюсь за Windows: точки восстановления создаются каждый день. Вот как это настроить
- Эта бесплатная утилита от Microsoft в разы ускоряет работу. Она существует ещё с Windows 95
- Эта утилита показывает, где используется выбранный файл в Windows и что мешает удалить его
- Мод Windows 10 для игр: тестирую Atlas OS, из которого вырезали лишнее ради производительности
- 10 приложений, которые нужно сразу установить на новый компьютер