Что такое подсистема Windows для Linux
подсистема Windows для Linux (WSL) — это функция Windows, которая позволяет запускать среду Linux на компьютере Windows без необходимости отдельной виртуальной машины или двойной загрузки. WSL предназначен для обеспечения простого и продуктивного взаимодействия для разработчиков, которые хотят одновременно использовать Windows и Linux.
- Используйте WSL для установки и запуска различных дистрибутивов Linux, таких как Ubuntu, Debian, Kali и т. д. Установите дистрибутивы Linux и получите автоматические обновления из Microsoft Store, импортируйте дистрибутивы Linux, недоступные в Microsoft Store, или создайте собственный дистрибутив Linux клиента.
- Храните файлы в изолированной файловой системе Linux, относясь к установленному дистрибутиву.
- Запустите средства командной строки, такие как BASH.
- Запустите общие инструменты командной строки BASH, такие как grep , sed awk или другие двоичные файлы ELF-64.
- Запуск скриптов Bash и приложений командной строки GNU/Linux, включая:
- инструменты: vim, emacs, tmux;
- языки: NodeJS, JavaScript, Python, Ruby, C/C++, C# & F#, Rust, Go и т. д.;
- Службы. SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL.
Что такое WSL 2?
WSL 2 — это тип дистрибутива по умолчанию при установке дистрибутива Linux. WSL 2 использует технологию виртуализации для запуска ядра Linux в упрощенной служебной виртуальной машине. /dev/pts ), ЦП/Ядро/Память/Буфер, /init двоичный, но имеют собственное пространство имен PID, пространство имен подключения, пространство имен пользователя, пространство имен Cgroup и init процесс.
WSL 2 повышает производительность файловой системы и добавляет полную совместимость вызовов системы по сравнению с архитектурой WSL 1. Узнайте больше о сравнении WSL 1 и WSL 2.
Отдельные дистрибутивы Linux можно запускать с архитектурой WSL 1 или WSL 2. Каждый дистрибутив можно обновить или использовать на более старой версии в любое время, кроме того вы можете запустить дистрибутивы WSL 1 и WSL 2 параллельно. См. команду «Задать версию WSL».
Microsoft Loves Linux
Дополнительные сведения о ресурсах Linux в Корпорации Майкрософт, включая средства Майкрософт, работающие в Linux, учебные курсы linux, архитектуру облачных решений для Linux и новости, события и партнерские отношения Microsoft + Linux. Microsoft Loves Linux!
Подсистема Windows для Linux (WSL) в среде Windows 10.
Начиная с версии Windows 10 Build 14251, в набор стандартных компонентов системы была добавлена Подсистема Windows для Linux (Windows Subsystem for Linux или WSL) . Главное назначение WSL – создать программный слой в среде Windows 10 для обеспечения функционирования приложений Linux. Первоначально подсистема поддерживала только дистрибутив Ubuntu 14.04, образ которого можно было загрузить через магазин Microsoft Store. Затем количество поддерживаемых дистрибутивов увеличилось, и продолжает увеличиваться, включая наиболее популярные дистрибутивы. Установка выполняется таким же образом, как и стандартное приложение, без применения виртуальных машин или сторонних пакетов эмуляции. Пользователь Windows 10 в пару кликов мышкой устанавливает операционную систему семейства Linux без графической оболочки, функционирующую на компьютере подобно стандартному приложению, загруженному из Microsoft Store.
Подсистема WSL позволяет:
1. Выбрать предпочитаемый дистрибутив из магазина Windows (Microsoft Store)
2. Пользоваться командной оболочкой Linux и прочим программным обеспечением совершенно бесплатно.
3. Выполнять скрипты командной оболочки и использовать популярные программные средства Linux, как ssh, MySQL, Apache, языки программирования C/C++, Ruby, Python и т.п.
4. Устанавливать дополнительное программное обеспечение с использованием собственного менеджера пакетов выбранного дистрибутива GNU/Linux.
5. Использовать совместное функционирование приложений обеих операционных систем и использование общих ресурсов.
Подсистема WSL продолжает развиваться, и постепенно трансформировалась в новую версию, получившую обозначение WSL 2 , отличающуюся повышенным быстродействием, улучшенным взаимодействием с компьютерным оборудованием и компонентами Windows, новой архитектурой на базе реального ядра Linux, специально адаптированного для использования в WSL 2. Кроме того, данное ядро Linux распространяется с открытым исходным кодом (Open Source), который можно загрузить на странице проекта github.com-WSL2-Linux-Kernel
WSL 2 является очередным шагом в технологии виртуализации, позволившим использовать ядро Linux, выполняемое под управлением относительно небольшой утилиты, обеспечивающей высокий уровень интеграции между Windows и Linux и значительное повышение быстродействия операций ввода-вывода, системных вызовов и приложений. По некоторым данным, распаковка zip-архивов в среде WSL 2 выполняется в 15-20 раз быстрее, а сборка пакетов – в 2-5 раз быстрее чем в WSL 1.
По умолчанию, компонент Подсистема Windows для Linux (WSL) выключен. Для включения можно воспользоваться апплетом Панели управления Программы и компоненты — Включение или отключение компонентов Windows :

После включения WSL, нужно выполнить перезагрузку Windows.
Для включения WSL и проверки ее состояния можно использовать командную оболочку Power Shell, запущенную на выполнение от имени Администратора. Проверить состояние подсистемы можно командой:
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Пример отображаемой информации:
FeatureName : Microsoft-Windows-Subsystem-Linux
DisplayName : Подсистема Windows для Linux
Description : Предоставляет службы и среды для запуска собственных средств и оболочек Linux в пользовательском режиме в Windows.
RestartRequired : Possible
State : EnabledServerComponent\Description : Предоставляет службы и среды для запуска собственных средств и оболочек Linux в пользовательском режиме в Windows.
ServerComponent\DisplayName : Подсистема Windows для Linux
ServerComponent\Id : 1033
ServerComponent\Type : Feature
ServerComponent\UniqueName : Microsoft-Windows-Subsystem-Linux
ServerComponent\Deploys\Update\Name : Microsoft-Windows-Subsystem-LinuxСтрока State : Enabled указывает на то, что подсистема Windows для Linux включена.
Для включения подсистемы WSL посредством Power Shell можно использовать команду:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Для отключения WSL:
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Выбор дистрибутива и установка Linux
После включения подсистемы WSL и перезагрузки Windows 10 можно приступить к установке ОС Linux. В прежних версиях подсистемы Windows для Linux для настройки дистрибутива Linux использовалась утилита командной строки lxrun.exe . На сегодняшний день она считается устаревшей и в дальнейшем будет исключена из подсистемы WSL. Дистрибутивы можно установить из стандартного Магазина Windows (Microsoft Store):

При необходимости, можно получить более подробную информацию о конкретном дистрибутиве, например Kali :

Как видим, отображаются краткие сведения о дистрибутиве, способе запуска Linux после установки, а также сведения о загружаемом образе. Для уменьшения объема загружаемых данных образ не содержит графической оболочки и некоторых приложений, которые легко устанавливаются с использованием штатных средств управления пакетами выбранного дистрибутива Linux.
После загрузки и начальной установки дистрибутива, можно выполнить его запуск нажатием кнопки Запустить

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

После успешной установки, в консоли отобразится стандартное приглашение командной строки. К этому моменту будут выполнены настройки сетевых интерфейсов, имени узла, клиента DNS и т.п а также смонтированы логические диски ОС Windows 10 (стандартно — /mnt/c — для диска C:, /mnt/d — для диска D: и т.д). Дальнейшее применение установленного Linux зависит от его предназначения и неизбежно потребует установки дополнительных приложений с использованием стандартных средств данного дистрибутива, при чем – из командной строки. Как и в случае с отдельным компьютером с ОС Linux, первым шагом в применении нового дистрибутива будет освоение методов установки и удаления программ.
На сегодняшний день, в Microsoft Store имеется несколько дистрибутивов Linux – Ubuntu ( в том числе и с длительной поддержкой), Kali, Debian и Suse (в том числе и серверные дистрибутивы). Очевидно, что этот набор будет постепенно расширяться. Наиболее востребованным дистрибутивом, по статистике Microsoft Store, является Ubuntu. После завершения установки, запуск программы можно выполнить в командной строке, введя:
Либо Win+R — ubuntu
Либо с использованием ярлыка из меню кнопки Пуск — Ubuntu .
В самом начале использования вновь установленного Linux, желательно выполнить обновление установленного ПО и добавить необходимый для дальнейшей работы набор программ.
В дистрибутивах на основе Debian (Ubuntu) имеется стандартная утилита apt для работы с системой управления программными пакетами APT ( A dvanced P ackaging T ool). Данная утилита и ее производные ( apt-cache , apt-get ) используются для установки новых программных пакетов, удаления существующих, обновления уже установленных, а также для обновления всей операционной системы. Примеры использования:
apt –h — отобразить подсказку по использованию apt
apt-cache –h — отобразить подсказку по использованию apt-cache
apt-get –h — отобразить подсказку по использованию apt-getБолее подробную подсказку можно получить из комплекта документации man-страниц:
sudo apt-get update — обновить список установленных программных пакетов в соответствии с источниками, заданными в файле /etc/apt/sources.list .
sudo apt-get upgrade — обновить все программные пакеты, существующее в системе на данный момент времени.
sudo apt-get install mc — установить файловый менеджер Midhight Commander
apt-get remove —purge mc — удалить файловый менеджер Midhight Commander и все его конфигурационные файлы (параметр —purge )
Некоторые характерные особенности WSL
Несмотря на то, что WSL 2 стала значительным шагом развития подсистемы, в ней остаются множественные проблемы не позволяющие получить полноценную ОС семейства Linux в среде Windows. Хотя, изначально, при разработке подсистемы WSL, такая задача и не ставилась, ведь требовалось всего лишь средство для разработчиков, создающее универсальную, быстродействующую и привычную среду в рамках ОС Windows. Если постановка задачи не изменится, то очевидно, подсистема WSL никогда не заменит ”настоящий” Linux, хотя и приблизится к нему вплотную.
В частности, в реализации WSL на вторую половину 2019 г. нет возможности установки модулей ядра, не реализован стандартный для Linux механизм сокетов, нет полноценного взаимодействия между процессами и т.д. и т.п. Как результат – нет графической оболочки пользователя, нет возможности использования приложения, требующих наличие драйвера ядра, не работает огромное количество системных служб. Часть проблем будет решаться по мере выхода новых версий WSL, либо с применением альтернативных решений, в том числе и от сторонних разработчиков, как например WSL SSH Launcher , который можно загрузить из Microsoft Store и использовать для запуска сервиса ssh в среде WSL. Программа платная ($0.99), но имеется и бесплатная пробная версия.
Страницы с описанием и примерами команд подсистемы WSL:
BASH — командная оболочка BASH в подсистеме Windows для Linux (WSL).
WSL — выполнение команд Linux и конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10
WSLconfig — конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10
В заключение, стоит добавить, что в среде Windows 10 можно установить Linux, как впрочем, и любую другую ОС, на виртуальной машине Hyper-V.
Установка Linux в Windows с помощью WSL
Разработчики могут одновременно получить доступ к возможности Windows и Linux на компьютере с Windows. Подсистема Windows для Linux (WSL) позволяет разработчикам устанавливать дистрибутив Linux (например, Ubuntu, OpenSUSE, Kali, Debian, Arch Linux и т. д.) и использовать приложения Linux, служебные программы и средства командной строки Bash непосредственно в Windows, не измененные без затрат на традиционную виртуальную машину или двойную настройку.
Необходимые компоненты
Для использования приведенных ниже команд необходимо запустить Windows 10 версии 2004 и выше (сборка 19041 и выше) или Windows 11. Если вы находитесь в более ранних версиях, перейдите на страницу установки вручную.
Команда установки WSL
Теперь вы можете установить все необходимое для запуска WSL с помощью одной команды. Откройте Командную строку PowerShell или Windows в режиме администратора , щелкнув правой кнопкой мыши и выбрав команду «Запуск от имени администратора», введите команду wsl —install, а затем перезапустите компьютер.
wsl --installЭта команда включит функции, необходимые для запуска WSL и установки дистрибутива Ubuntu для Linux. (Этот дистрибутив по умолчанию можно изменить.)
Если вы используете более раннюю сборку или не хотите использовать команду для установки и вам нужны пошаговые инструкции, см. статью Действия по установке WSL вручную для старых версий.
При первом запуске недавно установленного дистрибутива Linux откроется окно консоли. Вам будет предложено подождать, пока файлы будут распакованы и сохранены на компьютере. Все будущие запуски должны занимать меньше секунды.
Приведенная выше команда работает, только если WSL не установлена вообще. Если вы выполнили wsl —install и видите текст справки WSL, попробуйте выполнить wsl —list —online , чтобы просмотреть список доступных дистрибутивов. Затем выполните wsl —install -d для установки дистрибутива. Сведения об удалении WSL см. в разделе Удаление устаревшей версии WSL или Отмена регистрации или удаление дистрибутива Linux.
Изменение установленного дистрибутива Linux по умолчанию
По умолчанию в качестве устанавливаемого дистрибутива Linux используется Ubuntu. Для этого используйте флаг -d .
- Чтобы изменить установленный дистрибутив, введите wsl —install -d . Замените именем дистрибутива, который хотите установить.
- Чтобы просмотреть список доступных дистрибутивов Linux, доступных для скачивания через Интернет-магазин, введите wsl —list —online или wsl -l -o .
- Чтобы установить дополнительные дистрибутивы Linux после исходной установки, можно также использовать команду wsl —install -d .
Если вы хотите установить дополнительные дистрибутивы из командной строки Linux или Bash (а не из PowerShell или командной строки), используйте .exe в команде wsl.exe —install -d . Чтобы получить список доступных дистрибутивов, используйте wsl.exe -l -o .
Если во время установки возникла проблема, см. раздел Установка руководства по устранению неполадок.
Чтобы установить дистрибутив Linux, который не указан как доступный, можно импортировать его с помощью TAR-файла. В некоторых случаях, как с Arch Linux, можно выполнить установку с помощью файла .appx . Вы также можете создать собственный пользовательский дистрибутив Linux для использования с WSL.
Настройка сведений о пользователе Linux
После установки WSL необходимо создать учетную запись пользователя и пароль для установленного дистрибутива Linux. Дополнительные сведения см. в статье Рекомендации по настройке среды разработки WSL.
Советы и рекомендации
Мы рекомендуем использовать наше пошаговое руководство Рекомендации по настройке среды разработки WSL. В нем описано, как настроить имя пользователя и пароль для установленных дистрибутивов Linux, использовать основные команды WSL, установить и настроить Терминал Windows, настроить управление версиями Git, отредактировать код и выполнить отладку с помощью удаленного сервера VS Code. Кроме того, в руководстве приведены рекомендации по хранению файлов, настройке базы данных, подключению внешнего диска, настройке ускорения GPU и пр.
Проверьте, какая версия WSL запущена
Вы можете получить список установленных распределений Linux и проверить версию WSL, задав команду wsl -l -v в PowerShell или в Командной строке Windows.
Чтобы задать значение WSL 1 или WSL 2 для версии по умолчанию при установке нового распределения Linux, используйте команду wsl —set-default-version , заменив на 1 или 2.
Чтобы определить распределение Linux по умолчанию для использования с командой wsl , введите wsl -s или wsl —set-default , заменив именем распределения Linux, который вы хотите использовать. Например, в PowerShell или CMD введите wsl -s Debian , чтобы задать для распределения значение по умолчанию — Debian. Теперь запуск wsl npm init в PowerShell приведет к выполнению npm init команды в Debian.
Чтобы запустить определенное распределение WSL из PowerShell или Командной строки Windows без изменения распределения по умолчанию, выполните команду wsl -d , заменив именем распределения, которое вы хотите использовать.
Дополнительные сведения см. в руководстве по основным командам для WSL.
Обновление версии WSL 1 до WSL 2
Для новых установок Linux, выполненных с помощью команды wsl —install , по умолчанию будет задано WSL 2.
С помощью команды wsl —set-version можно перейти с версии WSL 2 на WSL 1 или обновить ранее установленные дистрибутивы Linux с версии WSL 1 до WSL 2.
Чтобы проверить, какая установлена версия распределения Linux — WSL 1 или WSL 2, — выполните команду wsl -l -v .
Для изменения версий выполните команду wsl —set-version 2 , заменив именем дистрибутива Linux, который требуется обновить. Например, команда wsl —set-version Ubuntu-20.04 2 настроит распределение Ubuntu 20,04 на использование WSL 2.
Если вы установили WSL вручную, до того как команда wsl —install стала доступна, возможно, вам также потребуется включить необязательный компонент виртуальной машины, используемый WSL 2, и установить пакет ядра, если это еще не сделано.
Список команд WSL см. в справочнике по командам для WSL; рекомендации по использованию одной из версий в рабочем сценарии см. в статье со сравнением WSL 1 и WSL 2; для получения общих сведений о настройке надлежащего рабочего процесса разработки с помощью WSL ознакомьтесь с рекомендациями по настройке среды разработки WSL.
Способы запуска нескольких распределений Linux с помощью WSL
WSL поддерживает запуск неограниченного количества различных распределений Linux. Сюда входит выбор распределений из Microsoft Store, импорт настраиваемого распределенияили создание собственного пользовательского распределения.
Существует несколько способов запуска распределений Linux после их установки:
- Установка Терминал Windows(Рекомендуется)С помощью Терминал Windows поддерживает столько команд, сколько вы хотите установить, и позволяет открывать их на нескольких вкладках или панелях окон и быстро переключаться между несколькими дистрибутивами Linux или другими командными строками (PowerShell, командная строка, Azure CLI и т. д.). Вы можете полностью настроить терминал, используя уникальные цветовые схемы, стили шрифтов, размеры, фоновые изображения и пользовательские сочетания клавиш. Подробнее.
- Вы можете напрямую открыть распределение Linux, для этого откройте меню «Пуск» Windows и введите имя установленного распределения. Например, «Ubuntu». Откроется Ubuntu в собственном окне консоли.
- В Командной строке Windows или PowerShell можно ввести имя установленного распределения. Например: ubuntu
- Из PowerShell или командной строки Windows можно открыть распределение Linux по умолчанию в текущей командной строке, введя wsl.exe .
- Из PowerShell или командной строки Windows можно использовать распределение Linux по умолчанию в текущей командной строке без ввода новой, введя команду wsl [command] . Замена [command] командой WSL, например wsl -l -v для вывода списка установленных распределений или wsl pwd , чтобы узнать место подключения текущего пути к каталогу в WSL. В PowerShell команда get-date предоставит дату из файловой системы Windows, а wsl date предоставит дату из файловой системы Linux.
Выбранный метод должен зависеть от ваших действий. Если вы открыли командную строку WSL в Командной строке Windows или окне PowerShell и хотите выйти, введите команду exit .
Хотите испытать новейшие предварительные версии функций WSL?
Чтобы поработать с самыми последними функциями или обновлениями для WSL, присоединитесь к Программе предварительной оценки Windows. Когда вы присоединитесь к участникам Программы предварительной оценки Windows, вы сможете выбрать канал для получения предварительных сборок в меню параметров Windows и будете автоматически получать предварительные версии функций и обновления для WSL, связанные с этой сборкой. Варианты:
- Канал разработчика: последние обновления, но низкая стабильность.
- Бета-канал: идеально подходит для ранних последователей; более надежные сборки, чем в канале разработки.
- Канал предварительного выпуска: предварительные версии исправлений и основных функций следующей версии Windows непосредственно перед предоставлением их общедоступной версии.
Дополнительные ресурсы
Учебный курс— введение в подсистема Windows для Linux (WSL)
Это 7-часть обучения предоставляет введение в WSL. Ознакомьтесь с основными понятиями, которые объединяют операционные системы Windows и Linux, включая установку одного или нескольких дистрибутивов Linux на компьютере Windows.
Если вы ищете только рекомендации по установке WSL или другой справочной документации, а не всего модуля обучения, см . инструкции по установке Linux в Windows с WSL.
Цели обучения
По завершении этого модуля вы сможете:
- Описание интеграции Windows + Linux, включенной WSL, и преимущества традиционной виртуальной машины или двойной загрузки.
- Настройте базовую среду разработки с помощью WSL.
- Объясните типичный рабочий процесс, использующий WSL с рекомендуемой интегрированной интегрированной среде разработки и инструментами.
- Установите и запустите дистрибутив Linux или несколько дистрибутивов, работающих параллельно.
- Описание возможностей WSL для использования средств командной строки Windows и Linux и приложений графического интерфейса.
- Выполните базовые команды WSL, Bash и PowerShell.
- Объясните, что WSL может и не может сделать, и оцените, подходит ли это для ваших потребностей.
Предварительные требования
- Компьютер под управлением Windows 11 или Windows 10.
- Возможность запуска PowerShell или командной строки Windows в качестве Администратор istrator.