
Если у Вас в качестве основной или единственной операционной системы стоит 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.localhostUbuntu" в 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
посетите эту страницу.
Дополнительные материалы
Автор: vasiliy_tyukin
