Windows subsystem for linux wsl

Среда Windows Subsystem for Linux (WSL) позволяет запускать нативные приложения, писать скрипты, выполнять команды и скрипты Linux непосредственно из Windows без использования эмуляторов или развертывания выделенных виртуальных машин. Актуальной версией среды является WSL 2, в которой используется полноценное ядро Linux (версия ядра 5.15) и обеспечивает полную совместимость с системными вызовами. Образ ядра Linux в WSL представляет собой легкую виртуальную машину, для запуска которой не нужно устанавливать полноценную роль Hyper-V.

Содержание:

  • Как установить Windows Subsystem for Linux (WSL2)?
  • WSL: Установка дистрибутива Linux в Windows
  • Команды для управления WSL в Windows
  • Использование Linux в среде WSL

Вы можете запустить WSL 2:

  • Во всех версиях Windows 10, начиная с 1903, а также в Windows 11 и Windows Server 2022;
  • В настройка BIOS/UEFI компьютера должна быть включена поддержка аппаратной виртуализации: Intel VT (Intel Virtualization Technology) или AMD-V (SVM Mode).

Как установить Windows Subsystem for Linux (WSL2)?

Компонент WSL по умолчанию отключен в Windows. Современных дистрибутивах Windows 10 и Windows 11 для установки среды WSL достаточно выполнить команду:

wsl --install

Этак команда автоматически включит все необходимые компоненты Windows, необходимые для работы WSL, установить обновление ядра Linux для WSL2, загрузит дистрибутив Ubuntu (по-умолчанию) и установит его в WSL.

команда для быстрой установки wsl в windows 10 и 11

Осталось перезагрузить компьютер, и вы можете запускать среду WSL!

Вы можете установить для WSL другой дистрибутив Linux. Выведите список доступных дистрибутивов:

wsl --list --online

Укажите имя дистрибутива Linux, который установить в WSL. Например:

wsl --install -d kali-linux

список доступных дистрибутивов Linux для WSL

Если в BIOS/UEFI компьютера не включена виртуализация, при установке WSL вы получите ошибку:

Installation failed with error 0x80070003 or error 0x80370102” it means that Bios Level Virtualization is not enabled on your computer.

Вы можете установить WSL2 в Windows вручную. Для этого придется вручную последовательно выполнить все этапы, который команда wsl —install запускала автоматически:

  1. Установить WSL
  2. Включить компонент виртуалзации VirtualMachinePlatform
  3. Установить ядро WSL 2
  4. Скачать и установить дистрибутив Linux для WSL

Сначала установите следующие компоненты Windows:

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

установить компонент wsl в windows вручную

Перезагрузите компьютер.

Скачаем и установим обновление ядра Linux для WSL2 (WSL2 Linux kernel update package for x64 machines — https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi). Можете скачать пакет вручную или с помощью PowerShell:

Invoke-WebRequest -Uri https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -OutFile "$($env:userprofile)\Downloads\wsl_update_x64.msi" -UseBasicParsing
Invoke-Item "$($env:userprofile)\Downloads\wsl_update_x64.msi"
rm "$($env:userprofile)\Downloads\wsl_update_x64.msi"

windows subsyste for linux update setup

Еще раз перезагрузите компьютер и назначьте версию WSL 2 в качестве среды по-умолчанию:

wsl --set-default-version 2

wsl2 назначить по умолчанию

WSL: Установка дистрибутива Linux в Windows

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

Можно установить пакет с дистрибутивом Linux через Microsoft Store. Доступны следующие дистрибутивы:

  • Ubuntu
  • Debian
  • Kali Linux
  • OpenSUSE
  • Oracle Linux
  • SUSE Linux Enterprise Server
  • Fedora

Найдите нужную версию дистрибутива в Store и установите ее, нажав кнопку Получить (Get).

скачать образ linux для wsl из microsoft store

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

Invoke-WebRequest https://aka.ms/wslubuntu2204 -OutFile ubuntu-2204.appx –UseBasicParsing

Установите пакет для WSL с помощью:

Add-AppxPackage .\ubuntu-2204.appx

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

задать пароль для wsl

После установки вы можете в меню Пуск появится отдельная программа для запуска Linux.

Также вы можете запустить ваш Linux из отдельной вкладки Windows Terminal или с помощью команды
wsl
.

Команды для управления WSL в Windows

Рассмотрим основные команды для управления ядром и дистрибутивами Linux в WSL.

Проверить текущую версию ядра WSL:

wsl --version

версия wsl в windows

Обновить ядро WSL вручную:

wsl --update

Откатится к предыдущему ядру WSL:

wsl --update rollback

Вывести список установленных версий Linux:

wsl --list

Вывести дистрибутив Linux, который используется по-умолчанию:

wsl --status

Дистрибутив Linux по-умолчанию в WSL можно изменить:

wsl --setdefault Ubuntu

Запустить определенный дистрибутив в WSL:

wsl -d kali-linux

Завершить среду WSL:

wsl --shutdown

Можно войти в WSL Ubuntu под root и сбросить пароль:
ubuntu config --default-user root
Passwd

Вернуть пользователя по умолчанию
ubuntu config --default-user your_username

Для настройки параметров WSL и дистрибутивов Linux используются конфиг файлы:

  • wsl.conf – файл с настройками конкретного дистрибутива Linux (находится в директории /etc)
  • .wslconfig – глобальные настройки WSL, которые применяются ко всем дистрибутовам (находится в профиле пользователя в
    %UserProfile%
    )

Например, если вы хотите ограничить использование оперативной памяти и CPU компьютера дистрибутивами Linux в WSL, создайте такой файл
%UserProfile%\.wslconfig
:

[wsl2]
memory=2GB
processors=2

Использование Linux в среде WSL

Дистрибутив Linux, установленный в WSL является полноценной операционной системой. Поэтому после установки рекомендуется выполнить обновление пакетов. Для Ubuntu выполните команду:

$ sudo apt-get update && sudo apt-get upgrade -y

обновление пакетов в ubuntu wsl

Файловая система вашего дистрибутива Linux хранится в профиле пользователя в виде VHDX файла. Например, виртуальный диск Ubuntu хранится в папке
%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState

файл vhdx образа диска в linux wsl

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

Также для прямого доступа к файлам WSL из Windows можно использовать UNC путь. Например:

notepad \\wsl$\Ubuntu\sysops\home\1122.txt

В свою очередь локальные диски Windows монтируются в WSL в папку mnt. Вывести список файлов папок на диске C:

wsl
ls /mnt
ls/mnt/c

просмот файлов на диске windows из wsl

Другие примеры запуска Linux команд из Windows:
dir | wsl grep Sa
wsl ls ‑la > 123.txt
wsl ls ‑la /proc/cpuinfo
wsl ls ‑la “/mnt/c/Program Files”

Вы можете установить любые пакеты в Linux. Например, установите файловый менеджер Midnight Commander:

$ sudo apt-get install mc

В современной версии WSL 2 вы можете запускать из Windows любые приложения Linux с графическим интерфейсом (X11 и Wayland). Например, установите графический редактор:

$ sudo apt install gimp -y

Чтобы запустить его из Windows просто выполните команду:

wsl gimp

From Wikipedia, the free encyclopedia

Windows Subsystem for Linux

Bash running on Windows 10

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

2.4.10
/ 2 February 2025; 3 months ago[1]

Preview release

2.4.9
/ January 30, 2025; 3 months ago[2]

Repository github.com/microsoft/WSL2-Linux-Kernel
Operating system Windows 11, Windows 10, Windows 10 LTSB/LTSC, Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016
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

Windows Subsystem for Linux (WSL) is a feature of Microsoft Windows that allows the use of a GNU/Linux environment from within Windows, foregoing the overhead of a virtual machine and being an alternative to dual booting. The WSL command-line interface tool is installed by default in Windows 11, but a distribution must be downloaded and installed through it before use.[3] In Windows 10, WSL can be installed either by joining the Windows Insider program or manually via Microsoft Store or Winget.[4]

The original version, WSL 1, differs significantly from the second major version, WSL 2. WSL 1 (released August 2, 2016), acted as a compatibility layer for running Linux binary executables (in ELF format) by implementing Linux system calls in the Windows kernel.[5] WSL 2 (announced May 2019[6]), introduced a real Linux kernel – a managed virtual machine (via Hyper-V) that implements the full Linux kernel. As a result, WSL 2 is compatible with more Linux binaries as not all system calls were implemented in WSL 1.[7]

Microsoft offers WSL for a variety of reasons. Microsoft envisions WSL as «a tool for developers – especially web developers and those who work on or with open source projects».[8] Microsoft also claims that «WSL requires fewer resources (CPU, memory, and storage) than a full virtual machine» (a common alternative for using Linux in Windows), while also allowing the use of both Windows and Linux tools on the same set of files.[8]

Microsoft’s first foray into achieving Unix-like compatibility on Windows was 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 aimed for native Linux compatibility.[citation needed] 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.[citation needed] Only Ubuntu (with Bash as the default shell) was supported.[citation needed] 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.[citation needed] Multiple Linux distributions could be installed and were available for install in the Windows Store.[12]

Though the initial design of WSL was faster and more popular[according to whom?] than the previous UNIX-on-Windows projects, Windows kernel engineers found difficulty in trying to increase WSL’s performance and system call compatibility by trying to reshape the existing NT kernel to recognize and operate correctly on Linux’s API.[citation needed] 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.[13] In 2019, Microsoft announced a completely redesigned WSL architecture (WSL 2) using this lightweight VM technology hosting actual (customized) Linux kernel images, claiming to provide full syscall compatibility.[7] Microsoft announced WSL 2 on May 6, 2019,[6] and it was shipped with Windows 10 version 2004.[14] It was also backported to Windows 10 version 1903 and 1909.[15]

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

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.[18][17] 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.[19]

On October 11, 2021, Microsoft introduced a version of WSL in the Microsoft Store for Windows 11.[20] It reached version 1.0.0 in November 2022 with added support for Windows 10.[citation needed]

In November 2024, Microsoft announced new features coming to WSL intended to improve the experience for new users, including a window with new «getting started» navigation tips and explanations.[21]

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 Generally available; Windows 10 support
Bash running on Windows 10

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,[22][23][24][25] openSUSE,[26] SUSE Linux Enterprise Server,[27][28][12] Debian[29] and Kali Linux.[30] 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).[8]

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

The wsl.exe command accesses and manages Linux distributions in WSL via command-line interface (CLI) – for example via Command Prompt or PowerShell. With no arguments it enters the default distribution shell. It can list available distributions, set a default distribution, and uninstall distributions.[31] It can also run a Linux command[32] – replacing lxrun.exe which is deprecated as of Windows 10 1803 and later.[33]

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.[34] WSLg was officially released at the Microsoft Build 2021 conference and is included in Windows 10 Insider build 21364 or later.[19] 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.[35] FreeRDP is used to encode all communications going from the Remote Desktop Protocol (RDP) Server (in Weston) to the RDP Client (msrdc on Windows[36]) according to the RDP protocol specifications.[37]

Prerequisites for running WSLg include:

  • Windows 11 or Windows 10 Insider Preview builds 21362–21390.[34][38]
  • A system with virtual GPU (vGPU) enabled for WSL is recommended, as it will allow benefits from hardware accelerated OpenGL rendering.[34]
Firefox for Linux running on WSL

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 processes, as well as handling the Linux system calls and the binary locks during their execution.[39] All processes invoked by a particular user go into a so called «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 made 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 administrator privileges, and allow such access.[8]

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 total lack of Linux 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.[8]

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.[7] In June 2020, a benchmark with 173 tests on WSL 2 (20H2) with an AMD Ryzen Threadripper 3970X showed an average of 87% of the performance of native Ubuntu 20.04 LTS. In contrast, WSL 1 had only 70% of the performance of native Ubuntu. WSL 2 improves I/O performance, providing a near-native level.[50]
A comparison of 69 tests with an Intel Core i9-10900K in May 2020 resulted in nearly the same relative performance.[51] In December 2020, a benchmark with 43 tests on WSL 2 (20H2) with an AMD Ryzen 9 5900X displayed an average of 93% of the performance of native 20.04.1 LTS, compared to WSL 1 which only achieved 73%.[52]

Synaptic package manager running on WSL

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 do not 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.[6] From Windows an IFS network redirector is provided for Linux guest file access using the UNC path prefix of \\wsl$.[citation needed]

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.[4]

WSL 2 on Windows 11 retains 95% of the performance of native Ubuntu 20.04 LTS.[58]

WSL 1 and WSL 2 both support IPv6 connections.[59][60] IPv6 support in WSL 2 requires Windows 11 or newer.[61]

Reception and criticism

[edit]

In 2017 Richard Stallman expressed concerns that integrating GNU functionality into Windows would hinder the development of free software, calling efforts like WSL «a step backward in the campaign for freedom.»[62]

In 2021, Jim Salter writing for Ars Technica called WSL «the best part of Windows 11,» noting the ability to run applications with graphics and sound and install multiple distributions side-by-side.[63]

WSL has most widely been described as a tool used and useful for developers,[64] and not generally as being recommended for end users.[65][66][67] Reviewers criticized some limitations, noting that it is not the same as having Linux and that it suffers from some performance limitations, including slow disk I/O.[64]

  • Azure Sphere
  • FreeBSD § OS compatibility layers
  • SmartOS § Virtualization
  • Windows Terminal
  • Xenix
  1. ^ «Release 2.4.10 · microsoft/WSL». GitHub. 2 February 2025. Retrieved 6 February 2025.
  2. ^ «Release 2.4.9 · microsoft/WSL». GitHub. Retrieved 6 February 2025.
  3. ^ «How to install Linux on Windows with WSL». Microsoft. 19 November 2024. Retrieved 25 February 2025.
  4. ^ a b pokhrel, bishal (27 December 2023). «Install WSL on Windows 10 or 11». Droid Crafts.
  5. ^ 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. pp. 18–19. ISBN 978-1-80056-352-0. OCLC 1202451000.
  6. ^ a b c d Craig Loewen (6 May 2019). «Announcing WSL 2». Windows Command Line Tools For Developers.
  7. ^ a b c mscraigloewen (19 November 2024). «About WSL 2». docs.microsoft.com.
  8. ^ a b c d e «Frequently Asked Questions for WSL». Microsoft. Retrieved 13 November 2016.
  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. ^ 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
  14. ^ «WSL 2 will be generally available in Windows 10, version 2004 — Windows Command Line». Windows Command Line. 13 March 2020. Retrieved 15 October 2021.
  15. ^ «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.
  16. ^ «GPU accelerated ML training inside the Windows Subsystem for Linux — Windows Developer Blog». Windows Blog. 17 June 2020. Retrieved 16 October 2021.
  17. ^ 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.
  18. ^ 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.
  19. ^ a b Abrams, Lawrence (29 May 2021). «Hands on with WSLg: Running Linux GUI apps in Windows 10». Bleeping Computer. Retrieved 30 May 2021.
  20. ^ «A preview of WSL in the Microsoft Store is now available! — Windows Command Line». Windows Command Line. 11 October 2021. Retrieved 16 October 2021.
  21. ^ «Microsoft Wants to Simplify the Windows Subsystem for Linux». Yahoo Tech. 19 November 2024. Retrieved 30 March 2025.
  22. ^ Harsh, Mike (30 March 2016). «Run Bash on Ubuntu on Windows». Building Apps for Windows. Microsoft.
  23. ^ Finley, Klint (30 March 2016). «Why Microsoft Making Linux Apps Run on Windows Isn’t Crazy». Wired. Condé Nast.
  24. ^ Kirkland, Dustin (30 March 2016). «Ubuntu on Windows – The Ubuntu Userspace for Windows Developers». Ubuntu Insights. Canonical.
  25. ^ Hammons, Jack (9 April 2016). «Bash on Ubuntu on Windows». MSDN. Microsoft.
  26. ^ Get openSUSE Leap 42 — Microsoft Store
  27. ^ Get SUSE Linux Enterprise Server 12 — Microsoft Store
  28. ^ Yegulalp, Serdar (12 May 2017). «Windows Subsystem for Linux welcomes Suse and Fedora options». InfoWorld. Retrieved 16 September 2017.
  29. ^ «Debian GNU/Linux for WSL now available in the Windows Store». Windows Command Line Tools For Developers. Retrieved 7 March 2018.
  30. ^ «Kali Linux in the Windows App Store». Retrieved 9 March 2018.
  31. ^ Manage and configure Windows Subsystem for Linux
  32. ^ Windows Subsystem for Linux interoperability with Windows
  33. ^ Command Reference for Windows Subsystem for Linux
  34. ^ a b c Welcome to WSLg, Microsoft, 7 November 2021, retrieved 7 November 2021
  35. ^ Salter, Jim (7 October 2021). «The best part of Windows 11 is a revamped Windows Subsystem for Linux». Ars Technica. Retrieved 7 November 2021.
  36. ^ Viswav, Pradeep (11 October 2021). «Windows Subsystem for Linux (WSL) now available as an app from Microsoft Store on Windows 11». MSPoweruser. Retrieved 30 April 2024.
  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). Archived from the original on 23 August 2019. Retrieved 21 January 2018.
  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 [sic] 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. Archived from the original on 7 July 2018. 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. ^ Larabel, Michael (29 September 2021). «Windows 11 WSL2 Performance is Quite Competitive Against Ubuntu 20.04 LTS / Ubuntu 21.10». Phoronix.
  59. ^ craigloewen-msft (15 December 2023). «Comparing WSL Versions». learn.microsoft.com. Retrieved 16 December 2023.
  60. ^ craigloewen-msft (31 July 2023). «Accessing network applications with WSL». learn.microsoft.com. Retrieved 11 October 2023.
  61. ^ «wsl: Hyper-V firewall is not supported wsl: Mirrored networking mode is not supported, falling back to NAT networking · Issue #10495 · microsoft/WSL». GitHub. Retrieved 16 December 2023.
  62. ^ Heath, Nick (20 September 2017). «Will Microsoft love Linux to death? Shuttleworth and Stallman on whether Windows 10 is free software’s friend». TechRepublic. Archived from the original on 1 December 2022. Retrieved 18 February 2022.
  63. ^ Salter, Jim (7 October 2021). «The best part of Windows 11 is a revamped Windows Subsystem for Linux». Ars Technica. Retrieved 30 March 2025.
  64. ^ a b «How Does the Windows 10 Subsystem for Linux Work and What Is It For? — Petri IT Knowledgebase». 12 February 2018. Retrieved 30 March 2025.
  65. ^ Salter, Jim (19 March 2020). «Windows Subsystem for Linux is making inroads with developers». Ars Technica. Retrieved 30 March 2025.
  66. ^ Walker, Brian (27 April 2023). «No, You Don’t Need Microsoft Windows Subsystem for Linux (WSL), and Here’s Why». MUO. Retrieved 30 March 2025.
  67. ^ Bhartiya, Swapnil (12 February 2018). «Windows Subsystem for Linux: A Bridge Between Two Platforms». Linux.com. Retrieved 30 March 2025.
  • 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.
  • 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.

Время на прочтение6 мин

Количество просмотров106K

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

Я начал собирать рабочую станцию под задачи машинного обучения. Поставил в неё, кроме прочего, отличный процессор, много памяти, достойную видеокарту. Практически все мои задачи я решал в Ubuntu. Правда, для работы с текстами мне нужен был Microsoft Office. Онлайновый Office тогда ещё не появился, и, давайте называть вещи своими именами, LibreOffice — это просто ужас какой-то. Для меня решением стала двойная загрузка в конфигурации Ubuntu — Windows 10. Мне невероятно понравилось то ощущение свободы, которое испытываешь, переходя с ОС от Apple на Ubuntu. А возможности, которые открываются перед тем, кто сам собирает свой компьютер, практически бесконечны.

Двойная загрузка в течение долгого времени полностью меня устраивала. А когда я миллион раз ей воспользовался, появилась технология WSL (Windows Subsystem for Linux, подсистема Windows для Linux). Когда это случилось, я начал решать некоторые свои Linux-задачи в Windows. Правда, даже так, многого для полноценной работы мне ещё не хватало. Но теперь, с выходом WSL 2, у меня возникает такое ощущение, что новая версия WSL способна кардинальным образом изменить ситуацию. Сегодня я предлагаю поговорить о том, как, с помощью WSL 2, перенести задачи по разработке программ из Linux в Windows 10. Я расскажу о новых возможностях WSL 2, и о том, что можно ожидать от этой подсистемы в будущем.

Обзор WSL 2

WSL 2 — это новая версия подсистемы Windows для Linux. В этой версии имеются некоторые изменения, определяющие то, как Linux-дистрибутивы взаимодействуют с Windows.

Microsoft любит Linux

В этом релизе WSL в распоряжении пользователя оказывается улучшенная производительность файловой системы и полная совместимость с системными вызовами. Конечно, у нас есть возможность запускать Linux либо на WSL 1, либо на WSL 2, и, более того, переключаться между разными версиями WSL можно в любое время. WSL 2 — это результат серьёзного усовершенствования базовой архитектуры системы, её новые возможности основаны на технологии виртуализации и на функционале ядра Linux. При этом Microsoft берёт на себя заботу о мелких деталях, поэтому пользователь WSL может просто заниматься своими делами, ни на что не отвлекаясь.

Установка

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

В этом примере мы установим на Windows 10 Ubuntu 20.04. Надо отметить, что процесс установки будет одним и тем же для всех дистрибутивов Linux, доступных в Microsoft Store. Для начала нужно включить компонент Windows Subsystem for Linux. Для этого надо открыть PowerShell от имени администратора и выполнить следующую команду:

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

Далее, нужно обновить WSL до WSL 2. Для этого Windows 10 должна быть обновлена до версии 2004. В BIOS должна быть включена технология виртуализации Intel. Снова воспользуемся PowerShell с административными привилегиями и выполним такую команду:

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

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

wsl --set-default-version 2

После того, как вы выполните эту команду, может появиться такое сообщение:

WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel

Сообщение, выдаваемое при попытке установки WSL 2 как подсистемы Windows для Linux, используемой по умолчанию

Перейдите по указанной ссылке и установите соответствующий MSI-файл, благодаря которому на вашу машину будет установлено ядро Linux для WSL 2. После того, как ядро будет установлено, выполните вышеприведённую команду снова. Теперь она должна завершиться успешно, не выдавая подобного сообщения.

Теперь осталось лишь установить нужный дистрибутив Linux. Для этого надо открыть Microsoft Store и поискать там Ubuntu 20.04 LTS. После установки дистрибутива в меню Пуск должен появиться ярлык для запуска Ubuntu. Запустите систему и следуйте инструкциям для завершения установки (в целом, завершение установки заключается в создании нового пользователя).

Для того чтобы проверить, действительно ли дистрибутив установлен на WSL 2, выполните такую команду:

wsl --list --verbose

Если оказалось, что используется WSL 1, то переключиться на WSL 2 можно, воспользовавшись командой такого вида:

wsl --set-version <distribution name> <versionNumber>

Вот и всё. Теперь в вашем распоряжении имеется полноценный дистрибутив Ubuntu, работающий в Windows 10.

Настройка рабочей среды для программиста

Теперь, когда в вашем распоряжении оказалась рабочая Ubuntu, вы можете устанавливать всё, что вам может понадобиться. Например, если вы — дата-сайентист, вы можете установить самый свежий дистрибутив Anaconda. Если вы — фронтенд-разработчик, то вас, например, могут заинтересовать Angular, npm и многое другое. Здесь же мне хотелось бы сосредоточиться на двух инструментах. Это — Visual Studio Code и связка Docker + Kubernetes.

▍Visual Studio Code

VS Code — это редактор кода, которому отдаёт предпочтение множество разработчиков. Одна из сильных сторон этого редактора заключается в поддержке бесконечного множества расширений. А теперь, когда мы включили WSL 2, совершенно необходимым расширением для VS Code можно назвать Remote Development.

Это расширение позволяет удалённо работать над кодом, который имеется в среде, создаваемой средствами WSL 2, в контейнере, или даже на удалённой виртуальной машине, доступ к которой осуществляется по SSH. Данное расширение позволяет, например, создать проект в ОС Linux, работающей в WSL 2, и использовать для работы над этим проектом редактор VS Code, установленный в Windows 10.

Собственно говоря, VS Code отличается огромными возможностями. Это и интеллектуальная система IntelliSense, и интеграция с git, и отладчик, и терминал, и очень много чего ещё. Полагаю, с настройкой VS Code вы справитесь и очень скоро сможете сделать из этого редактора именно то, что нужно вам.

▍Docker + Kubernetes

Docker для Windows сделан на «хорошо», но не на «отлично». На самом деле, именно Docker заставлял меня постоянно «прыгать» между Windows и Ubuntu. Например, мне приходилось делать это тогда, когда нужно было создать новый образ Docker. А вот WSL 2 отличается полной поддержкой Docker. Это, полагаю, такая возможность новой подсистемы, которая делает работу с Docker даже удобнее, чем в Linux.

Для того чтобы включить эту возможность, нужно перейти в настройки Docker Desktop и включить опцию Use the WSL 2 based engine.

Включение поддержки Docker для WSL 2

Более того, перейдя в раздел настроек Kubernetes, можно включить возможность запуска локального кластера Kubernetes, просто установив соответствующий флажок.

Включение Kubernetes

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

docker version 
kubectl version

Результаты выполнения подобных команд покажут, что в вашем распоряжении теперь есть Docker и Kubernetes.

Docker и Kubernetes работают в среде WSL 2

Бонус: новый терминал Windows

В качестве дополнительной полезной программы вы можете установить из Microsoft Store новый терминал Windows. В описании к нему сказано, что перед нами новое современное приложение — быстрое, эффективное и мощное. Оно предназначено для пользователей, работающих с инструментами командной строки и с соответствующими средами, наподобие PowerShell. Среди его главных возможностей можно отметить следующие: поддержка вкладок и панелей, поддержка Unicode и UTF-8, ускорение вывода текста средствами GPU, поддержка пользовательских тем, стилей и настроек.

Вот видео про новый терминал Windows.

Более того, новый терминал очень хорошо выглядит, а его внешний вид поддаётся настройке. Настройки можно выполнять, пользуясь особым JSON-файлом. Здесь можно найти темы для терминала. Вот материал, в котором можно почитать подробности о терминале.

Планы развития WSL

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

wsl.exe --install

Кроме того, WSL 2 будет той версией подсистемы, которая, при первой установке WSL, устанавливается по умолчанию.

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

С момента выхода WSL 1 команду разработчиков этой подсистемы чаще всего просили о внедрении в WSL поддержки CUDA или GPU Compute. В последний код команды разработчиков WSL, систем виртуализации, DirectX, Windows Driver работают над этой возможностью. Поэтому — следите за новостями.

Обучение модели, использующей технологии глубокого обучения, в WSL 2 (с использованием CUDA)

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

Поддержка графического интерфейса Linux в WSL 2

Итоги

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

А вы пользуетесь WSL 2?

На моём компьютере установлена операционная система «Windows 10». Официально она появилась в 2015 году. В 2016 году разработчики из компании «Microsoft» выпустили в свет подсистему «Windows Subsystem for Linux» (сокращенно «WSL»), с помощью которой можно запускать программы, созданные для работы в операционных системах «Linux», в операционных системах «Windows», начиная с последних версий «Windows 10» и версий, следующих после «Windows 10».

Википедия:
https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux
https://ru.wikipedia.org/wiki/Windows_Subsystem_for_Linux

Документация на сайте компании «Microsoft»:
https://learn.microsoft.com/en-us/windows/wsl/

Первая версия WSL называется, естественно, «WSL 1». В 2019 году вышла «WSL 2», которая по заверениям разработчиков радикально улучшила быстродействие и вообще получила довольно сильно переработанную архитектуру по сравнению с «WSL 1». Я уже давно хотел поработать с этой подсистемой, чтобы с помощью нее познакомиться с каким-нибудь из дистрибутивов семейства операционных систем «Linux». И вот сейчас руки дошли.

Для работы в командной строке из операционной системы «Windows 10» я в основном использую программу-оболочку «PowerShell» версии 7 из программы-«эмулятора терминала» «Windows Terminal» версии 1.17.

Определение версии операционной системы «Windows 10»

Имеет смысл сначала определить, какая у вас версия операционной системы «Windows 10», так как для установки WSL на разных версиях операционной системы «Windows 10» может потребоваться разный порядок действий.

PS C:\> [System.Environment]::OSVersion.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
10     0      19045  0

Как видно из блока кода выше, у меня — сборка (build) 19045. В документации сказано, что для сборок с номером равным или выше 19041 можно применять рекомендуемый порядок установки WSL (описан тут), для сборок с номером меньшим, чем 19041, следует воспользоваться отдельной статьей документации.

Команда «wsl.exe»

Для установки WSL и работы с нею в операционной системе «Windows 10» есть специальная команда — wsl (wsl.exe). Насколько я понимаю, эта не сама подсистема WSL, а только программа для облегчения работы с этой подсистемой. То есть подсистема WSL у меня еще не установлена, а команда wsl уже доступна. Эту команду можно запустить из любого местоположения.

Если запустить эту команду из командной строки без аргументов, то она выдаст короткий текст с объяснением, как ею пользоваться и названиями возможных аргументов. В частности, можно сразу просмотреть список дистрибутивов операционной системы «Linux», доступных к скачиванию через интернет с помощью команды wsl:

PS C:\> wsl --list --online
Ниже приведен список допустимых распределений, которые можно установить.
Распределение по умолчанию помечено знаком «*».
Установите с помощью команды wsl --install -d <Distro>

  NAME                                   FRIENDLY NAME
* Ubuntu                                 Ubuntu
  Debian                                 Debian GNU/Linux
  kali-linux                             Kali Linux Rolling
  Ubuntu-18.04                           Ubuntu 18.04 LTS
  Ubuntu-20.04                           Ubuntu 20.04 LTS
  Ubuntu-22.04                           Ubuntu 22.04 LTS
  OracleLinux_8_5                        Oracle Linux 8.5
  OracleLinux_7_9                        Oracle Linux 7.9
  SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
  openSUSE-Leap-15.4                     openSUSE Leap 15.4
  openSUSE-Tumbleweed                    openSUSE Tumbleweed

Под словом «распределение», как я понимаю, имеется в виду «дистрибутив». Вероятно, это следы работы гениального искусственного интеллекта, который скоро заменит всех переводчиков и программистов… если верить жёлтой прессе.

Как видно из блока кода выше, по умолчанию к установке предлагается дистрибутив «Ubuntu» из семейства операционных систем «Linux». Это меня устраивает. Судя по сравнительным спискам в интернетах, дистрибутив «Ubuntu» на сегодня входит в семерку самых популярных дистрибутивов «Linux», а среди рекомендуемых для начинающих — в тройку самых популярных.

Запуск установки WSL

В руководстве по установке WSL сказано, что эту подсистему можно установить одной-единственной командой. Для этого программа-оболочка должна быть открыта с правами администратора операционной системы «Windows 10»:

(админ) PS C:\> wsl --install

Эта команда выполняет ряд действий, которые перечислены в документации. (Эти действия можно было бы выполнить самостоятельно и тогда можно было бы не использовать указанную выше команду. Однако, мне было интересно попробовать рекомендуемый способ установки WSL.)

В частности, эта команда включает две компоненты операционной системы «Windows 10», которые по умолчанию выключены. Это «Virtual Machine Platform» (по-русски «Платформа виртуальной машины») и «Windows Subsystem for Linux» (WSL, по-русски «Подсистема Windows для Linux»). Я проверил их включение после окончания работы вышеуказанной команды и перезагрузки компьютера. Это можно проверить, открыв инструмент «Панели управления», который называется «Включение или отключение компонентов Windows» (если в вашей операционной системе для интерфейса выбран русский язык):

Кроме включения этих двух компонентов операционной системы «Windows 10» вышеуказанная команда скачивает из хранилища в интернете дистрибутив «Ubuntu» (или другой, если выбран другой) семейства операционных систем «Linux» и выполняет другие действия. Всё это занимает минут 20-30, так что можно пойти выпить чашечку кофе. Вот что у меня получилось в итоге:

Перезагрузка компьютера у меня не запустилась автоматически, поэтому я закрыл все окна и запустил ее вручную. После перезагрузки открылось следующее окно:

Включение виртуализации в BIOS

Как было показано выше, у меня установка WSL с одной-единственной команды не получилась. (Вернее, всё установилось успешно, но я не ожидал, что еще потребуется дополнительная настройка.) Я прошел по предложенной в сообщении об ошибке ссылке (https://aka.ms/enablevirtualization) и попал в руководство по ошибкам установки при установке WSL, в раздел соответствующей ошибки:

https://learn.microsoft.com/en-us/windows/wsl/troubleshooting#error-0x80370102-the-virtual-machine-could-not-be-started-because-a-required-feature-is-not-installed

В принципе, две возможные причины этой ошибки уже перечислены в сообщении на иллюстрации выше. Компонента операционной системы «Windows 10» с названием «Платформа виртуальной машины» у меня точно включена, я это описал выше. Значит, не включена так называемая «аппаратная виртуализация» (эта функция процессора включается в BIOS).

Продолжение следует…

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Update for windows server 2012 r2 x64 edition kb2885698
  • Оптимизация реестра windows 10 для игр
  • Значок пуск не реагирует на нажатие мышкой windows 10
  • Как найти видеоредактор в windows 10
  • Программы для украшения рабочего стола windows 10