
Если у Вас в качестве основной или единственной операционной системы стоит Windows, то самый быстрый и удобный способ начать пользоваться Ubuntu - встроить ядро Linux прямо в Windows. Эта встроенная в операционную систему Windows функция позволяет обойтись без монитора виртуальных машин (гипервизора) или мильтизагрузки (dual-boot). Ядро Linux запускается на облегчённой служебной виртуальной машине на основе компонентов гипервизора Hyper-V. Таким образом после установки дистрибутив Linux оказывается полностью интегрирован в Windows, и позволяет пользоваться преимуществами обеих ОС при разработке с минимальными затратами в аппаратных, временных и человеческих ресурсах. С помощью WSL можно даже запускать графические приложения Linux (см. примечания), но, скорее всего, Вам это не понадобится.
Что нужно знать перед началом
Существуют 2 версии WSL: WSL и WSL 2. Когда говорят о WSL, по умолчанию подразумевают последнюю.
WSL поддерживает процессоры x64 и ARM, имеющие функцию преобразования адресов второго уровня - SLAT (У всех современных процессоров эта функция поддерживается).
Для установки необходима Windows 10 версии 2004+ или Windows 11. Но для избежания возможных проблем рекомендуется использовать Pro (или Enterprise/Education), а не Home версию ОС Windows.
Преимущества и недостатки использования WSL
Плюсы:
WSL требует меньше ресурсов (ЦП, оперативной и дисковой памяти), чем полноценная виртуальная машина, например если нет открытых файловых дескрипторов (см. далее в курсе) для процессов Windows, виртуальная машина WSL будет автоматически выключена.
WSL не требует перезагрузки компьютера для переключения между ОС, как при мультизагрузке (dual-boot).
Интеграция файловой системы Windows прямо в Linux и наоборот. Возможность использовать приложения Linux в Windows и наоборот. Поддержка WSL множеством приложений, утилит, IDE и т.д. "из коробки".
Открытый исходный код ядра.
Минусы:
Меньшая изоляция гостевой ОС от хостовой по сравнению с мультизагрузкой или полноценной виртуализацией.
Отсутствие графического интерфейса для дистрибутивов. Другие меньшие ограничения.
Разработка корпорации Microsoft, а не Linux-сообщества. Возможна ситуация в будущем, когда пропадет перекрестная совместимость.
Установка WSL и дистрибутива Linux
Для включения функций, необходимых для запуска WSL, выполните в командной строке с правами администратора:
wsl.exe --install
Далее можно проверить установленную версию WSL, она должна быть 2+:
wsl --version
или (также покажет дистрибутив по умолчанию):
wsl --status
Для просмотра доступных для скачивания дистрибутивов Linux из Microsoft Store выполните команду:
wsl --list --online # сокращенно: wsl -l -o
Установить выбранный дистрибутив можно как через сам MS Store, так и через терминал. Если нужного дистрибутива нет, вы можете импортировать его из интернета или .tar файла (см. дополнительные материалы).
Установка дистрибутива Linux командой:
wsl --install --distribution <Name> # <Name> - имя устанавливаемого дистрибутива # сокращенно: wsl --install -d <Name>
После установки (процесс будет отображаться в терминале) Вам будет предложено создать нового пользователя. Введите имя пользователя и пароль - ОС готова к использованию. Можете закрыть командную оболочку bash командой exit.
Что бы установить дистрибутив в качестве дистрибутива по умолчанию:
wsl --set-default <Name> # <Name> - имя устанавливаемого по умолчанию дистрибутива # сокращенно: wsl -s <Name>
Далее мы можем просмотреть установленные дистрибутивы Linux и их состояния (остановлен/запущен):
wsl --list --verbose # сокращенно: wsl -l -v
Обратите внимание, если вы просто закрыли командную оболочку bash, дистрибутив может быть как завершен автоматически, так и еще запущен, если, конечно, Вы его не завершили принудительно (см. далее).
В случае необходимости удаления дистрибутива Linux и связанных с ним данных:
wsl --unregister <Name> # <Name> - имя удаляемого дистрибутива
Справка по WSL доступна с помощью команды:
wsl --help
Использование WSL
Теперь установленный по умолчанию дистрибутив WSL можно запустить из терминала командой:
wsl # в текущем терминале откроется командная оболчка bash в текущем каталоге
wsl ~ # в текущем терминале откроется командная оболчка bash в домашнем каталоге пользователя Linux
Выйти из запущенного терминала можно командой exit.
Если существуют несколько дистрибутивов, то запустить определенный можно обратившись к нему по имени:
wsl --distribution <Name> # <Name> - имя запускаемого дистрибутива # сокращенно: wsl -d <Name>
Как указано выше, если закрыть все терминалы запущенного дистрибутива, через некоторое время он автоматически будет остановлен. Но существует возможность завершить его принудительно командой, при этом открытые терминалы будут завершены автоматически:
wsl --terminate <Name> # <Name> - имя завершаемого дистрибутива # сокращенно: wsl -t <Name>
Также можно завершить работу всех запущенных дистрибутивов и перезагрузить рабочую виртуальную машину. Это может понадобиться при изменении ограничений использования памяти или изменении конфигурационных файлов:
wsl --shutdown # сокращенно: wsl -t <Name>
Как говорилось выше, файловые системы Linux и Windows интегрированы друг в друга. Точки монтирования для жестких дисков компьютера создаются автоматически и обеспечивают простой доступ к файловой системе Windows из Linux. Например, диск "C:\" Windows доступен по пути "/mnt/С/" в Ubuntu. А корневой каталог Ubuntu доступен по сетевому пути "\\wsl.localhost\Ubuntu" в Windows. Но при этом не забывайте, что у каждой ОС есть свои особенности, связанные с файловыми системами в широком смысле, например, учет регистра символов или допустимые имена файлов, так что переносить файлы и каталоги (папки) между файловыми системами необходимо с осторожностью.
Приложения Windows можно запускать находясь в Linux, например команда ниже откроет Проводник в текущей папке:
explorer.exe . # синтаксис аналогичен запуску из-под Windows
И наоборот, выполнив команду ниже, вы откроете консольный редактор текста Nano в Windows:
wsl nano test.txt # необходима приставка wsl для запуска
В этом примере видно, что мы сначала запускаем дистрибутив по умолчанию, затем вызываем в нем программу с аргументами, а затем выходим обратно в командную строку Windows. То есть командная оболочка bash не была открыта для выполнения данной команды.
Говоря об интеграции, невозможно не упомянуть, что многие приложения поддерживают использование WSL "из коробки". Например, Docker Desktop позволяет запускать контейнеры как Windows, так и Linux одновременно, используя WSL. PyCharm (IDE от JetBrains для разработки python-приложений), например, предоставляет возможность использовать интерпретатор, установленный в WSL. Терминал Windows может сразу открыть командную оболочку bash напрямую, я не через команду wsl в командной строке PowerShell.

При установке кросс-платформенных приложений для разработки может возникнуть вопрос, куда их ставить: в WSL или на Windows? Ответить на него каждый должен сам, учитывая несколько аспектов: дистрибутивы WSL можно переустанавливать, откатывать, дублировать, поэтому не стоит ставить туда тяжеловесное ПО. А на хостовую ОС не стоит ставить ПО, необходимость которого сомнительна. То есть если вам интерпретатор Python нужен в рамках одного проекта - его можно поставить на дистрибутиве WSL, но если Вы разрабатываете на Python, то сомнительно использовать WSL для установки PyCharm и интерпретатора Python.
Примечания
В случае возникновения ошибки при установке WSL необходимо убедиться, что в UEFI (BIOS) включена виртуализация (обычно этот параметр находится в разделе настроек ЦП), убедиться, что включен дополнительный компонент Virtual Machine Platform (Панель управления -> Программы -> Включение и отключение компонентов Windows -> Платформа виртуальной машины), или включить его, выполнив в командной строке с правами администратора:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Также необходимо убедиться, что запуск гипервизора включен в конфигурации загрузки. Это можно проверить, выполнив в командной строке с правами администратора:
bcdedit /enum | findstr -i hypervisorlaunchtype
Если вы видите значение параметра Off, это значит, что гипервизор отключен и необходимо включить его, выполнив в командной строке с правами администратора:
bcdedit /set hypervisorlaunchtype Auto
В случае возникновения других ошибок в ходе установки или эксплуатации
посетите эту страницу.WSL можно запустить на виртуальной машине, для этого нужно вручную включить вложенную виртуализацию на виртуальной машине. Например, если вы устанавливаете WSL на виртуализированную Windows, запущенную в Hyper-V, нужно выполнить эту команду на узле виртуализации (не на виртуальной машине) в командной строке с правами администратора:
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true # <VMName> - имя виртуальной машины
В случае необходимости запустить веб-сервер на Linux необходимо учитывать, как сказано выше, дабы дистрибутив не завершил свою работу, необходимо оставить в нем хотя бы 1 открытый файловый дескриптор для процесса Windows. Простыми словами - необходимо оставить хотя бы 1 терминал с запущенной в нем командной оболочкой bash данного дистрибутива.
С помощью WSL в ОС Windows
можно запускать графические приложения для Linux.При необходимости подключить USB устройства напрямую в дистрибутив Linux
посетите эту страницу.В случае необходимости импортировать произвольный дистрибутив Linux
посетите эту страницу.