Подсистема windows для linux windows 10 что это

Разбираемся с подсистемой Windows Subsystem for Linux (WSL), предназначенной для запуска Linux-программ в ОС Windows 10.

Сайт KV.BY опубликовал статью о подсистеме Windows Subsystem for Linux (WSL), предназначенной для запуска Linux-программ в ОС Windows 10. Упор в статье сделан на последнюю версию этой подсистемы WSL2.

Windows – это Linux

Как говорили древние греки, всё меняется и ничто не остаётся на месте. Многие ещё помнят те времена, когда операционная система GNU/Linux была для «Майкрософт» чем-то вроде красной тряпки для быка. Бывший руководитель рэдмондского гиганта Стив Балмер называл всё, что связано с детищем Линуса Торвальдса, не иначе как «раковой опухолью». Однако прошло не так уж и много времени после таких заявлений, и вот уже как три года корпорация «Майкрософт» является платиновым участником консорциума Linux Foundation – организации, занимающейся развитием и стандартизацией ядра Linux.

Мало того, в операционной системе Windows 10 появилась специальная программная подсистема Windows Subsystem for Linux (WSL). Эта подсистема позволяет в Windows запускать программы GNU/Linux в двоичном исполняемом формате ELF-64. В результате пользователям десятых «Форточек» становятся доступно программное обеспечение Linux-дистрибутивов, начиная со скриптов Bash и заканчивая службами наподобие Docer.

Windows Subsystem for Linux
Windows Subsystem for Linux

Поводом для произошедших перемен в политике корпорации, без сомнения, стала популярность мобильной операционной системы Android, основанной на ядре Linux. Но причина, по которой в Рэдмонде произошёл поворот в сторону Linux-сообщества, лежит не только в области мобильных операционных систем.

«Developers, developers, developers!»

Существует два способа запускать Linux-приложения в Windows. Первый способ предполагает перекомпиляцию Linux-программ в исполняемый формат exe-файлов. Благо большая часть программ Open Source является кроссплатформенной и свободно собирается под разные операционные системы. Примером первого способа можно назвать проекты Cygwin или MinGW – коллекции специально скомпилированных для Windows приложений UNIX.

Второй способ предполагает использование эмуляции и виртуализации, что позволяет запускать полноценный Linux-дистрибутив в специальной виртуальной среде. WSL – это и есть второй способ. Здесь используются как эмуляция ядра Linux, так и технологии виртуализации.

Но, прежде чем мы рассмотрим особенности второго способа, отметим, что в Windows 10 присутствует и первый способ. С недавнего времени тихо и незаметно в штатный состав «Десятки» входят три классические консольные UNIX-утилиты curl.exe, tar.exe, openssh.exe.

Утилиты curl.exe, tar.exe, openssh.exe в Windows 10
Утилиты curl.exe, tar.exe, openssh.exe в Windows 10

Выбор этих консольные утилит явно указывает на тот класс пользователей, ради которых «Майкрософт» и затеяла всю эту эпопею с запуском в «Форточках» программ Linux. Программы Curl, tar и openssh – популярные инструменты у веб-разработчиков. Именно для них и для веб-разработки создают в Рэдмонде подсистему Windows Subsystem for Linux.

Как правило, веб-разработчики используют для своей работы Windows. Однако их клиенты и заказчики в основном пользуются хостингом на Linux. И для веб-разработчики в среде Windows приходится использовать что-то вроде Denver и XAMP, или же запускать программы виртуализации VMware и VirtualBox, или же использовать на компьютере двойную загрузку с системами Linux. Или уже наметилась устойчивая тенденция для веб-разработки переходить на Mac OS, в которой имеется полноценное POSIX-ядро, позволяющее без лишних телодвижений запустить все консольные скрипты и программы, необходимых для современных веб-кодеров.

Поэтому основная цель WSL – удержать веб-разработчиков на Windows, предоставив им удобную и комфортную среду запуска всех консольных скриптов, программ и примеров с GitHub и StackOwerflow. (Кстати GitHub с недавних пор тоже под контролем Microsoft).

Главная особенность WSL

Технологиями виртуализации давно никого не удивишь. Если подсистема WSL основана на технологиях виртуализации, то возникает основной вопрос: чем Windows Subsystem for Linux лучше того же VirtualBox?

Преимущество WSL не только в том, что пользователю Windows 10 теперь не требуется устанавливать и настраивать отдельные программы для создания виртуальных машин, довольствуясь штатными средствами виртуализации. Основным достоинством WSL является очень тесная и бесшовная интеграция работы приложений Linux в системе Windows. WSL настолько глубоко интегрирует виртуальную среду выполнения Linux-программ в операционную систему Windows 10, что эти программы становятся мало отличимы от приложений Windows на уровне пользовательского интерфейса. Хотя эта бесшовность даётся не легко.

Ниже рассмотрим эту бесшовность и прозрачность более детально. Все инструкции в этой статье для работы с WSL актуальны для сборки Windows 10 18917 и более поздних версий. Проверить номер своей сборки Windows 10 можно командой «ver» в приложении «Командная строка».

Настройка WSL

Настраивать подсистему WSL практически не нужно. Виртуальная среда WSL в процессе работы настроится автоматически и незаметно для пользователя.

Единственное, нужно проверить включение компонентов «Подсистема Windows для Linux» и «Платформа виртуальной машины» через «Панель управления -> Программы и компоненты -> Включение или отключение компонента Windows».

Включение WSL
Включение WSL

WSL работает только в 64-разрядных версии Windows 10, начиная с редакции «Домашняя» для процессоров x64 и ARM. Подсистема не работает в безопасном S-режиме Windows 10.

Загрузка дистрибутива

Как известно программы для Linux распространяются в составе дистрибутивов, наиболее популярными из которых можно назвать Fedora, Debian, Ubuntu, OpenSUSE. Поэтому чтобы начать работу с WSL следует загрузить и установить базовый набор приложений какого-либо дистрибутива и затем штатным менеджером пакетов установить нужные программы.

Дистрибутивы Linux для WSL устанавливаются прямо из магазина приложений Windows Store так же, как и программы Windows. По поисковому запросу «linux» в магазине появится список дистрибутивов для выбора. На текущий момент в магазине представлено уже около дюжины дистрибутивов. Выбираем нужный дистрибутив, – например Ubuntu-18.04, – и нажимаем кнопку «Получить».

Ubuntu-18.04 в Windows Store
Ubuntu-18.04 в Windows Store

Загрузится около 200 мегабайт файлов для базовой системы. В главном меню «Пуск», в «плитках» и на рабочем столе наравне с иконками Windows-программ появится иконка Linux-дистрибутива.

Иконки дистрибутива Linux в Windows 10
Иконки дистрибутива Linux в Windows 10

Удаление дистрибутива происходит также как и удаление Windows-программ – через контекстное меню «плитки» дистрибутива в меню «Пуск».

Отметим, что в редакциях Windows 10 для предприятий, в которых нет Windows Store, дистрибутивы Linux для WSL можно скачать и установить посредством специальных команд Power Shell. В этой статье для краткости мы данный метод рассматривать не станем.

Первый запуск WSL

Подсистема WSL предназначена для запуска консольных программ Linux с интерфейсом командной строки. Для программ с графическим интерфейсом необходимо устанавливать дополнительное ПО, о чём будет сказано ниже.

При первом запуске установленного дистрибутив откроется приложение «Командная строка», в котором запустится командный интерпретатор установленного дистрибутива – обычно это bash. Будет предложено подождать одну или две минуты для завершения установки. На последнем этапе после завершения установки необходимо создать новую учетную запись пользователя Linux-системы, который будет использоваться по умолчанию подсистемой WSL, и задать пароль. После чего с установленной системой Linux можно работать.

Начальная инициализация WSL-дистрибутива
Начальная инициализация WSL-дистрибутива

Запустить установленную систему Linux можно в приложении «Командная строка» с помощью команд «bash.exe», «wsl.exe» или «<имя дистрибутива>.exe» (не во всех дистрибутивах работает). Самой продвинутой является команда «wsl.exe», так как с её помощью доступны все возможные операции с подсистемой WSL.

Список установленных дистрибутивов задаётся командой «wsl» с помощью опции «-l» или «—list»:

wsl -l
Пример вывода команды “wsl -l”
Пример вывода команды “wsl -l”

Установка дистрибутива по умолчанию, который будет запускаться командами «bash.exe», «wsl.exe» без параметров, происходит с помощью опций «-s» («—setdefault»):

wsl -s <название дистрибутива>

Если для дистрибутива задано несколько учётных записей, то для запуска от имени определенного пользователя имеются опции «-u» («—user»):

wsl -u <имя пользователя>

Запуск определенного дистрибутива по названию с помощью опций «-d» («—distribution»):

wsl -d <название дистрибутива>

WSL1 и WSL2

После установки и первого запуска любой системы обычно всегда делается обновление ПО. Например, для Ubuntu обновление делается командами:

sudo apt-get update & apt-get upgrade

В первых версиях WSL пользователи столкнулись с неприятным фактом, что это обновление происходило очень медленно. Операция замены пары сотен мегабайт могла затянуться на долгое время. Резкое снижение производительности было характерно также и для других приложений, требующих большого числа файловых операций – Git, Node.js и других.

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

На практике оказалось, что такая эмуляция не обеспечивает высокую скорость файловых операций для систем Linux. Поэтому, начиная со сборки Windows 10 18917, используется новая архитектура WSL2, которая основана на технологиях виртуализации Microsoft Hyper-V. Другими словами теперь для каждого установленного дистрибутива Linux подсистема WSL запускает отдельную легковесную виртуальную машину и отдельный виртуальный диск. При этом для этой виртуальной машины используется настоящее ядро Linux, а не эмуляция на уровне системных вызовов Windows. В результате для WSL2 удалось повысить производительность файловых операций по сравнению с WSL1 на порядок.

На текущий момент в Windows 10 присутствуют обе версии подсистемы – и WSL1, и WSL2. Рекомендуется использовать WSL2.

Чтобы проверить, какие версии WSL использует каждый дистрибутив, используйте для команды «wsl.exe» опции «-l -v» («—list —verbose»):

wsl -l -v
Пример вывода команды “wsl -l -v”
Пример вывода команды “wsl -l -v”

Установить WSL 2 для отдельного дистрибутива можно опцией «—set-version»:

wsl --set-version <название дистрибутива> 2

Чтобы задать WSL 2 по умолчанию для всех устанавливаемых в дальнейшем дистрибутивов Linux, используйте опцию «—set-default-version»:

wsl --set-default-version 2

Одиночное и смешанное выполнение программ

Самое важное и интересное в WSL – это одиночное и смешанное выполнение программ Linux из среды Windows и наоборот.

Чтобы выполнить какую-либо программу из установленного дистрибутива Linux, совсем не обязательно запускать терминальную сессию Linux. Можно просто передать имя Linux-программы в качестве аргумента для wsl.exe и она будет выполнена прямо в контексте командной строки Windows.

c:>wsl uname
Linux
c:>
Примеры одиночного выполнения Linux-программ
Примеры одиночного выполнения Linux-программ

При этом программа для Linux выполнится в том же каталоге, в котором находится интерпретатор «Командная строка», от имени пользователя WSL по умолчанию с правами вызывавшего её интерпретатора. То есть если «Командная строка» запущена с правами Администратора Windows, то и запущенная здесь программа для Linux будет иметь права Администратора.

Возможно и обратное – вызов двоичных файлов Windows из консоли Linux. Поэтому из командного интерпретатора Linux, например, набрав команду «notepad.exe» можно запустить «Блокнот», который будет запущен с правами активного пользователя Windows.

$ notepad.exe "C:WSLWSL.txt"
Запуск “Блокнота” из консоли Linux
Запуск “Блокнота” из консоли Linux

Мало того, можно объединять программы Linux и программы Windows через механизм конвейера pipe. То есть можно соединять выход Linux-программы с входом Windows-программы и наоборот.

Пример 1, cmd. Выход Windows-программы «dir» направляем на вход Linux-утилиты «grep»:

C:>dir | wsl grep "Windows"
28.10.2019  03:36    
          Windows
28.10.2019  03:41              Windows.old

Пример 2, bash. Выход Linux-программы «cat» направляем на вход Windows-утилиты «findstr»:

$ cat /etc/lsb-release | findstr.exe "DESCRIPTION"
 DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"

Такая тесная интеграция программ Windows и Linux с помощью WSL позволяет, например, писать смешанные скрипты BASH и Power Shell. Или интегрировать инструменты Linux в средства разработки Windows.

Доступ к файлам

WSL предоставляет доступ из оболочки bash Linux ко всем дискам и всей файловой системе Windows. Локальные диски автоматически монтируются в каталог «/mnt». Например, диск «C:» монтируется как «/mnt/c».

USB-флэшки не монтируются автоматически в каталог «/mnt». Их нужно монтировать с помощью плагина drvfs. Например, монтирование флэш-диска H:

$ sudo mkdir /mnt/h
$ sudo mount -t drvfs h: /mnt/h

Файлы WSL-дистрибутивов Linux можно найти в папке «C:Usersимя_пользователяAppDataLocalPackages». Они будут находиться в папках с названиями вида «CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc». Если используется версия WSL1, то файлы Linux-системы там будут находиться как есть в прямом доступе из Windows. Но категорически не рекомендуется их трогать в обход WSL, так как Windows не обработает специфические метаданные этих файлов.

В случае версии WSL2 в папке дистрибутива будет расположен файл образа виртуального жёсткого диска. Если в командном интерпретаторе запустить команду «explorer.exe .» с точкой в качестве аргумента, то откроется «Обозреватель» Windows, в котором отобразится файловая система текущего дистрибутива Linux как сетевой ресурс вида «wsl$<название дистрибутива>».

WSL-диск как сетевой ресурс Windows
WSL-диск как сетевой ресурс Windows

Другими словами, передать приложению Windows какой-либо файл из WSL-дистрибутива можно по сетевому пути к этому файлу.

C:>notepad wsl$Ubuntu-18.04homemikWSL.txt

Сеть и сетевые приложения

Версия WSL1 использует IP-адрес Windows. Сетевой стек у подсистемы WSL1 общий с Windows. Сервер, поднятый в Linux, будет доступен на localhost в Windows и наоборот.

Если дистрибутив использует версию WSL2, то уже потребуется найти IP-адрес виртуальной машины, чтобы подключить дистрибутив по этому IP-адресу. Это можно сделать, выполнив в Linux-системе команду «ip addr» и через поиск строки «eth0» найти адрес по значению «inet».

$ ip addr | grep eth0
 5: eth0:  mtu 1500 qdisc mq state UP group default qlen 1000
     inet 172.18.14.6/20 brd 172.18.15.255 scope global eth0

Дальше можно в Linux запустить, для примера, http-сервер Python командой «python3 -m http.server» и обратиться к нему из браузера Windows по полученному IP.

Доступ к веб-серверу Python для WSL из Windows
Доступ к веб-серверу Python для WSL из Windows

WSL и программы с графическим интерфейсом

WSL — это средство, предназначенное для пользователей, которым требуется запускать программы командной строки Bash и Core Linux в Windows. WSL не имеет штатных средств для запуска приложений Linux с графическим интерфейсом GNOME, KDE и т. д.

Тем не менее, энтузиасты вполне успешно запускают графические программы в WSL, устанавливая и запуская сторонние порты X-сервера для Linux – например VcXsrv.

VcXsrv – X-сервер для Windows
VcXsrv – X-сервер для Windows

В сети Интернет немало инструкций по запуску в WSL графических Linux-программ. Большая часть этих инструкций написана для WSL1, но с появлением второй версии подсистемы они устарели. Ниже последовательность действий для настройки X-сервера VcXsrv для подсистемы WSL2.

  1. Находим в Сети, скачиваем и устанавливаем X-сервер VcXsrv.
  2. В WSL-дистрибутиве через пакетный менеджер устанавливаем какую-нибудь программу с графическим интерфейсом – например, Nautilus GNOME.
  3. В настройках брандмауэра Защитника Windows «Пуск > Параметры > Обновление и безопасность > Безопасность Windows > Брандмауэр и защита сети» отключаем брандмауэр для опции «Общедоступная сеть».
  4. В Linux находим IP-адрес сервера имен nameserver, прописанный в «/etc/reslv.conf».
$ cat /etc/resolv.conf
 This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
 [network]
 generateResolvConf = false
 nameserver 172.20.240.1
  1. Экспортируем переменную DISPLAY со значением nameserver из reslv.conf и номером экрана «0».
export DISPLAY=172.20.240.1:0
  1. Запускаем в Windows VcXsrv. Устанавливаем «0» для «Display number» и галочку для «Disable access control».
  2. В Linux из командной строки запускаем графическую программу.
WSL и программы Linux с графическим интерфейсом
WSL и программы Linux с графическим интерфейсом

Само собой, приведенный способ в запуска программ Linux с графическим интерфейсом в скором времени тоже устареет. Хотя бы потому, что подобный способ не соответствует главной задумке Windows Subsystem for Linux: использовать только штатные компоненты Windows и не требовать их сложной настройки.

From Wikipedia, the free encyclopedia

Windows Subsystem for Linux

Tux.svg
Ubuntu on Windows 10 - bash.png

Bash running on Windows 10

Other names WSL
Developer(s) Microsoft
Initial release August 2, 2016; 6 years ago
Stable release

WSL 2 1.0.3
/ December 1, 2022; 2 months ago[1][2]

Repository github.com/Microsoft/WSL (issues only)
Operating system Windows 10, Windows 10 LTSB/LTSC, Windows Server 2016, Windows Server 2019, Windows 11, Windows Server 2022
Predecessor Windows Services for UNIX
Type Compatibility layer, Virtualization
License Subsystem: Proprietary commercial software;
Linux kernel: GNU GPLv2 (only) with some code under compatible GPL variants or under permissive licenses like BSD, MIT
Website learn.microsoft.com/windows/wsl/about

Windows Subsystem for Linux (WSL) is a feature of Windows that allows developers to run a Linux environment without the need for a separate virtual machine or dual booting. There are two versions of WSL: WSL 1 and WSL 2. WSL 1 was first released on August 2, 2016, and acts as a compatibility layer for running Linux binary executables (in ELF format) by implementing Linux system calls on the Windows kernel.[3] It is available on Windows 10, Windows 10 LTSB/LTSC, Windows 11,[4] Windows Server 2016, Windows Server 2019 and Windows Server 2022.

In May 2019, WSL 2 was announced,[5] introducing important changes such as a real Linux kernel,[6] through a subset of Hyper-V features. WSL 2 differs from WSL 1 in that WSL 2 runs inside a managed virtual machine that implements the full Linux kernel. As a result, WSL 2 is compatible with more Linux binaries than WSL 1, as not all syscalls were implemented in WSL 1. Since June 2019, WSL 2 is available to Windows 10 customers through the Windows Insider program, including the Home edition.[7] WSL is not available to all Windows 10 users by default. It can be installed either by joining the Windows Insider program or manual install.[8]

As of 2022, WSL 2 includes a (rather recent LTS) Linux kernel 5.15.74.2.

History[edit]

Microsoft’s first foray into achieving Unix-like compatibility on Windows began with the Microsoft POSIX Subsystem, superseded by Windows Services for UNIX via MKS/Interix, which was eventually deprecated with the release of Windows 8.1. The technology behind Windows Subsystem for Linux originated in the unreleased Project Astoria, which enabled some Android applications to run on Windows 10 Mobile.[9] It was first made available in Windows 10 Insider Preview build 14316.[10]

Whereas Microsoft’s previous projects and the third-party Cygwin had focused on creating their own unique Unix-like environments based on the POSIX standard, WSL aims for native Linux compatibility. Instead of wrapping non-native functionality into Win32 system calls as Cygwin did, WSL’s initial design (WSL 1) leveraged the NT kernel executive to serve Linux programs as special, isolated minimal processes (known as «pico processes») attached to kernel mode «pico providers» as dedicated system call and exception handlers distinct from that of a vanilla NT process, opting to reutilize existing NT implementations wherever possible.[11]

WSL beta was introduced in Windows 10 version 1607 (Anniversary Update) on August 2, 2016. Only Ubuntu (with Bash as the default shell) was supported. WSL beta was also called «Bash on Ubuntu on Windows» or «Bash on Windows». WSL was no longer beta in Windows 10 version 1709 (Fall Creators Update), released on October 17, 2017. Multiple Linux distributions could be installed and were available for install in the Windows Store.[12]

In 2017 Richard Stallman expressed fears that integrating Linux functionality into Windows will only hinder the development of free software, calling efforts like WSL «a step backward in the campaign for freedom.»[13]

Though WSL (via this initial design) was much faster and arguably much more popular than the previous UNIX-on-Windows projects, Windows kernel engineers found difficulty in trying to increase WSL’s performance and syscall compatibility by trying to reshape the existing NT kernel to recognize and operate correctly on Linux’s API. At a Microsoft Ignite conference in 2018, Microsoft engineers gave a high-level overview of a new «lightweight» Hyper-V VM technology for containerization where a virtualized kernel could make direct use of NT primitives on the host.[14] In 2019, Microsoft announced a completely redesigned WSL architecture (WSL 2) using this lightweight VM technology hosting actual (customized) Linux kernel images, claiming full syscall compatibility.[6] Microsoft announced WSL 2 on May 6, 2019,[5] and it was shipped with Windows 10 version 2004.[15] It was also backported to Windows 10 version 1903 and 1909.[16]

GPU support for WSL 2 to do GPU-accelerated machine learning was introduced in Windows build 20150.[17] GUI support for WSL 2 to run Linux applications with graphical user interfaces (GUIs) was introduced in Windows build 21364.[18] Both of them are shipped in Windows 11.

In April 2021, Microsoft released a Windows 10 test build that also includes the ability to run Linux graphical user interface (GUI) apps using WSL 2 and CBL-Mariner.[19][18] The Windows Subsystem for Linux GUI (WSLg) was officially released at the Microsoft Build 2021 conference. It is included in Windows 10 Insider build 21364 or later.[20]

Microsoft introduced a Windows Store version of WSL on October 11, 2021 for Windows 11,[21] and WSL reached version 1.0.0 on November 16, 2022.

Notable releases[edit]

WSL as a Windows component

Release / Feature Preview build Public build
WSL (Beta) (Bash on Ubuntu on Windows) Windows 10 build 14316 Windows 10 version 1607 (Anniversary Update)
WSL (no longer Beta) Windows 10 build 16251 Windows 10 version 1709 (Fall Creators Update)
WSL 2 (lightweight VM) Windows 10 build 18917 Windows 10 version 2004 (also backported to 1903 and 1909)
WSL 2 GPU support Windows 10 build 20150 Windows 11 (also Windows 10 21H2)
WSL 2 GUI support (WSLg) (last version) Windows 10 build 21364 Windows 11
WSL as a Windows Store app

Version Comment
0.47.1 First version
0.67.6 systemd support
1.0.0 First generally available version

Features[edit]

Bash running on Windows 10

WSL is available in Windows Server 2019 and in versions of Windows 10 from version 1607, though only in 64-bit versions.

Microsoft envisages WSL as «primarily a tool for developers – especially web developers and those who work on or with open source projects».[22] In September 2018, Microsoft said that «WSL requires fewer resources (CPU, memory, and storage) than a full virtual machine» (which prior to WSL was the most direct way to run Linux software in a Windows environment), while also allowing users to use Windows apps and Linux tools on the same set of files.[22]

The first release of WSL provides a Linux-compatible kernel interface developed by Microsoft, containing no Linux kernel code, which can then run the user space of a Linux distribution on top of it, such as Ubuntu,[23][24][25][26] openSUSE,[27] SUSE Linux Enterprise Server,[28][29][12] Debian[30] and Kali Linux.[31] Such a user space might contain a GNU Bash shell and command language, with native GNU command-line tools (sed, awk, etc.), programming-language interpreters (Ruby, Python, etc.), and even graphical applications (using an X11 server at the host side).[22]

The architecture was redesigned in WSL 2,[5] with a Linux kernel running in a lightweight virtual machine environment.

wsl.exe[edit]

The wsl.exe command is used to manage distributions in the Windows Subsystem for Linux on the command-line. It can list available distributions, set a default distribution, and uninstall distributions.[32] The command can also be used to run Linux binaries from the Windows Command Prompt or Windows PowerShell.[33] wsl.exe replaces lxrun.exe which is deprecated as of Windows 10 1803 and later.[34]

WSLg[edit]

Windows Subsystem for Linux GUI (WSLg) is built with the purpose of enabling support for running Linux GUI applications (X11 and Wayland) on Windows in a fully integrated desktop experience.[35] WSLg was officially released at the Microsoft Build 2021 conference and is included in Windows 10 Insider build 21364 or later.[20] However, with the introduction of Windows 11, WSLg is finally shipping with a production build of Windows, bringing support for both graphics and audio in WSL apps.[36]
FreeRDP is used to encode all communications going from the RDP Server (in Weston) to the RDP Client (mstsc on Windows) according to the RDP protocol specifications. [37]

Prerequisites for running WSLg include:

  • Windows 11 or Windows 10 Insider Preview builds 21362-21390.[35][38]
  • A system with virtual GPU (vGPU) enabled for WSL is recommended, as it will allow you to benefit from hardware accelerated OpenGL rendering.[35]

Design[edit]

WSL 1[edit]

LXSS Manager Service is the service in charge of interacting with the subsystem (through the drivers lxss.sys and lxcore.sys), and the way that Bash.exe (not to be confused with the Shells provided by the Linux distributions) launches the Linux processes, as well as handling the Linux system calls and the binary locks during their execution.[39] All Linux processes invoked by a particular user go into a «Linux Instance» (usually, the first invoked process is init). Once all the applications are closed, the instance is closed.

WSL 1’s design featured no hardware emulation / virtualization (unlike other projects such as coLinux) and makes direct use of the host file system (through VolFS and DrvFS)[40] and some parts of the hardware, such as the network, which guarantees interoperability. Web servers for example, can be accessed through the same interfaces and IP addresses configured on the host, and shares the same restrictions on the use of ports that require administrative permissions, or ports already occupied by other applications.[41] There are certain locations (such as system folders) and configurations whose access/modification is restricted, even when running as root, with sudo from the shell. An instance with elevated privileges must be launched in order to get «sudo» to give real root privileges, and allow such access.[22]

WSL 1 is not capable of running all Linux software, such as 32-bit binaries,[42][43] or those that require specific Linux kernel services not implemented in WSL. Due to a lack of any «real» Linux kernel in WSL 1, kernel modules, such as device drivers, cannot be run. WSL 2, however, makes use of live virtualized Linux kernel instances. It is possible to run some graphical (GUI) applications (such as Mozilla Firefox) by installing an X11 server within the Windows (host) environment (such as VcXsrv or Xming),[44] although not without caveats, such as the lack of audio support (though this can be remedied by installing PulseAudio in Windows in a similar manner to X11) or hardware acceleration (resulting in poor graphics performance). Support for OpenCL and CUDA is also not being implemented currently, although planned for future releases.[45][46] Microsoft stated WSL was designed for the development of applications, and not for desktop computers or production servers, recommending the use of virtual machines (Hyper-V), Kubernetes, and Azure for those purposes.[22]

In benchmarks WSL 1’s performance is often near native Linux Ubuntu, Debian, Intel Clear Linux or other Linux distributions. I/O is in some tests a bottleneck for WSL.[47][48][49] The redesigned WSL 2 backend is claimed by Microsoft to offer twenty-fold increases in speed on certain operations compared to that of WSL 1.[6] In June 2020, a benchmark with 173 tests with an AMD Threadripper 3970x shows good performance with WSL 2 (20H2) with 87% of the performance of native Ubuntu 20.04.0 LTS. This is an improvement over WSL 1, which has only 70% of the performance of native Ubuntu in this comparison. WSL 2 improves I/O performance, providing a near-native level.[50]
A comparison of 69 tests with Intel i9 10900K in May 2020 shows nearly the same relative performance.[51] In December 2020, a benchmark with 43 tests with an AMD Ryzen 5900X shows good performance with WSL 2 (20H2) with 93% of the performance of native 20.04.1 LTS. This is an improvement over WSL 1, which has only 73% in this comparison.[52]

WSL 2[edit]

Version 2 introduces changes in the architecture. Microsoft has opted for virtualization through a highly optimized subset of Hyper-V features, in order to run the kernel and distributions (based upon the kernel), promising performance equivalent to WSL 1. For backward compatibility, developers don’t need to change anything in their published distributions. WSL 2 settings can be tweaked by the WSL global configuration, contained in an INI file named .wslconfig in the User Profile folder.[53][54]

The distribution installation resides inside an ext4-formatted filesystem inside a virtual disk, and the host file system is transparently accessible through the 9P protocol,[55] similarly to other virtual machine technologies like QEMU.[56] For the users, Microsoft promised up to 20 times the read/write performance of WSL 1.[5] From Windows an IFS network redirector is provided for Linux guest file access using the UNC path prefix of \wsl$.

WSL 2 requires Windows 11,[57] or Windows 10 version 1903 or higher, with Build 18362 or higher, for x64 systems, and Version 2004 or higher, with Build 19041 or higher, for ARM64 systems.[8]

WSL 2 and Windows 11 are in good shape with 95% performance of native Ubuntu 20.04 LTS.[58]

See also[edit]

  • Azure Sphere
  • FreeBSD § OS compatibility layers
  • SmartOS § Virtualization
  • Windows Terminal
  • Xenix

References[edit]

  1. ^ «Release 1.0.3 · microsoft/WSL». GitHub. Retrieved 3 January 2023.
  2. ^ Craig Loewen (12 June 2019). «WSL 2 is now available in Windows Insiders». Windows Command Line.
  3. ^ Leeks, Stuart (2020). Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques : Maximise Productivity of Your Windows 10 Development Machine with Custom Workflows and Configurations. Birmingham: Packt Publishing, Limited. pp. 18–19. ISBN 978-1-80056-352-0. OCLC 1202451000.
  4. ^ June 2021, Darren Allan 23 (23 June 2021). «Windows 11 could seamlessly run graphical Linux apps». TechRadar. Retrieved 29 June 2021.
  5. ^ a b c d Craig Loewen (6 May 2019). «Announcing WSL 2». Windows Command Line Tools For Developers.
  6. ^ a b c mscraigloewen. «About WSL 2». docs.microsoft.com.
  7. ^ «WSL 2 Post BUILD FAQ». Windows Command Line Tools For Developers. 14 May 2019.
  8. ^ a b craigloewen-msft (24 February 2022). «Install WSL on Windows 10». Microsoft.
  9. ^ Bright, Peter (6 April 2016). «Why Microsoft needed to make Windows run Linux software». Ars Technica. Condé Nast.
  10. ^ Aul, Gabe (6 April 2016). «Announcing Windows 10 Insider Preview Build 14316». Windows Experience Blog. Microsoft.
  11. ^ «Windows Subsystem for Linux Overview». Windows Subsystem for Linux. Retrieved 22 April 2018.
  12. ^ a b «What’s new in WSL in Windows 10 Fall Creators Update — Windows Command Line». Windows Command Line. 11 October 2017. Retrieved 15 October 2021.
  13. ^ Heath, Nick (20 September 2017). «Will Microsoft love Linux to death? Shuttleworth and Stallman on whether Windows 10 is free software’s friend». TechRepublic. Retrieved 18 February 2022.
  14. ^ Microsoft Ignite (2 October 2018), OS internals: Technical deep-dive into operating system innovations — BRK3365, archived from the original on 9 November 2021, retrieved 7 May 2019
  15. ^ «WSL 2 will be generally available in Windows 10, version 2004 — Windows Command Line». Windows Command Line. 13 March 2020. Retrieved 15 October 2021.
  16. ^ «WSL 2 Support is coming to Windows 10 Versions 1903 and 1909 — Windows Command Line». Windows Command Line. 20 August 2020. Retrieved 15 October 2021.
  17. ^ «GPU accelerated ML training inside the Windows Subsystem for Linux — Windows Developer Blog». Windows Blog. 17 June 2020. Retrieved 16 October 2021.
  18. ^ a b «The Initial Preview of GUI app support is now available for the Windows Subsystem for Linux — Windows Command Line». Windows Command Line. 21 April 2021.
  19. ^ Foley, Mary Jo (21 April 2021). «New Windows 10 test build adds first preview of Linux GUI apps on WSL». ZDNet. Retrieved 23 April 2021.
  20. ^ a b Abrams, Lawrence (29 May 2021). «Hands on with WSLg: Running Linux GUI apps in Windows 10». Bleeping Computer. Retrieved 30 May 2021.
  21. ^ «A preview of WSL in the Microsoft Store is now available! — Windows Command Line». Windows Command Line. 11 October 2021. Retrieved 16 October 2021.
  22. ^ a b c d e «Frequently Asked Questions for WSL». Microsoft. Retrieved 13 November 2016.
  23. ^ Harsh, Mike (30 March 2016). «Run Bash on Ubuntu on Windows». Building Apps for Windows. Microsoft.
  24. ^ Finley, Klint (30 March 2016). «Why Microsoft Making Linux Apps Run on Windows Isn’t Crazy». Wired. Condé Nast.
  25. ^ Kirkland, Dustin (30 March 2016). «Ubuntu on Windows – The Ubuntu Userspace for Windows Developers». Ubuntu Insights. Canonical.
  26. ^ Hammons, Jack (9 April 2016). «Bash on Ubuntu on Windows». MSDN. Microsoft.
  27. ^ Get openSUSE Leap 42 — Microsoft Store
  28. ^ Get SUSE Linux Enterprise Server 12 — Microsoft Store
  29. ^ Yegulalp, Serdar (12 May 2017). «Windows Subsystem for Linux welcomes Suse and Fedora options». InfoWorld. Retrieved 16 September 2017.
  30. ^ «Debian GNU/Linux for WSL now available in the Windows Store». Windows Command Line Tools For Developers. Retrieved 7 March 2018.
  31. ^ «Kali Linux in the Windows App Store». Retrieved 9 March 2018.
  32. ^ Manage and configure Windows Subsystem for Linux
  33. ^ Windows Subsystem for Linux interoperability with Windows
  34. ^ Command Reference for Windows Subsystem for Linux
  35. ^ a b c Welcome to WSLg, Microsoft, 7 November 2021, retrieved 7 November 2021
  36. ^ Salter, Jim (7 October 2021). «The best part of Windows 11 is a revamped Windows Subsystem for Linux». Ars Technica. Retrieved 7 November 2021.
  37. ^ «Installing WSLg». GitHub. 27 April 2022. Retrieved 27 April 2022.
  38. ^ «Clarify Windows 10 vs 11 and build numbers (#485) · microsoft/wslg@5ddd8d2». GitHub. Retrieved 28 May 2022.
  39. ^ Jack Hammons (22 April 2016). «Windows Subsystem for Linux Overview». Windows Subsystem for Linux blog on MSDN.
  40. ^ Jack Hammons (15 June 2016). «WSL File System Support». Windows Subsystem for Linux blog on MSDN.
  41. ^ Jack Hammons (8 November 2016). «WSL Networking». Windows Subsystem for Linux blog on MSDN.
  42. ^ «Please enable WSL to run 32 bit ELF binaries». Windows Developer feedback (Microsoft/UserVoice).
  43. ^ «Support for 32-bit i386 ELF binaries». GitHub.
  44. ^ «Windows 10’s Bash shell can run graphical Linux applications with this trick». PC World. Retrieved 10 September 2018.
  45. ^ «GPU not accesssible for running tensorflow and installing CUDA · Issue #1788 · Microsoft/WSL». GitHub. Retrieved 10 September 2018.
  46. ^ «OpenCL & CUDA GPU support». Windows Developer feedback (Microsoft/UserVoice). 15 September 2016. Retrieved 10 September 2018.
  47. ^ «Windows Subsystem for Linux». Phoronix.
  48. ^ Larabel, Michael (12 October 2018). «A Look At The Windows 10 October 2018 Update Performance With WSL». Phoronix.
  49. ^ Larabel, Michael (5 November 2018). «The WSL Improvements In The Windows 10 October 2018 Update». Phoronix.
  50. ^ Larabel, Michael (24 June 2020). «Ubuntu 20.04 vs. Windows 10 WSL/WSL2 Performance In 170+ Benchmarks». Phoronix.
  51. ^ Larabel, Michael (17 June 2020). «Windows 10 May 2020 Performance For WSL vs. WSL2». Phoronix.
  52. ^ Larabel, Michael (16 December 2020). «Windows Subsystem For Linux / WSL2 Performance With The AMD Ryzen 9 5900X». Phoronix.
  53. ^ Loewen, Craig (26 July 2019). «What’s new for WSL in Insiders Preview Build 18945». Microsoft devblog. Archived from the original on 26 July 2019. Retrieved 26 July 2019. In this new update we’ve added the ability to start using global config options for WSL. These options are targeted towards power users who want to further customize their WSL experience.
  54. ^ Hillis, Ben (25 July 2019). «MicrosoftDocs/WSL | Build 18947». GitHub. Archived from the original on 26 July 2019. Retrieved 26 July 2019.
  55. ^ «A Deep Dive Into How WSL Allows Windows to Access Linux Files». Windows Command Line Tools For Developers. 30 May 2019. Retrieved 24 June 2019.
  56. ^ Jujjuri, Venkateswararao; Van Hensbergen, Eric; Liguori, Anthony; Pulavarty, Badari (13–16 July 2010). «VirtFS—A virtualization aware File System pass-through» (PDF). Linux Symposium.
  57. ^ «Comparing WSL 1 and WSL 2». Microsoft Learn. 4 October 2022. Retrieved 18 October 2022.
  58. ^ «Windows 11 WSL2 Performance is Quite Competitive Against Ubuntu 20.04 LTS / Ubuntu 21.10».

Further reading[edit]

  • Barnes, Hayden (2021). Pro Windows Subsystem for Linux (WSL): Powerful Tools and Practices for Cross-Platform Development and Collaboration. Apress. ISBN 978-1484268728.
  • Leeks, Stuart (2020). Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques: Maximise productivity of your Windows 10 development machine with custom workflows and configurations. Packt Publishing. ISBN 978-1800562448.
  • Singh, Prateek (2020). Learn Windows Subsystem for Linux: A Practical Guide for Developers and IT Professionals. Apress. ISBN 978-1484260371.

External links[edit]

  • WSL on Microsoft Learn
  • WSL on GitHub
  • WSL2-Linux-Kernel on GitHub
  • Brown, Pete (22 July 2016). «Fun with the Windows Subsystem for Linux». Windows Developer Blog. Microsoft.

From Wikipedia, the free encyclopedia

Windows Subsystem for Linux

Tux.svg
Ubuntu on Windows 10 - bash.png

Bash running on Windows 10

Other names WSL
Developer(s) Microsoft
Initial release August 2, 2016; 6 years ago
Stable release

WSL 2 1.0.3
/ December 1, 2022; 2 months ago[1][2]

Repository github.com/Microsoft/WSL (issues only)
Operating system Windows 10, Windows 10 LTSB/LTSC, Windows Server 2016, Windows Server 2019, Windows 11, Windows Server 2022
Predecessor Windows Services for UNIX
Type Compatibility layer, Virtualization
License Subsystem: Proprietary commercial software;
Linux kernel: GNU GPLv2 (only) with some code under compatible GPL variants or under permissive licenses like BSD, MIT
Website learn.microsoft.com/windows/wsl/about

Windows Subsystem for Linux (WSL) is a feature of Windows that allows developers to run a Linux environment without the need for a separate virtual machine or dual booting. There are two versions of WSL: WSL 1 and WSL 2. WSL 1 was first released on August 2, 2016, and acts as a compatibility layer for running Linux binary executables (in ELF format) by implementing Linux system calls on the Windows kernel.[3] It is available on Windows 10, Windows 10 LTSB/LTSC, Windows 11,[4] Windows Server 2016, Windows Server 2019 and Windows Server 2022.

In May 2019, WSL 2 was announced,[5] introducing important changes such as a real Linux kernel,[6] through a subset of Hyper-V features. WSL 2 differs from WSL 1 in that WSL 2 runs inside a managed virtual machine that implements the full Linux kernel. As a result, WSL 2 is compatible with more Linux binaries than WSL 1, as not all syscalls were implemented in WSL 1. Since June 2019, WSL 2 is available to Windows 10 customers through the Windows Insider program, including the Home edition.[7] WSL is not available to all Windows 10 users by default. It can be installed either by joining the Windows Insider program or manual install.[8]

As of 2022, WSL 2 includes a (rather recent LTS) Linux kernel 5.15.74.2.

History[edit]

Microsoft’s first foray into achieving Unix-like compatibility on Windows began with the Microsoft POSIX Subsystem, superseded by Windows Services for UNIX via MKS/Interix, which was eventually deprecated with the release of Windows 8.1. The technology behind Windows Subsystem for Linux originated in the unreleased Project Astoria, which enabled some Android applications to run on Windows 10 Mobile.[9] It was first made available in Windows 10 Insider Preview build 14316.[10]

Whereas Microsoft’s previous projects and the third-party Cygwin had focused on creating their own unique Unix-like environments based on the POSIX standard, WSL aims for native Linux compatibility. Instead of wrapping non-native functionality into Win32 system calls as Cygwin did, WSL’s initial design (WSL 1) leveraged the NT kernel executive to serve Linux programs as special, isolated minimal processes (known as «pico processes») attached to kernel mode «pico providers» as dedicated system call and exception handlers distinct from that of a vanilla NT process, opting to reutilize existing NT implementations wherever possible.[11]

WSL beta was introduced in Windows 10 version 1607 (Anniversary Update) on August 2, 2016. Only Ubuntu (with Bash as the default shell) was supported. WSL beta was also called «Bash on Ubuntu on Windows» or «Bash on Windows». WSL was no longer beta in Windows 10 version 1709 (Fall Creators Update), released on October 17, 2017. Multiple Linux distributions could be installed and were available for install in the Windows Store.[12]

In 2017 Richard Stallman expressed fears that integrating Linux functionality into Windows will only hinder the development of free software, calling efforts like WSL «a step backward in the campaign for freedom.»[13]

Though WSL (via this initial design) was much faster and arguably much more popular than the previous UNIX-on-Windows projects, Windows kernel engineers found difficulty in trying to increase WSL’s performance and syscall compatibility by trying to reshape the existing NT kernel to recognize and operate correctly on Linux’s API. At a Microsoft Ignite conference in 2018, Microsoft engineers gave a high-level overview of a new «lightweight» Hyper-V VM technology for containerization where a virtualized kernel could make direct use of NT primitives on the host.[14] In 2019, Microsoft announced a completely redesigned WSL architecture (WSL 2) using this lightweight VM technology hosting actual (customized) Linux kernel images, claiming full syscall compatibility.[6] Microsoft announced WSL 2 on May 6, 2019,[5] and it was shipped with Windows 10 version 2004.[15] It was also backported to Windows 10 version 1903 and 1909.[16]

GPU support for WSL 2 to do GPU-accelerated machine learning was introduced in Windows build 20150.[17] GUI support for WSL 2 to run Linux applications with graphical user interfaces (GUIs) was introduced in Windows build 21364.[18] Both of them are shipped in Windows 11.

In April 2021, Microsoft released a Windows 10 test build that also includes the ability to run Linux graphical user interface (GUI) apps using WSL 2 and CBL-Mariner.[19][18] The Windows Subsystem for Linux GUI (WSLg) was officially released at the Microsoft Build 2021 conference. It is included in Windows 10 Insider build 21364 or later.[20]

Microsoft introduced a Windows Store version of WSL on October 11, 2021 for Windows 11,[21] and WSL reached version 1.0.0 on November 16, 2022.

Notable releases[edit]

WSL as a Windows component

Release / Feature Preview build Public build
WSL (Beta) (Bash on Ubuntu on Windows) Windows 10 build 14316 Windows 10 version 1607 (Anniversary Update)
WSL (no longer Beta) Windows 10 build 16251 Windows 10 version 1709 (Fall Creators Update)
WSL 2 (lightweight VM) Windows 10 build 18917 Windows 10 version 2004 (also backported to 1903 and 1909)
WSL 2 GPU support Windows 10 build 20150 Windows 11 (also Windows 10 21H2)
WSL 2 GUI support (WSLg) (last version) Windows 10 build 21364 Windows 11
WSL as a Windows Store app

Version Comment
0.47.1 First version
0.67.6 systemd support
1.0.0 First generally available version

Features[edit]

Bash running on Windows 10

WSL is available in Windows Server 2019 and in versions of Windows 10 from version 1607, though only in 64-bit versions.

Microsoft envisages WSL as «primarily a tool for developers – especially web developers and those who work on or with open source projects».[22] In September 2018, Microsoft said that «WSL requires fewer resources (CPU, memory, and storage) than a full virtual machine» (which prior to WSL was the most direct way to run Linux software in a Windows environment), while also allowing users to use Windows apps and Linux tools on the same set of files.[22]

The first release of WSL provides a Linux-compatible kernel interface developed by Microsoft, containing no Linux kernel code, which can then run the user space of a Linux distribution on top of it, such as Ubuntu,[23][24][25][26] openSUSE,[27] SUSE Linux Enterprise Server,[28][29][12] Debian[30] and Kali Linux.[31] Such a user space might contain a GNU Bash shell and command language, with native GNU command-line tools (sed, awk, etc.), programming-language interpreters (Ruby, Python, etc.), and even graphical applications (using an X11 server at the host side).[22]

The architecture was redesigned in WSL 2,[5] with a Linux kernel running in a lightweight virtual machine environment.

wsl.exe[edit]

The wsl.exe command is used to manage distributions in the Windows Subsystem for Linux on the command-line. It can list available distributions, set a default distribution, and uninstall distributions.[32] The command can also be used to run Linux binaries from the Windows Command Prompt or Windows PowerShell.[33] wsl.exe replaces lxrun.exe which is deprecated as of Windows 10 1803 and later.[34]

WSLg[edit]

Windows Subsystem for Linux GUI (WSLg) is built with the purpose of enabling support for running Linux GUI applications (X11 and Wayland) on Windows in a fully integrated desktop experience.[35] WSLg was officially released at the Microsoft Build 2021 conference and is included in Windows 10 Insider build 21364 or later.[20] However, with the introduction of Windows 11, WSLg is finally shipping with a production build of Windows, bringing support for both graphics and audio in WSL apps.[36]
FreeRDP is used to encode all communications going from the RDP Server (in Weston) to the RDP Client (mstsc on Windows) according to the RDP protocol specifications. [37]

Prerequisites for running WSLg include:

  • Windows 11 or Windows 10 Insider Preview builds 21362-21390.[35][38]
  • A system with virtual GPU (vGPU) enabled for WSL is recommended, as it will allow you to benefit from hardware accelerated OpenGL rendering.[35]

Design[edit]

WSL 1[edit]

LXSS Manager Service is the service in charge of interacting with the subsystem (through the drivers lxss.sys and lxcore.sys), and the way that Bash.exe (not to be confused with the Shells provided by the Linux distributions) launches the Linux processes, as well as handling the Linux system calls and the binary locks during their execution.[39] All Linux processes invoked by a particular user go into a «Linux Instance» (usually, the first invoked process is init). Once all the applications are closed, the instance is closed.

WSL 1’s design featured no hardware emulation / virtualization (unlike other projects such as coLinux) and makes direct use of the host file system (through VolFS and DrvFS)[40] and some parts of the hardware, such as the network, which guarantees interoperability. Web servers for example, can be accessed through the same interfaces and IP addresses configured on the host, and shares the same restrictions on the use of ports that require administrative permissions, or ports already occupied by other applications.[41] There are certain locations (such as system folders) and configurations whose access/modification is restricted, even when running as root, with sudo from the shell. An instance with elevated privileges must be launched in order to get «sudo» to give real root privileges, and allow such access.[22]

WSL 1 is not capable of running all Linux software, such as 32-bit binaries,[42][43] or those that require specific Linux kernel services not implemented in WSL. Due to a lack of any «real» Linux kernel in WSL 1, kernel modules, such as device drivers, cannot be run. WSL 2, however, makes use of live virtualized Linux kernel instances. It is possible to run some graphical (GUI) applications (such as Mozilla Firefox) by installing an X11 server within the Windows (host) environment (such as VcXsrv or Xming),[44] although not without caveats, such as the lack of audio support (though this can be remedied by installing PulseAudio in Windows in a similar manner to X11) or hardware acceleration (resulting in poor graphics performance). Support for OpenCL and CUDA is also not being implemented currently, although planned for future releases.[45][46] Microsoft stated WSL was designed for the development of applications, and not for desktop computers or production servers, recommending the use of virtual machines (Hyper-V), Kubernetes, and Azure for those purposes.[22]

In benchmarks WSL 1’s performance is often near native Linux Ubuntu, Debian, Intel Clear Linux or other Linux distributions. I/O is in some tests a bottleneck for WSL.[47][48][49] The redesigned WSL 2 backend is claimed by Microsoft to offer twenty-fold increases in speed on certain operations compared to that of WSL 1.[6] In June 2020, a benchmark with 173 tests with an AMD Threadripper 3970x shows good performance with WSL 2 (20H2) with 87% of the performance of native Ubuntu 20.04.0 LTS. This is an improvement over WSL 1, which has only 70% of the performance of native Ubuntu in this comparison. WSL 2 improves I/O performance, providing a near-native level.[50]
A comparison of 69 tests with Intel i9 10900K in May 2020 shows nearly the same relative performance.[51] In December 2020, a benchmark with 43 tests with an AMD Ryzen 5900X shows good performance with WSL 2 (20H2) with 93% of the performance of native 20.04.1 LTS. This is an improvement over WSL 1, which has only 73% in this comparison.[52]

WSL 2[edit]

Version 2 introduces changes in the architecture. Microsoft has opted for virtualization through a highly optimized subset of Hyper-V features, in order to run the kernel and distributions (based upon the kernel), promising performance equivalent to WSL 1. For backward compatibility, developers don’t need to change anything in their published distributions. WSL 2 settings can be tweaked by the WSL global configuration, contained in an INI file named .wslconfig in the User Profile folder.[53][54]

The distribution installation resides inside an ext4-formatted filesystem inside a virtual disk, and the host file system is transparently accessible through the 9P protocol,[55] similarly to other virtual machine technologies like QEMU.[56] For the users, Microsoft promised up to 20 times the read/write performance of WSL 1.[5] From Windows an IFS network redirector is provided for Linux guest file access using the UNC path prefix of \wsl$.

WSL 2 requires Windows 11,[57] or Windows 10 version 1903 or higher, with Build 18362 or higher, for x64 systems, and Version 2004 or higher, with Build 19041 or higher, for ARM64 systems.[8]

WSL 2 and Windows 11 are in good shape with 95% performance of native Ubuntu 20.04 LTS.[58]

See also[edit]

  • Azure Sphere
  • FreeBSD § OS compatibility layers
  • SmartOS § Virtualization
  • Windows Terminal
  • Xenix

References[edit]

  1. ^ «Release 1.0.3 · microsoft/WSL». GitHub. Retrieved 3 January 2023.
  2. ^ Craig Loewen (12 June 2019). «WSL 2 is now available in Windows Insiders». Windows Command Line.
  3. ^ Leeks, Stuart (2020). Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques : Maximise Productivity of Your Windows 10 Development Machine with Custom Workflows and Configurations. Birmingham: Packt Publishing, Limited. pp. 18–19. ISBN 978-1-80056-352-0. OCLC 1202451000.
  4. ^ June 2021, Darren Allan 23 (23 June 2021). «Windows 11 could seamlessly run graphical Linux apps». TechRadar. Retrieved 29 June 2021.
  5. ^ a b c d Craig Loewen (6 May 2019). «Announcing WSL 2». Windows Command Line Tools For Developers.
  6. ^ a b c mscraigloewen. «About WSL 2». docs.microsoft.com.
  7. ^ «WSL 2 Post BUILD FAQ». Windows Command Line Tools For Developers. 14 May 2019.
  8. ^ a b craigloewen-msft (24 February 2022). «Install WSL on Windows 10». Microsoft.
  9. ^ Bright, Peter (6 April 2016). «Why Microsoft needed to make Windows run Linux software». Ars Technica. Condé Nast.
  10. ^ Aul, Gabe (6 April 2016). «Announcing Windows 10 Insider Preview Build 14316». Windows Experience Blog. Microsoft.
  11. ^ «Windows Subsystem for Linux Overview». Windows Subsystem for Linux. Retrieved 22 April 2018.
  12. ^ a b «What’s new in WSL in Windows 10 Fall Creators Update — Windows Command Line». Windows Command Line. 11 October 2017. Retrieved 15 October 2021.
  13. ^ Heath, Nick (20 September 2017). «Will Microsoft love Linux to death? Shuttleworth and Stallman on whether Windows 10 is free software’s friend». TechRepublic. Retrieved 18 February 2022.
  14. ^ Microsoft Ignite (2 October 2018), OS internals: Technical deep-dive into operating system innovations — BRK3365, archived from the original on 9 November 2021, retrieved 7 May 2019
  15. ^ «WSL 2 will be generally available in Windows 10, version 2004 — Windows Command Line». Windows Command Line. 13 March 2020. Retrieved 15 October 2021.
  16. ^ «WSL 2 Support is coming to Windows 10 Versions 1903 and 1909 — Windows Command Line». Windows Command Line. 20 August 2020. Retrieved 15 October 2021.
  17. ^ «GPU accelerated ML training inside the Windows Subsystem for Linux — Windows Developer Blog». Windows Blog. 17 June 2020. Retrieved 16 October 2021.
  18. ^ a b «The Initial Preview of GUI app support is now available for the Windows Subsystem for Linux — Windows Command Line». Windows Command Line. 21 April 2021.
  19. ^ Foley, Mary Jo (21 April 2021). «New Windows 10 test build adds first preview of Linux GUI apps on WSL». ZDNet. Retrieved 23 April 2021.
  20. ^ a b Abrams, Lawrence (29 May 2021). «Hands on with WSLg: Running Linux GUI apps in Windows 10». Bleeping Computer. Retrieved 30 May 2021.
  21. ^ «A preview of WSL in the Microsoft Store is now available! — Windows Command Line». Windows Command Line. 11 October 2021. Retrieved 16 October 2021.
  22. ^ a b c d e «Frequently Asked Questions for WSL». Microsoft. Retrieved 13 November 2016.
  23. ^ Harsh, Mike (30 March 2016). «Run Bash on Ubuntu on Windows». Building Apps for Windows. Microsoft.
  24. ^ Finley, Klint (30 March 2016). «Why Microsoft Making Linux Apps Run on Windows Isn’t Crazy». Wired. Condé Nast.
  25. ^ Kirkland, Dustin (30 March 2016). «Ubuntu on Windows – The Ubuntu Userspace for Windows Developers». Ubuntu Insights. Canonical.
  26. ^ Hammons, Jack (9 April 2016). «Bash on Ubuntu on Windows». MSDN. Microsoft.
  27. ^ Get openSUSE Leap 42 — Microsoft Store
  28. ^ Get SUSE Linux Enterprise Server 12 — Microsoft Store
  29. ^ Yegulalp, Serdar (12 May 2017). «Windows Subsystem for Linux welcomes Suse and Fedora options». InfoWorld. Retrieved 16 September 2017.
  30. ^ «Debian GNU/Linux for WSL now available in the Windows Store». Windows Command Line Tools For Developers. Retrieved 7 March 2018.
  31. ^ «Kali Linux in the Windows App Store». Retrieved 9 March 2018.
  32. ^ Manage and configure Windows Subsystem for Linux
  33. ^ Windows Subsystem for Linux interoperability with Windows
  34. ^ Command Reference for Windows Subsystem for Linux
  35. ^ a b c Welcome to WSLg, Microsoft, 7 November 2021, retrieved 7 November 2021
  36. ^ Salter, Jim (7 October 2021). «The best part of Windows 11 is a revamped Windows Subsystem for Linux». Ars Technica. Retrieved 7 November 2021.
  37. ^ «Installing WSLg». GitHub. 27 April 2022. Retrieved 27 April 2022.
  38. ^ «Clarify Windows 10 vs 11 and build numbers (#485) · microsoft/wslg@5ddd8d2». GitHub. Retrieved 28 May 2022.
  39. ^ Jack Hammons (22 April 2016). «Windows Subsystem for Linux Overview». Windows Subsystem for Linux blog on MSDN.
  40. ^ Jack Hammons (15 June 2016). «WSL File System Support». Windows Subsystem for Linux blog on MSDN.
  41. ^ Jack Hammons (8 November 2016). «WSL Networking». Windows Subsystem for Linux blog on MSDN.
  42. ^ «Please enable WSL to run 32 bit ELF binaries». Windows Developer feedback (Microsoft/UserVoice).
  43. ^ «Support for 32-bit i386 ELF binaries». GitHub.
  44. ^ «Windows 10’s Bash shell can run graphical Linux applications with this trick». PC World. Retrieved 10 September 2018.
  45. ^ «GPU not accesssible for running tensorflow and installing CUDA · Issue #1788 · Microsoft/WSL». GitHub. Retrieved 10 September 2018.
  46. ^ «OpenCL & CUDA GPU support». Windows Developer feedback (Microsoft/UserVoice). 15 September 2016. Retrieved 10 September 2018.
  47. ^ «Windows Subsystem for Linux». Phoronix.
  48. ^ Larabel, Michael (12 October 2018). «A Look At The Windows 10 October 2018 Update Performance With WSL». Phoronix.
  49. ^ Larabel, Michael (5 November 2018). «The WSL Improvements In The Windows 10 October 2018 Update». Phoronix.
  50. ^ Larabel, Michael (24 June 2020). «Ubuntu 20.04 vs. Windows 10 WSL/WSL2 Performance In 170+ Benchmarks». Phoronix.
  51. ^ Larabel, Michael (17 June 2020). «Windows 10 May 2020 Performance For WSL vs. WSL2». Phoronix.
  52. ^ Larabel, Michael (16 December 2020). «Windows Subsystem For Linux / WSL2 Performance With The AMD Ryzen 9 5900X». Phoronix.
  53. ^ Loewen, Craig (26 July 2019). «What’s new for WSL in Insiders Preview Build 18945». Microsoft devblog. Archived from the original on 26 July 2019. Retrieved 26 July 2019. In this new update we’ve added the ability to start using global config options for WSL. These options are targeted towards power users who want to further customize their WSL experience.
  54. ^ Hillis, Ben (25 July 2019). «MicrosoftDocs/WSL | Build 18947». GitHub. Archived from the original on 26 July 2019. Retrieved 26 July 2019.
  55. ^ «A Deep Dive Into How WSL Allows Windows to Access Linux Files». Windows Command Line Tools For Developers. 30 May 2019. Retrieved 24 June 2019.
  56. ^ Jujjuri, Venkateswararao; Van Hensbergen, Eric; Liguori, Anthony; Pulavarty, Badari (13–16 July 2010). «VirtFS—A virtualization aware File System pass-through» (PDF). Linux Symposium.
  57. ^ «Comparing WSL 1 and WSL 2». Microsoft Learn. 4 October 2022. Retrieved 18 October 2022.
  58. ^ «Windows 11 WSL2 Performance is Quite Competitive Against Ubuntu 20.04 LTS / Ubuntu 21.10».

Further reading[edit]

  • Barnes, Hayden (2021). Pro Windows Subsystem for Linux (WSL): Powerful Tools and Practices for Cross-Platform Development and Collaboration. Apress. ISBN 978-1484268728.
  • Leeks, Stuart (2020). Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques: Maximise productivity of your Windows 10 development machine with custom workflows and configurations. Packt Publishing. ISBN 978-1800562448.
  • Singh, Prateek (2020). Learn Windows Subsystem for Linux: A Practical Guide for Developers and IT Professionals. Apress. ISBN 978-1484260371.

External links[edit]

  • WSL on Microsoft Learn
  • WSL on GitHub
  • WSL2-Linux-Kernel on GitHub
  • Brown, Pete (22 July 2016). «Fun with the Windows Subsystem for Linux». Windows Developer Blog. Microsoft.

Windows Subsystem for Linux (WSL) — подсистема ОС Windows 10, позволяющая разработчикам, тестировщикам запускать нативные приложения Linux, писать скрипты, выполнять команды непосредственно из Windows. В обновлённой Windows 10 (2004) появилась 2я версия WSL, в которой используется полноценное ядро Linux с возможностью запуска приложений и контейнеров Docker, реализована высокая скорость загрузки, небольшой объем потребляемых ресурсов, управление в фоновом режиме, обновление ядра. Таким образом вы сможете запускать ELF64 программы, которые могут получать доступ к файловой системе Windows без использования сторонних порто (таких как Cygwin).

Образ ядра Linux (версия ядра 4.19) в Windows 10 представляет собой легкую виртуальную машину, для запуска которой не нужно ставить полноценную роль Hyper-V. Системные вызовы Linux транслируются на лету в вызовы Windows без использования эмулятора (в отличии от WSL1).

Изначально компонент WSL отключен. Чтобы его включить, вам необходимо зайти в Пуск -> Панель управления -> Программы и компоненты -> Включение и отключение компонентов Windows (Control PanelAll Control Panel ItemsPrograms and FeaturesTurn Windows features on or off), активировать галочку Подсистема Windows для Linux (Windows Subsystem for Linux), нажать кнопку ОК, и перезагрузить компьютер.

установка Windows Subsystem for LInux 2 версия в windows 10

Вы можете включить компоненты WSL в Windows 10 с помощью dism:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

или PowerShell

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

В Windows Server 2004 Semi-Annual Channel (SAC) для установки компонента WSL используется командлет Install-WindowsFeature:

Install-WindowsFeature -Name Microsoft-Windows-Subsystem-Linux

После этого также необходимо перезагрузить компьютер.

В настройка BIOS/UEFI компьютера должна быть включена поддержка аппаратной виртуализации: Intel VT (Intel Virtualization Technology) или AMD-V.

Теперь вам нужно выполнить обновление WSL до версии 2. Для этого требуется зайти на сайт https://docs.microsoft.com/ru-ru/windows/wsl/wsl2-kernel, скачать файл wsl_update_x64.msi, установить его. По завершении увидите картинку

windows subsyste for linux update setup

Чтобы сделать WSL2 архитектурой по умолчанию для новых дистрибутивов, в PowerShell выполните команду:

wsl --set-default-version 2

Далее вам необходимо открыть Microsoft Store, в поиске ввести слово “Linux”. В появившемся списке выберите нужный дистрибутив. Доступные Ubuntu, Debian, Kali Linux, Linux Cheatsheet, SUSE Linux Enterprise Server15, openSUSE Leap 15-1, Pengwin Enterprise, Fedora Remix for WSL или другие. В нашем примере мы будем использовать Ubuntu 20.04 LTS, нажмите кнопку Получить.

образы linux для wsl в microsoft store

Если у вас отключен Windows Store или вы хотите установить дистрибутив WSL в Core редакции Windows Server, вы можете скачать дистрибутив Ubuntu с помощью PowerShell командлета Invoke-WebRequest:

Invoke-WebRequest https://aka.ms/wslubuntu2004 -OutFile ubuntu-2004.zip –UseBasicParsing

Распакуйте архив:

Expand-Archive -Path .ubuntu-2004.zip

Запустите установку образа Linux с помощью файла Ubuntu.exe.

Также вы можете скачать образ в виде appx файла и установить его с помощью командлета Add-AppxPackage.

После установки можно проверить используемую версию WSL с помощью команды

wsl --list –-verbose

wsl --list –-verbose список доступных образов linux

Если у вашей среды Linux указана версия 1, нужно изменить ее на WSL2 командой:

wsl --set-version Ubuntu-20.04 2

Файл жёсткого диска с образом виртуальной машины ОС Linux Ubuntu 20.04 будет располагаться в профиле пользователя: C:Users234AppDataLocalPackagesCanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgscLocalState.

После установки дистрибутива в стартовом меню появляется ярлык на него. Для запуска Ubuntu зайдите в меню Пуск, нажмите на соответствующем ярлыке и получите в отдельном окне полноценную командную оболочку Bash. Запускать WSL можно и с помощью команды wsl. При первом запуске образа в командной строке Bash вам будет предложено создать пользователя и пароль (которые не должны совпадать с учётной записью Windows). Чтобы выполнять команды с правами root, необходимо использовать дополнительный ключ (префикс) sudo. В WSL есть общие команды для Bash и CMD, и тут нужно не забывать, что система Linux чувствительна к регистру.

Вы можете выполнить Linux-команды из CMD. Для этого необходимо вначале указать “WSL”. Например, для просмотра списка файлов и папок в каталоге Windows, выполните:

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

Также вы можете открыть проводник командой explorer.exe, калькулятор – calc.exe, блокнот – notepad.exe, paint – mspaint.exe, календарь – cal, погоду – curl wttr.in

запуск команд linux в windows 10 subsystem for linux

Ещё один пример взаимосвязи 2х систем – вы можете открыть в Windows файл из WSL-дистрибутива по сетевому пути. Для этого в CMD наберите путь к файлу:

notepad \wsl$Ubuntu-20.04home1122.txt

Из окна консоли вы можете обновить список пакетов в Ubuntu с помощью команд:

sudo apt-get update
sudo apt-get upgrade

После обновления Ubuntu папка …/LocalState будет занимать 1.5 Гб.

Из командной строки Linux можно не только просмотреть Windows-файлы и каталоги, но и получить к ним доступ. Чтобы удобнее копировать файлы, просматривать директории и их содержимое, установите файловый менеджер Midnight Commander с помощью команды

sudo apt-get install mc

Вы можете запустить Midnight Commander как в командной оболочке Bash, так и внутри CMD. На скриншоте ниже показано, что в двух панелях MC показывается список файлов с обеих ОС.

Midnight Commander в windows 10 wsl2

Можно отобрахить сетевые настройки (IP адрес) IP-адрес Linux-системы:

ip addr | grep eth0

запуск команд linux из windows

В WSL не предусмотрена работа приложений с графическим интерфейсом. Тем не менее вы можете попробовать их установить и использовать. Чтобы запускать графические приложения в Linux, нужно скачать и установить в Windows программу VcXsrv Windows X Server (https://sourceforge.net/projects/vcxsrv/).

VcXsrv Windows X Server

С помощью пакетного менеджера apt-get установим несколько графических программ: например, браузер, текстовый редактор или что-то ещё:

sudo apt-get install gedit
sudo apt-get install firefox
sudo apt-get install x11-app

Затем создайте файл в директории root:

cd /~
vim .bash_login

впишите строку

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0

сохраните запись

Esc -> :wr -> :q

Теперь можете запустить графические программы Linux через WSL командами:

firefox

или

gedit

запуск браузера firefox через WSL 2 в Windows 10

запуск графического редактора gedit в WSL

Вы можете установить в Windows 10 несколько дистрибутивов Linux и запускать одновременно в разных окнах WSL. Вывести весь перечень установленных дистрибутивов можете с помощью команды:

wsl --list –all

чтобы завершить работу всех запущенных дистрибутивов и ядра WSL 2, выполните команду:

wsl --shutdown

Как настроить полноценное окружение разработчика, привыкшего к Linux и Mac OS X.

Традиционно считается, что разработчики (в особенности связанные с бэкенд-разработкой) предпочитают использовать unix-like-системы. Причиной тому было немало. Ситуация начала несколько меняться в 2017 году — именно тогда вышел первый стабильный релиз Windows Subsystem for Linux (также известен под более ранним названием BashOnWindows), который дал разработчикам то, чего они так давно ждали, — полноценный Linux в качестве приложения в Windows!

Но не всё оказалось так просто — лишь к концу 2018 года WSL стало возможно использовать полноценно, при этом способ отнюдь не очевиден. О нём и пойдёт речь.

Конечная цель

Для начала пара слов о том, что такое вообще Windows Subsystem for Linux, он же WSL в сокращённом варианте. Это прослойка между ядром Windows и приложениями для Linux, которая позволяет преобразовывать системные вызовы к ядру Linux в вызовы к ядру Windows. Благодаря тому, что виртуализация практически отсутствует, такое решение работает быстрее традиционной виртуализации, где эмулируется целый компьютер, как это происходит в Oracle VirtualBox и VMWare Player.

Кроме того, WSL включает в себя целый ряд утилит для интеграции с Windows — пути в файловой системе автоматически преобразовываются в нужный формат, из-под Linux можно запускать приложения в Windows (но не наоборот!), Linux в WSL имеет доступ ко всем портам и сервисам в Windows.

Для разработчика основное применение WSL сразу же видится в развёртывании среды разработки именно там. Всё же установка многих языков, компиляторов и интерпретаторов, утилит происходит в Linux куда проще — часто одной командой из репозитория. Да и привычная консоль под рукой.

В статье будет рассматриваться именно настройка среды разработки в WSL — для примера возьмём небольшой проект, написанный на Python/Angular/Go (а почему бы и нет?), разрабатываемый в Visual Studio Code. Однако описанные рекомендации в целом подойдут для любого другого редактора или IDE.

Установка для Windows 10 x64

Важный момент: WSL официально поддерживается только в Windows 10 x64, начиная с Anniversary Update. Если у вас иная версия — альтернативное решение представлено в следующем разделе.

  • Включить поддержку Windows Subsystem for Unix, открыв PowerShell от администратора и выполнив команду:

PS C:Windowssystem32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

  • Если у вас установлена десктопная редакция Windows 10: зайти в Microsoft Store и установить необходимый вам дистрибутив. Для нашего эксперимента будет использована Ubuntu 18.04 LTS. Затем вы сможете запустить ваш дистрибутив через меню «Пуск».
  • Если у вас установлена иная редакция Windows, без Microsoft Store (например, Windows 10 LTSC либо Windows Server): в PowerShell выполнить следующие команды:

PS C:Windowssystem32> cd ~
PS C:Userssomebody> Rename-Item .Ubuntu.appx .Ubuntu.zip
PS C:Userssomebody> Expand-Archive .Ubuntu.zip .Ubuntu
PS C:Userssomebody> cd .Ubuntu
PS C:Userssomebody> .ubuntu1804.exe

При первом запуске необходимо задать ваши логин и пароль.

vagrant up

Далее уже вам откроется консоль с Ubuntu.

Установка для 32-битных редакций Windows 10 и Windows 7, 8 и 8.1

К сожалению, на этих редакциях WSL не поддерживается. Но мы можем без особого труда заменить его Vagrant — мощной утилитой для конфигурирования виртуальных машин. Vagrant работает поверх других сред виртуализации: VirtualBox, VMWare Player или Microsoft Hyper-V. Поэтому стоит понимать, что такой вариант будет по умолчанию медленнее, нежели WSL. А в случае с VirtualBox значительно медленнее из-за файловой системы vboxsf.

Установить Vagrant можно с официального сайта. Также вам потребуется VirtualBox и Git. После этого создайте папку для вашей виртуальной машины, в ней создайте файл Vagrantfile со следующим содержимым:

Vagrant.configure(«2») do |config|
config.vm.box = «bento/ubuntu-18.04»
config.vm.synced_folder «c:/», «/windows»
# Необходимо указать для каждого порта, который вы хотите расшарить из ВМ или в ВМ
config.vm.network :forwarded_port, host: 5432, guest: 5432
config.vm.provider «virtualbox» do |vb|
vb.memory = 2048
end
end

После чего в том же PowerShell или cmd выполните команду:

vagrant up

После загрузки, настройки и запуска виртуальной машины вы попадёте в консоль Linux. Ура!

Устанавливаем всякие скучные вещи

Разворачиваем наше окружение под Python/JS/Go.

:~$ sudo apt update
:~$ sudo apt install build-essential
:~$ sudo apt install -y git nodejs golang python-dev libreadline-dev libbz2-dev libssl-dev libsqlite3-dev libxslt1-dev libxml2-dev libffi-dev
:~$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
:~$ # Инсталлятор попросит вас добавить загрузку pyenv в ~/.bashrc
:~$ source ~/.bashrc
:~$ pyenv install 3.7.2
:~$ pyenv global 3.7.2

Быстро проверяем работоспособность версий и, собственно, версии:

:~$ nodejs -v
v8.10.0
:~$ go version
go version go1.10.4 linux/amd64
:~$ python -V
Python 3.7.2
:~$

Неужели всё уже работает?

Конечно нет.

Сразу стоит отметить важный факт: ни Visual Studio Code, ни Sublime Text, ни даже ваша любимая IDE ничего не знают о существовании WSL. Из коробки более-менее с ним умеют работать только продукты от JetBrains. Лично мне Visual Studio Code по настройке, скорости работы нравится куда больше (но это текстовый редактор, о чём не стоит забывать).

И единственное, что вы можете сделать в Visual Studio Code, установленной на Windows, — подключить себе WSL вместо стандартного PowerShell в терминале. Это делается в User Settings:

{
«terminal.integrated.shell.windows»: «C:\Windows\System32\wsl.exe»,
# Добавьте сюда иные настройки по вашему усмотрению
}

На этом всё. Про линтер, автодополнение кода из библиотек, подсветку ошибок можете забыть, по крайней мере для Python. Способа решения сообщество ждёт вот уже три года. Сейчас самый простой и действенный способ заставить его работать — установить в WSL.

  • Установите MobaXterm и Cmder. Конечно, вы можете по своему выбору заменить их на альтернативные приложения. MobaXterm — мощный SSH-терминал со встроенным X-сервером, что позволяет ему рендерить приложения, которые запускаются на удалённом X-сервере (в данном случае — внутри WSL). Cmder — локальный эмулятор терминала с поддержкой PowerShell, cmd, bash, WSL и не только, с нормальным копипастом.
  • Запустите Cmder. По умолчанию он запустит cmd, но при двойном клике на нижнюю панель покажет окно, где есть возможные варианты.
  • Нам нужен тот вариант, что отмечен как {WSL::bash}. Он запустит в новой вкладке консоль внутри WSL.
  • Запустите MobaXterm. Он сразу же увидит WSL, установленную в системе. Для запуска X-сервера нажмите выделенную на скриншоте кнопку.
  • Настроим WSL для запуска GUI-приложений. Для этого откройте файл ~/.bashrc и допишите в него:

export DISPLAY=:0

  • После этого выполните команду source ~/.bashrc для применения изменений.
  • Не обязательно, но желательно установить XFCE (или другой DE на ваш вкус), а также поставить шрифты, иначе от внешнего вида VS Code у вас, возможно, вытекут глаза. По крайней мере, люди жалуются.

:~$ sudo apt install -y xfce4
:~$ sudo apt install -y fonts-noto fonts-noto-hinted fonts-noto-mono fonts-noto-unhinted

  • Скачайте установщик Visual Studio Code с официального сайта.
  • Установите зависимости и сам VS Code:

:~$ sudo apt install libgtk2.0-0 libxss1 libasound2
:~$ sudo dpkg -i <code deb file>
:~$ sudo apt install -f

  • Запустите VS Code при помощи команды code.

Вот теперь работает :) Ещё более кратко и по сути расписано вот тут.

Однако до совершенства есть ещё один штрих.

{

«window.titleBarStyle»: «native»,

}

Добавьте приведённую выше настройку в User Settings. В противном случае окно VS Code не будет ресайзиться.

А ты ещё докажи, что работает

Разворачивается оно стандартно для подобного рода проектов.

# You are on a project root
:~$ python -m venv env/
:~$ source env/bin/activate
:~$ pip install -r requirements.txt
:~$ cd frontend
:~$ npm install
:~$ ng build outDir=../backend/microblog/static
:~$ cd ../backend
:~$ python manage.py runserver

Отличия в настройке между Vagrant и WSL

Единственное существенное различие в контексте статьи — необходимость пробрасывать порты в хостовую файловую систему. По умолчанию Vagrant поднимает SSH-туннель на порту 2222 — именно туда вам будет необходимо логиниться из Cmder и добавить соответствующее соединение в MobaXterm.

Более подробно об использовании Vagrant с MobaXterm можно прочитать по ссылке.

Итоги

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

Упоминаются ли Linux и Windows вместе?

Если да, то что это за объединение?

Может ли это быть чем-то, что позволит преодолеть разрыв между двумя мирами?

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

До появления подсистемы Windows для Linux (WSL) между ними существовала четкая пропасть, и они никогда ничем не делились.

Но с появлением WSL разработчики теперь могут работать в Linux на своем настольном компьютере версии Windows 10 с помощью подсистемы Windows Subsystem for Linux или Windows WSL.

Запуск системы Linux рядом с системой Windows значительно упрощается и становится более гибким благодаря WSL.

Kali Linux в подсистеме Windows для Linux

Содержание

  1. Что такое подсистема Windows для Linux?
  2. Сравнение WSL1 и WSL2
  3. Для чего нужна подсистема Windows для Linux?
  4. Зачем использовать WSL вместо Linux на виртуальной машине?
  5. Как настроить среду разработки WSL?
  6. Установите дистрибутив Linux
  7. Создание логина и пароля Linux
  8. Обновление и модернизация пакетов
  9. Можно включить больше дистрибутивов
  10. Настройка терминала Windows
  11. Хранение файлов
  12. Выберите редактор кода
  13. Использование Visual Studio Code
  14. Использование Visual Studio
  15. Использование Git для управления версиями
  16. Настройка Docker для удаленной разработки
  17. Создание базы данных
  18. Настройка GPU
  19. Используйте основные команды WSL
  20. Монтирование внешнего диска или USB
  21. Запуск приложений с графическим интерфейсом Linux
  22. Плюсы и минусы использования подсистемы Windows для Linux
  23. Плюсы
  24. Минусы
  25. Заключение

Что такое подсистема Windows для Linux?

Подсистема Windows Subsystem for Linux (WSL) позволяет исполняемым файлам Linux 64-разрядного формата (ELF64) работать на ядре Windows в операционной системе (ОС) Windows 10.

WSL – это компонент, который позволяет использовать средства разработки Linux на компьютерах Windows, но не рабочие нагрузки.

Изначально он был разработан как вариант установки клиентской системы Windows.

Для администрирования экземпляра Linux в состав WSL входит служба управления сеансами в пользовательском режиме, уменьшенные процессы Pico для обработки системных вызовов Linux и драйверы Pico для имитации ядра Linux.

Такая архитектура позволяет ядру Windows принимать и обрабатывать системные вызовы Linux.

На прошлой неделе компания Microsoft объявила, что Windows Subsystem for Linux версии 2 (WSL2) теперь совместима с Windows Server 2022.

Основными причинами для перехода с WSL 1 на WSL 2 являются:

  • Ускорение работы файловой системы
  • Поддержка совместимости системных вызовов.

WSL 2 запускает ядро Linux внутри легковесной виртуальной машины с использованием новейшей технологии виртуализации (VM).

Однако WSL 2 не является типичной виртуальной машиной.

Сравнение WSL1 и WSL2

За исключением производительности в файловых системах разных ОС, которую можно решить, храня файлы проекта в той же операционной системе, что и инструменты, используемые для работы над проектом, архитектура WSL 2 по многим параметрам превосходит WSL 1.

Только Windows 11 или 10, версия 1903, Build 18362 или более поздняя поддерживают WSL 2.

Другими ключевыми различиями между обеими версиями являются:

  • Архитектурное различие
  • Производительность ввода-вывода файлов
  • WSL 2 обеспечивает полную совместимость с системными вызовами

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

В отличие от WSL 1, которая была основана на слое трансляции, созданном командой WSL, WSL 2 имеет встроенное ядро Linux, которое работает со всеми системными вызовами.

Для чего нужна подсистема Windows для Linux?

С помощью подсистемы Windows для Linux вы можете:

  • Выбрать дистрибутивы GNU/Linux, которые вы предпочитаете, из магазина Microsoft.
  • Запустить бинарники ELF-64 или стандартные инструменты командной строки, такие как grep, sed или awk.
  • Запускать программы командной строки GNU/Linux и скрипты оболочки Bash, включая: Инструменты: tmux, emacs и vi, Языки: Go, Rust, NodeJS, Javascript, Python, Ruby, C/C++, C# и F#, Сервисы: PostgreSQL, MongoDB, Apache, MySQL, SSHD и lighttpd.
  • Установить дополнительное программное обеспечение с помощью менеджера пакетов в вашем собственном дистрибутиве GNU/Linux.
  • Использовать оболочку командной строки, аналогичную Unix, для запуска приложений Windows.
  • Запускать программы GNU/Linux на компьютере с Windows.
  • Запускать Linux в оболочке Bash (Ubuntu, Debian, OpenSUSE, Kali, Alpine и т.д.). Вы можете использовать Bash для запуска утилит и программ командной строки Linux.

Зачем использовать WSL вместо Linux на виртуальной машине?

WSL использует меньше ресурсов (процессор, память и хранилище), чем целая виртуальная машина.

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

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

Как настроить среду разработки WSL?

В составе операционной системы Windows есть подсистема для Linux, которая называется Windows Subsystem for Linux.

Вот краткое руководство по настройке среды разработки WSL:

Установите дистрибутив Linux

Перед включением WSL установите дистрибутив Linux.

Чтобы воспользоваться преимуществами команды упрощенной установки, вы должны использовать последнюю версию Windows (Build 20262+).

Чтобы узнать, какая у вас версия и номер сборки, нажмите клавишу с логотипом Windows + R, введите winver и нажмите OK.

Обновления можно выполнить через меню Настройки или помощник обновления Windows.

Создание логина и пароля Linux

После завершения процесса установки WSL откройте дистрибутив Linux (по умолчанию Ubuntu).

Для вашего дистрибутива Linux должны быть созданы имена пользователей и пароли.

Обновление и модернизация пакетов

Используйте менеджер пакетов вашего дистрибутива для частого обновления пакетов.

Windows не выполняет автоматических обновлений и модернизаций.

Большинство пользователей Linux предпочитают справляться с этой задачей самостоятельно.

Можно включить больше дистрибутивов

Если вы хотите установить больше дистрибутивов Linux через Microsoft Store, вы можете загрузить свой собственный дистрибутив, использовать команду -import или загрузить свой собственный дистрибутив из Интернета.

Кроме того, вы можете создать уникальные образы WSL и распространить их по всей компании.

Настройка терминала Windows

Любое приложение, имеющее интерфейс командной строки, может быть запущено через терминал Windows.

Механизм рендеринга текста с ускорением GPU, множество вкладок и панелей, совместимость с символами Unicode и UTF-8, возможность создания собственных тем, а также возможность изменения текста, цвета фона и ярлыков – вот лишь некоторые из его ключевых особенностей.

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

Хранение файлов

Храните файлы проекта на том же компьютере, что и оборудование, которое вы собираетесь использовать.

Наибольшая скорость работы достигается при сохранении файлов в файловой системе WSL (Ubuntu, OpenSUSE и т.д.).

Для сохранения файлов в файловой системе Windows можно использовать командную строку Windows (PowerShell, Command Prompt) и инструменты Windows.

Хотя файлы можно просматривать из любой операционной системы, производительность может заметно снизиться.

Выберите редактор кода

Поскольку они изначально позволяют осуществлять удаленную разработку и отладку WSL, мы советуем использовать Visual Studio Code или Visual Studio.

С помощью Visual Studio Code вы можете использовать WSL как полнофункциональную среду программирования.

Visual Studio обеспечивает встроенную поддержку WSL для кроссплатформенной разработки на C++.

Использование Visual Studio Code

Вы можете использовать WSL в качестве основной среды разработки из VS Code с помощью расширения Remote – WSL и Visual Studio Code.

После установки и настройки VS Code вы можете использовать удаленный сервер VS Code для запуска вашего WSL-проекта.

Использование Visual Studio

Используя один и тот же экземпляр Visual Studio 2022, вы можете собирать и отлаживать проекты CMake на Windows, WSL-дистрибутивах и SSH-соединениях.

Использование Git для управления версиями

Наиболее распространенная программа управления версиями называется Git.

С помощью Git вы можете отслеживать изменения, которые вы вносите в файлы, чтобы иметь запись о том, что было сделано, и при необходимости вернуться к более старым версиям.

Git также облегчает сотрудничество, позволяя объединять правки нескольких авторов в одном хранилище.

Настройка Docker для удаленной разработки

Docker Desktop предлагает среду разработки для создания, распространения и запуска докеризованных приложений для Windows.

Вы можете запускать контейнеры Linux и Windows в Docker Desktop на одной машине, включив механизм на базе WSL 2.

Создание базы данных

Начните с подключения вашего проекта в WSL к базе данных. С MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server или SQLite вы сможете быстро приступить к работе.

Настройка GPU

Подсистема Windows для Linux (WSL) предоставляет отличную среду для запуска наиболее распространенных и популярных приложений машинного обучения с GPU-ускорением, независимо от того, являетесь ли вы специалистом по исследованию данных, инженером по ML или только начинаете работать с ML. Итак, вашим следующим шагом должна стать установка и запуск GPU.

Используйте основные команды WSL

Лучший способ администрирования дистрибутивов Linux, установленных через WSL, – это PowerShell или Windows Command Prompt (CMD).

Монтирование внешнего диска или USB

Используйте WSL 2 для монтирования диска и чтения его содержимого, если вам нужен доступ к диску формата Linux, который Windows не поддерживает.

Процедуры поиска диска и раздела для подключения к WSL2, их монтирования и получения доступа к ним рассматриваются в этом уроке.

Запуск приложений с графическим интерфейсом Linux

Чтобы запускать программы Linux GUI (X11 и Wayland) на Windows в полностью интегрированной среде рабочего стола, теперь вы можете изучить совместимость с Windows Subsystem for Linux (WSL).

Благодаря WSL 2 приложения с графическим интерфейсом Linux на Windows теперь могут ощущаться как родные и интуитивно понятные.

Плюсы и минусы использования подсистемы Windows для Linux

Вот некоторые плюсы и минусы использования Windows Subsystem для Linux.

Плюсы

Идеально подходит для разработчиков, использующих инструменты с открытым исходным кодом

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

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

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

Но если вам нужно запустить свой код на нескольких платформах, это один из единственных вариантов, который позволит вам сделать это без необходимости устанавливать что-либо на свой компьютер.

Совместимость Windows-Linux

Совместимость Windows и Linux обеспечивается с помощью WSL.

Файловая система как Windows, так и Linux доступна для просмотра.

Кроме того, они могут запускать программы из командных интерпретаторов друг друга.

Это может привести к появлению некоторых интригующих приложений и, возможно, к переходу от рассмотрения этих двух систем как конкурентов к рассмотрению их как взаимодополняющих параметров.

Проще, чем двойная загрузка или виртуальные машины

Вам не нужно перезагружаться или запускать виртуальную машину, поскольку WSL уже работает в Windows.

При установке системы с двойной загрузкой необходимо оставить место на жестком диске и убедиться, что у вас есть резервный носитель для загрузки в случае, если что-то пойдет не так.

Вы должны перезагрузить систему, если хотите использовать Windows для выполнения программ Linux или наоборот.

Хотя виртуальная машина (VM) является более простой и быстрой в настройке, Windows и Linux сталкиваются с трудностями при обмене данными, поскольку VM все еще является принципиально другой машиной.

На виртуальной системе часто требуется настройка файлового сервера. Кроме того, виртуальные машины имеют стоимость производительности.

Простое введение в Linux для пользователей Windows

Для тех, кто не знаком с Linux, WSL может стать лучшей отправной точкой.

Они могут познакомиться с командами Linux, не устанавливая полностью новую операционную систему. WSL можно установить всего несколькими щелчками мыши из магазина Microsoft Store.

Кроме того, это облегчит людям переход на Linux.

Минусы

Вы продолжаете использовать Windows

Поскольку использование WSL все равно подразумевает участие в этой экосистеме, ее использование вызывает возражения у тех, кто идеологически не приемлет Microsoft и проприетарное ПО.

WSL будет поддерживать участие в этой системе.

Для ярых сторонников свободного программного обеспечения не подойдет ничто иное, как ПК под управлением свободной версии GNU/Linux.

WSL создавалась не для серверов

Дистрибутивы не предназначены для работы в качестве серверов, хотя WSL может быть установлена на Windows Server.

Запустить такие серверы, как Apache или MariaDB на Ubuntu сложнее, поскольку система не поддерживается.

Большинство пользователей, которым требуются серверы, устанавливают обычные Linux-серверы, поэтому этот недостаток может быть не столь существенным.

WSL может препятствовать внедрению Linux на настольных компьютерах

Меньшему числу пользователей может понадобиться установка настольной версии Linux, поскольку WSL совместима с Windows.

Учитывая, что у них уже есть настольная система Windows и они могут запускать приложения Linux GUI на Windows, они могут не видеть необходимости в установке совершенно новой настольной ОС.

Предположим, что только крошечный процент пользователей Linux работает с полным рабочим столом.

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

Заключение

В своем нынешнем виде WSL – это довольно крутой прогресс в Windows.

Разработчики, работающие в Windows, могут получить доступ к среде Linux благодаря Windows Subsystem for Linux.

WSL предлагает ядро Linux и позволяет установить несколько дистрибутивов внутри среды Windows, устраняя необходимость запускать виртуальную машину или полагаться на удаленный компьютер с Linux для разработки.

Конечная цель – предоставить простой способ запуска Linux в Windows.

Самое главное, WSL не занимает много памяти (например, около 256 МБ для Bash), что означает, что ваша машина может работать быстрее и плавнее.

Содержание

  • Вариант 1: Установка в полуавтоматическом режиме
    • Шаг 1: Выбор доступных дистрибутивов Linux
    • Шаг 2: Запуск инсталляции
  • Вариант 2: Установка в ручном режиме
    • Шаг 1: Предварительная настройка системы
    • Шаг 2: Загрузка и настройка ядра WSL2
    • Шаг 3: Выбор и инсталляция дистрибутива Linux
  • Вопросы и ответы

установка wsl2 в windows 10

Вариант 1: Установка в полуавтоматическом режиме

Установка WSL в операционной системе Windows осуществляется посредством выполнения специальных команд в консоли. Для этого потребуется предварительно определиться с дистрибутивом Linux, а затем запустить процесс его инсталляции.

Важно! Приведенная ниже инструкция может быть выполнена только при условии использования Windows 10 версии 2004 (19041) и более новых. Узнать эту информацию можно в свойствах системы. Этой теме на нашем сайте посвящена отдельная статья, при необходимости ознакомьтесь с ней, перейдя по ссылке ниже.

Подробнее: Как узнать версию Windows 10

установка wsl2 в windows 10_01

Шаг 1: Выбор доступных дистрибутивов Linux

Каждому пользователю актуальной версии Windows 10 предоставляется возможность вручную выбрать дистрибутив Linux, который будет использоваться в WSL2. Для просмотра списка доступных систем необходимо ввести специальную команду в консоль, поэтому предварительно запустите «Командную строку» с правами администратора. Сделать это можно множеством способов, например посредством поискового запроса, как показано на изображении ниже.

установка wsl2 в windows 10_02

Читайте также: Как открыть «Командную строку» от имени администратора в Windows 10

Примечание! По умолчанию всегда выбрана последняя версия дистрибутива Ubuntu. Если именно его вы и хотите установить, то пропустите этот шаг и переходите сразу ко второму.

После того как окно консоли будет открыто, впишите или вставьте в него одну из нижеприведенных команд, после чего нажмите клавишу Enter:

wsl --list --online или wsl -l -o

установка wsl2 в windows 10_03

В результатах выдачи будет приведен список всех доступных дистрибутивов Linux. На этом этапе вам необходимо запомнить или скопировать в буфер обмена название, которое находится в столбце «NAME».

Обратите внимание! Если в списке доступных дистрибутивов нет желаемого, его можно импортировать в WSL2 посредством файла TAR или APPX. При необходимости есть возможность создать собственный дистрибутив на базе ядра Linux. Эти процессы описываются в официальной документации Microsoft, при необходимости ознакомиться с ними можно, воспользовавшись ссылками ниже.

Импорт любого дистрибутива Linux для использования с WSL
Создание пользовательского дистрибутива Linux для WSL

Lumpics.ru

Шаг 2: Запуск инсталляции

После того как версия дистрибутива Linux для WSL2 была выбрана, можно переходить непосредственно к ее инсталляции. Делается это тоже в «Командной строке», для чего нужно воспользоваться приведенной ниже командой. Не забудьте после ее ввода нажать клавишу Enter.

wsl --install -d <НазваниеДистрибутива>

установка wsl2 в windows 10_04

Примечание! Если вы хотите установить версию по умолчанию, тогда нет необходимости прописывать название дистрибутива вручную, можно воспользоваться следующей командой:

wsl —install

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

установка wsl2 в windows 10_05

После всех этих процедур можно будет воспользоваться WSL2 для вызова подсистемы Linux. Для этого достаточно будет запустить установленный дистрибутив через меню «Пуск».

Вариант 2: Установка в ручном режиме

Если версия вашей операционной системы Windows 10 ниже 2004 (19041), тогда воспользоваться вышеприведенной инструкцией не получится и большинство действий придется выполнять вручную.

Шаг 1: Предварительная настройка системы

Первостепенно необходимо проверить, поддерживает ли установленная версия операционной системы обновление WSL до второй версии. Сделать это можно посредством вызова окна «Windows: сведения». Для этого нажмите сочетание горячих клавиш Win + R, впишите в поле запроса команду winver и нажмите клавишу Enter.

установка wsl2 в windows 10_06

Появится соответствующее окно, в котором будет указана версия операционной системы и ее сборка. Убедитесь, что она выше 1903 (18362). Если это так, можете продолжить выполнение этой инструкции, в противном случае попробуйте прежде обновить Windows 10 до актуальной версии.

установка wsl2 в windows 10_07

Читайте также: Как обновить Windows 10 до последней версии

Важно! Если ваш компьютер работает на процессоре с архитектурой ARM64, этот способ установки WSL2 не подойдет. Обновитесь до последней версии Windows 10 и воспользуйтесь ранее предоставляемой инструкцией.

После того как вы удостоверились в актуальности версии операционной системы, необходимо произвести ее предварительную настройку, а именно — включить «Подсистему Windows для Linux» и компонент виртуальных машин. Делается это в оболочке PowerShell, поэтому предварительно запустите ее с правами администратора. Проще всего сделать это через контекстное меню кнопки «Пуск», как показано на изображении ниже. Но это не единственный способ.

Подробнее: Как открыть PowerShell в Windows 10

установка wsl2 в windows 10_08

Теперь необходимо включить компонент «Подсистема Windows для Linux». Для этого скопируйте и вставьте в окно консоли PowerShell следующую команду, после чего нажмите Enter:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

установка wsl2 в windows 10_09

Ожидайте завершения процедуры, когда на экране появится приглашение к вводу новой команды. После этого включите компонент виртуальных машин. Это делается посредством нижепредставленной команды:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

установка wsl2 в windows 10_10

Важно! Если результатом ее выполнения является ошибка, потребуется предварительно включить виртуализацию. Делается это через BIOS, но сначала следует проверить статус этой функции в операционной системе. На нашем сайте есть отдельные статьи, посвященные этой теме.

Подробнее:
Как проверить, включена ли виртуализация в Windows 10
Как включить виртуализацию в BIOS

установка wsl2 в windows 10_11

После того как компонент виртуальных машин будет установлен, потребуется перезагрузить компьютер.

Шаг 2: Загрузка и настройка ядра WSL2

Следующим шагом будет загрузка и установка ядра второй версии WSL, но изначально нужно определить архитектуру процессора, на которой работает операционная система. Для этого вызовите окно «Командной строки», в котором выполните следующую команду:

systeminfo | find "Тип системы"

установка wsl2 в windows 10_12

В результатах выдачи будет указана архитектура процессора. Если упоминается x64, скачайте пакет обновления ядра Linux в WSL2 для 64-разрядных компьютеров на базе процессора x86. Если в результатах выдачи есть упоминание ARM64, загрузите пакет обновлений по этой ссылке. Сохраните файл в любое удобное место, после чего запустите его, дважды кликнув по названию. Далее следуйте инструкции инсталлятора, пока не будет произведена установка.

установка wsl2 в windows 10_13

Теперь необходимо выбрать WSL2 версией по умолчанию, чтобы при установке дистрибутивов Linux они инсталлировались в этом окружении. Для этого достаточно в окне PowerShell выполнить представленную ниже команду:

wsl --set-default-version 2

установка wsl2 в windows 10_14

Шаг 3: Выбор и инсталляция дистрибутива Linux

Как только все необходимые компоненты будут установлены, можно переходить к выбору дистрибутива Linux для инсталляции в окружении WSL2. В отличие от первого способа, представленного в этой статье, все действия будут выполняться не в «Командной строке», а в Microsoft Store. Для удобства ниже приведен список доступных систем со ссылками на них:

  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS
  • Ubuntu 22.04 LTS
  • openSUSE Leap 15.1
  • SUSE Linux Enterprise Server 12 SP5
  • SUSE Linux Enterprise Server 15 SP1
  • Kali Linux
  • Debian GNU/Linux
  • Fedora Remix for WSL
  • Pengwin
  • Pengwin Enterprise
  • Alpine WSL
  • Raft (пробная версия)

Воспользуйтесь нужной ссылкой, чтобы перейти в магазин приложений от Microsoft. Находясь на странице нужного дистрибутива, щелкните по кнопке «Получить», расположенной рядом с его названием.

установка wsl2 в windows 10_15

Дождитесь завершения загрузки, после чего кликните по появившейся кнопке «Открыть». Запустится окно консоли, в котором будет предложено подождать несколько минут, пока идет распаковка дистрибутива. В дальнейшем процедура инициализации ядра Linux будет занимать считанные секунды.

установка wsl2 в windows 10_16

Примечание! Представленный выше список дистрибутивов взят с официального сайта Microsoft и может со временем измениться. В случае необходимости рекомендуем обратиться за справкой непосредственно к статье-первоисточнику.

Понравилась статья? Поделить с друзьями:
  • Подождите при запуске windows 8 на ноутбуке
  • Подождите при запуске windows 10 долго
  • Подождите пока запустится центр устройств windows mobile
  • Подождите пока завершится удаление или изменение программы windows как убрать
  • Подождите пока windows настроит microsoft visio 2013