Как узнать версию wsl
Установка и использование подсистемы Linux (WSL 2) в Windows 10
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 10 с помощью dism:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
После этого также необходимо перезагрузить компьютер.
Теперь вам нужно выполнить обновление WSL до версии 2. Для этого требуется зайти на сайт https://docs.microsoft.com/ru-ru/windows/wsl/wsl2-kernel, скачать файл wsl_update_x64.msi, установить его. По завершении увидите картинку
Чтобы сделать WSL2 архитектурой по умолчанию для новых дистрибутивов, в PowerShell выполните команду:
Далее вам необходимо открыть 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 с помощью файла Ubuntu.exe.
Также вы можете скачать образ в виде appx файла и установить его с помощью командлета Add-AppxPackage.
После установки можно проверить используемую версию WSL с помощью команды
Если у вашей среды Linux указана версия 1, нужно изменить ее на WSL2 командой:
Файл жёсткого диска с образом виртуальной машины ОС Linux Ubuntu 20.04 будет располагаться в профиле пользователя: C:\Users\234\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState.
После установки дистрибутива в стартовом меню появляется ярлык на него. Для запуска Ubuntu зайдите в меню Пуск, нажмите на соответствующем ярлыке и получите в отдельном окне полноценную командную оболочку Bash. Запускать WSL можно и с помощью команды wsl. При первом запуске образа в командной строке Bash вам будет предложено создать пользователя и пароль (которые не должны совпадать с учётной записью Windows). Чтобы выполнять команды с правами root, необходимо использовать дополнительный ключ (префикс) sudo. В WSL есть общие команды для Bash и CMD, и тут нужно не забывать, что система Linux чувствительна к регистру.
Вы можете выполнить Linux-команды из CMD. Для этого необходимо вначале указать “WSL”. Например, для просмотра списка файлов и папок в каталоге Windows, выполните:
dir | wsl grep Sa
wsl ls ‑la > 123.txt
wsl ls ‑la /proc/cpuinfo
wsl ls ‑la “/mnt/c/Program Files”
Также вы можете открыть проводник командой explorer.exe, калькулятор – calc.exe, блокнот – notepad.exe, paint – mspaint.exe, календарь – cal, погоду – curl wttr.in
Ещё один пример взаимосвязи 2х систем – вы можете открыть в Windows файл из WSL-дистрибутива по сетевому пути. Для этого в CMD наберите путь к файлу:
notepad \\wsl$\Ubuntu-20.04\home\1122.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 показывается список файлов с обеих ОС.
Можно отобрахить сетевые настройки (IP адрес) IP-адрес Linux-системы:
ip addr | grep eth0
В WSL не предусмотрена работа приложений с графическим интерфейсом. Тем не менее вы можете попробовать их установить и использовать. Чтобы запускать графические приложения в Linux, нужно скачать и установить в Windows программу VcXsrv Windows X Server (https://sourceforge.net/projects/vcxsrv/).
С помощью пакетного менеджера apt-get установим несколько графических программ: например, браузер, текстовый редактор или что-то ещё:
sudo apt-get install gedit
sudo apt-get install firefox
sudo apt-get install x11-app
Затем создайте файл в директории root:
Теперь можете запустить графические программы Linux через WSL командами:
Вы можете установить в Windows 10 несколько дистрибутивов Linux и запускать одновременно в разных окнах WSL. Вывести весь перечень установленных дистрибутивов можете с помощью команды:
чтобы завершить работу всех запущенных дистрибутивов и ядра WSL 2, выполните команду:
Установка локального веб-сервера на подсистему Windows для Linux
В этой статье рассмотрим процесс установки локального веб-сервера (Apache, MySQL и PHP) на подсистему Windows для Linux (Windows Subsystem Linux).
Что такое подсистема Windows для Linux
WSL представляет собой подсистему для ОС Windows 10, через которую можно запускать Linux приложения. В этой статье рассмотрим, как на данной подсистеме можно настроить веб-сервер (Apache, MySQL, PHP) для локальной разработки веб-проектов.
Windows 10, начиная с версии 2004 уже включает WSL 2.
Основные этапы настройки веб-сервера на WSL
Процесс установки веб-сервера на WSL можно разбить на следующие шаги:
Включение подсистемы Windows для Linux
Для включения компоненты «Подсистема Windows для Linux» в Windows 10 необходимо выполнить следующие действия:
Для использования WSL 2 вам необходимо дополнительно ещё включить в окне «Компоненты Windows» необязательный компонент «Платформа виртуальной машины».
Какую версию WSL выбрать
Чтобы определиться какая версия WSL вам нужна, нужно рассмотреть их различия.
WSL 2 в отличие от WSL 1 имеет полнофункциональное ядро Linux с полной совместимостью системных вызовов. Это позволяет использовать внутри WSL 2 целый ряд приложений (Docker и другие). Если вам нужна поддержка этих приложений, то тогда однозначно стоит остановится на 2 версии этой подсистемы. К сведению, ядро Linux для WSL 2 собранно компанией Microsoft и будет автоматически обновляться через центр обновления Windows.
WSL 1 рекомендуется использовать для проектов, файлы которого будут находиться в файловой системе Windows. В этом случае вы получите более высокую производительность, чем на WSL 2.
На мой взгляд, использовать вторую версию WSL пока не имеет особого смысла, только если вы не используете Docker или другое приложение, которому нужна полная совместимость системных вызовов Linux. Т.к. при использовании WSL 2 вам необходимо будет располагать проект в файловой системе Linux, иначе производительность файловых систем ОС при работе с этим проектом будет достаточно низкой. Но в любом случае вы можете переключить WSL для дистрибутива Linux как на первую версию, так и на вторую, и посмотреть какой вариант этой подсистемы для работы вам более подходит.
Работа с версиями WSL
Установку версии WSL, которую вы хотите использовать по умолчанию, осуществляется посредством выполнения в PowerShell следующей команды (например, WSL 2):
Эта команда установит по умолчанию в качестве версии WSL 2. Если нужно WSL 1, то в вместо 2, нужно указать соответственно 1.
Проверить WSL версию, назначенному каждому из установленных дистрибутивов Linux можно в PowerShell через следующую команду:
Для того чтобы изменить назначенную WSL версию дистрибутиву Linux на другую:
Например, для того чтобы перевести Ubuntu-18.04 на WSL 2 необходимо выполнить команду:
Доступ к файловым системам ОС
Установка приложения «Ubuntu»
Установку приложения «Ubuntu» на компьютер осуществим через магазин приложений Microsoft Store. Для этого необходимо открыть данный магазин приложений, найти приложение «Ubuntu» и установить его.
Установка программного обеспечения в ОС Ubuntu
Запустим операционную систему «Ubuntu».
Введём новое UNIX имя пользователя (username) и пароль (password).
Обновим локальный индекс apt пакетов в операционной системе Ubuntu:
Обновим установленное программное обеспечение:
Установим MySQL сервер:
Установим php и другие пакеты, необходимые для веб-разработки:
Для установки какой-то определённой версии php, например 7.1.x, необходимо выполнить следующие команды:
Включим модуль Mod rewrite в Apache:
Создание директории для веб-проекта
Создадим в Windows 10, например, с помощью проводника, директорию для сайта (проекта) test.ru:
При использовании WSL 2 рекомендуется сохранять файлы в файловой системе Linux. Это необходимо для обеспечения максимальной производительности.
В этом случае директорию для проекта поместим сюда:
Для более удобного создания каталогов и работы с файловой системой Linux вы можете установить в Ubuntu, например, Midnight Commander:
Запуск Midnight Commander осуществляется посредством ввода команды:
Изменение метода аутентификации MySQL пользователя root
Для изменения метода аутентификации MySQL пользователя root выполним следующие действия:
1. Запустим службу mysql.
2. Подключимся к серверу MySQL под стандартным пользователем root, который создаётся при установке MySQL на компьютер:
4. Проверим метод аутентификации, который используется для пользователя root.
Если пользователь использует аутентификацию с помощью плагина auth_socket, то изменим эту настройку на использование пустого пароля. Для этого введём команду:
Выполним команду FLUSH PRIVILEGES, которая применит внесённые изменения:
Создание базы данных
Создадим базу данных для веб-проекта test.ru. Для этого введем в командной строке MySQL введём следующую команду:
Если в базу данных testru необходимо загрузить дамп некоторой базы, находящийся, например, в файле backup.sql, то можно воспользоваться следующими инструкциями:
Для завершения работы с командной строкой MySQL выйдем из неё:
Настройка виртуальных хостов в Apache
В Ubuntu файлы настроек виртуальных хостов Apache располагаются в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Данный файл будем использовать в качестве примера.
Создадим копию файла 000-default.conf:
Отредактируем файл test.ru.conf, для этого можно воспользоваться, например, редактором nano:
Итоговое содержимое файла test.ru.conf:
Включим новый виртуальный хост с помощью утилиты a2ensite:
Перенаправление test.ru на локальный веб-сервер
Для того чтобы доменное имя test.ru было связано с локальным веб-сервером необходимо открыть файл hosts, расположенный по адресу C:\Windows\System32\drivers\etc и добавить в него строчку:
Команды для запуска и остановки веб-сервера
Для запуска Apache и MySQL необходимо ввести следующие команды:
Для остановки веб-сервера:
Для упрощения запуска и остановки веб-сервера можно создать bash скрипты start.sh и stop.sh.
Содержимое файла start.sh:
Содержимое файла stop.sh:
Вместо password необходимо ввести пароль, который установили для UNIX пользователя.
Запуск веб-сервера (./start.sh):
Проверка работоспособности веб-сервера
Длы проверки работоспособности веб-сервера установим на test.ru систему управления контентом, например, MODX Revolution.
Для этого скачаем со страницы Download MODX Revolution архив системы и распакуем его в директорию d:\Projects\test.ru\public_html\.
Для установки системы необходимо открыть мастер. Осуществляется это посредством ввода в строку поиска браузера адреса http://test.ru/setup. После этого ответим на все вопросы мастера и нажмём на кнопку «Установить».
Дождёмся окончания процесса установки и получим отчет об установке CMS MODX Revolution.
Инструкция по установке phpMyAdmin
Пошаговые действия по установке phpMyAdmin в Ubuntu:
2. Установим phpMyAdmin:
При установке мастер будет предлагать вам ответить на следующие вопросы:
Но установленная этим образом версия phpMyAdmin является устаревшей и содержит некоторые ошибки.
Для её обновления выполним ещё следующие действия:
Дополнительные инструкции
Установка WSL
Предварительные требования
Вам следует использовать Windows 10 версии 2004 и выше (сборка 19041 и выше) или Windows 11.
Чтобы проверить версию и номер сборки Windows, нажмите клавиши WINDOWS+R, введите winver и щелкните ОК. Вы можете выполнить обновление до последней версии Windows, выбрав Пуск Параметры **Центр обновления Windows**>>.
Установка
Теперь вы можете установить все необходимое для запуска подсистемы Windows для Linux (WSL), введя эту команду в PowerShell от имени администратора или командной строке Windows, а затем перезапустив компьютер.
При первом запуске недавно установленного дистрибутива Linux откроется окно консоли. Вам будет предложено подождать, пока файлы будут распакованы и сохранены на компьютере. Все будущие запуски должны занимать меньше секунды.
Изменение установленного дистрибутива Linux по умолчанию
Если во время установки возникла проблема, см. раздел Установка руководства по устранению неполадок.
Настройка сведений о пользователе Linux
После установки WSL необходимо создать учетную запись пользователя и пароль для установленного дистрибутива Linux. Дополнительные сведения см. в статье Рекомендации по настройке среды разработки WSL.
Советы и рекомендации
Мы рекомендуем использовать наше пошаговое руководство Рекомендации по настройке среды разработки WSL. В нем описано, как настроить имя пользователя и пароль для установленных дистрибутивов Linux, использовать основные команды WSL, установить и настроить Терминал Windows, настроить управление версиями Git, отредактировать код и выполнить отладку с помощью удаленного сервера VS Code. Кроме того, в руководстве приведены рекомендации по хранению файлов, настройке базы данных, подключению внешнего диска, настройке ускорения GPU и пр.
Хотите испытать новейшие предварительные версии функций WSL?
Чтобы поработать с самыми последними функциями или обновлениями для WSL, присоединитесь к Программе предварительной оценки Windows. Когда вы присоединитесь к участникам Программы предварительной оценки Windows, вы сможете выбрать канал для получения предварительных сборок в меню параметров Windows и будете автоматически получать предварительные версии функций и обновления для WSL, связанные с этой сборкой. Можно выбрать одно из следующих значений.
Полезные команды WSL для PowerShell
Подсистема Windows для Linux имеет определённую степень кроссплатформенной совместимости с PowerShell и управляется из оболочки Windows. Давайте рассмотрим важные команды, которые могут вам пригодиться.
Подсистема Windows для Linux (WSL) представляет собой мощный инструмент. Последняя версия размещает в Windows 10 реальное ядро Linux. В будущем появится поддержка графического интерфейса приложений и возможность настраивать при помощи всего одной команды.
WSL пока не поддерживает графического интерфейса, поэтому работа ведётся через терминал. Когда у вас установлен дистрибутив Linux или даже несколько, управление и взаимодействие с ними через PowerShell требует определённых навыков.
В этой статье мы рассмотрим важные команды, которые могут вам потребоваться.
Прежде чем вы установите WSL2, нужно получить WSL. Это может прозвучать странно, но методы активации первого поколения и второго поколения отличаются. Чтобы стать обладателем более современной версии, нужно сначала поставить первую версию. Напрямую установить WSL2 нельзя.
Для начала необходимо прочитать руководство по установке подсистемы Windows для Linux. Если вы ищите максимально короткий путь, можно обойтись всего одной строкой кода.
Откройте PowerShell с правами администратора и введите команду:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Можно перезагрузить компьютер сразу или потом.
Важные команды WSL для PowerShell
Если вы работаете с WSL2 или сочетанием обеих версий, среди основ есть команды для управления тем, какой дистрибутив Linux используется в каждой версии. Для этих команд более короткие версии доступны только в Windows 10 19041 и в более современных. В любом случае необходимо знать полные версии, чтобы понимать, что они делают.
Основы
Если у вас открыто окно PowerShell и вы хотите попасть в дистрибутив WSL Linux по умолчанию:
exit всегда возвращает вас обратно в PowerShell. Если вы хотите запустить определённый дистрибутив:
Для запуска Debian команда будет
Можно упомянуть один из наиболее полезных инструментов для управления WSL, а именно вызов помощи:
Управление версиями WSL
Чтобы увидеть, какая версия WSL приписана к каждому из установленных дистрибутивов Linux:
Результаты покажут, какая из версий является дистрибутивом wsl по умолчанию. Если вы хотите только узнать, какой дистрибутив установлен, уберите опцию verbose.
Если вы хотите пойти на шаг дальше и указать, какой из установленных дистрибутивов будет использоваться по умолчанию:
Например, если вы хотите установить Ubuntu как дистрибутив по умолчанию:
Если вы обновились до WSL2 и хотите сделать эту версию вариантом по умолчанию:
В результате любая будущая установка Linux будет использовать WSL2, но не уже установленную первую версию WSL. Это преобразование нужно выполнять вручную. Чтобы поменять привязанную к дистрибутиву версию WSL:
Например, для смены Debian на WSL 2:
Запуск команд при помощи wsl.exe
Можно запускать некоторые команды Linux без необходимости сначала открывать отдельную оболочку. Это особенно удобно для быстрых процессов, вроде запуска обновления.
Используется шаблон wsl
Если вы хотите запустить команды в дистрибутиве Linux по умолчанию, задавать аргумент не нужно. Например, для запуска команды sudo apt update для Ubuntu, если этот дистрибутив у вас по умолчанию, введите:
wsl sudo apt update
Вы получите запрос на пароль Linux, но в остальном можно выполнять команды, не покидая PowerShell. Если вы хотите использовать определённую версию Linux, нужно использовать аргумент и опцию. Используем эту же команду для Debian:
Управление WSL
Есть базовые команды для управления WSL. Некоторые из них мы уже назвали, вроде списка дистрибутивов и задания варианта по умолчанию.
Если вы хотите экспортировать дистрибутив в файле tar:
Важно ввести полный путь к файлу, который вы хотите создать. В примере ниже создаётся экспорт Debian в папку Code на диске C:\ и называется debiantest.
После импортирования создаётся файл debiantest. Для его запуска:
Сравнение WSL 1 и WSL 2
Основные различия между подсистемами Windows для Linux WSL 1 и WSL 2 и причины обновления:
WSL 2 использует последнюю и самую новую технологию виртуализации для запуска ядра Linux внутри упрощенной служебной виртуальной машины. Однако WSL 2 не является традиционным функционалом виртуальной машины.
Сравнение возможностей
Функция | WSL 1 | WSL 2 |
---|---|---|
Интеграция Windows и Linux | ✅ | ✅ |
Быстрый запуск | ✅ | ✅ |
Небольшой объем занимаемых ресурсов по сравнению с традиционными Виртуальными машинами | ✅ | ✅ |
Запуск с использованием текущих версий VMware и VirtualBox | ✅ | ✅ |
Управляемая виртуальная машина | ❌ | ✅ |
Полнофункциональное ядро Linux | ❌ | ✅ |
Полная совместимость системных вызовов | ❌ | ✅ |
Производительность в файловых системах ОС | ✅ | ❌ |
Как видно из приведенной выше таблицы, архитектура WSL 2 во многом превосходит архитектуру WSL 1, за исключением показателей производительности при работе с несколькими файловыми системами ОС.
Подсистема WSL 2 доступна только в Windows 10 версии 1903, сборки 18362 или выше. Проверьте версию Windows, нажав Windows + R, введите winver, выберите ОК. (Или введите команду ver в командной строке Windows). Может потребоваться выполнить обновление до последней версии Windows. Для сборок ниже 18362 WSL не поддерживается.
Новые возможности в WSL 2
WSL 2 — это основная модернизированная версия базовой архитектуры, которая использует технологию виртуализации и ядро Linux для реализации новых возможностей. Основные приоритеты этого обновления — увеличение производительности файловой системы и добавление полной совместимости системных вызовов.
Архитектура WSL 2
Во время обычной работы виртуальная машина может замедляться при загрузке, изолироваться, потреблять много ресурсов и требовать время для управления. В подсистеме WSL 2 нет таких проблем.
WSL 2 предоставляет преимущества WSL 1, включая простую интеграцию между Windows и Linux, быструю загрузку, незначительное потребление ресурсов и не требует настройки виртуальной машины или управления ею. Хотя WSL 2 использует виртуальную машину, она будет управляемой и будет работать в фоновом режиме, предоставляя тот же пользовательский интерфейс, что и WSL 1.
Полнофункциональное ядро Linux
Ядро Linux в WSL 2 собрано собственными силами корпорации Майкрософт на основе последней стабильной ветви исходного кода, доступного по адресу kernel.org. Этот ядро специально настроено для WSL 2 путем оптимизации размера и производительности, чтобы обеспечить невероятное взаимодействие с Linux в Windows. Ядро будет обслуживаться обновлениями Windows. Это означает, что вы получите новейшие исправления безопасности и улучшения ядра без необходимости заниматься этим самостоятельно.
Ядро Linux WSL 2 — это проект с открытым исходным кодом. Если вы хотите узнать больше, ознакомьтесь с записью блога Реализация ядра Linux в Windows, созданной группой, которая занималась сборкой ядра.
Повышенная производительность операций ввода-вывода файлов
Команды для операций с большими объемами файлов, такие как git clone, npm install, apt update, apt upgrade и другие, с WSL 2 выполняются заметно быстрее.
Фактическое увеличение скорости будет зависеть от того, какое приложение вы используете и как оно взаимодействует с файловой системой. Первоначальные версии WSL 2 запускаются в 20 раз быстрее по сравнению с WSL 1 при распаковке сжатого архива tarball и в 2–5 раз быстрее при использовании команд git clone, npm install и cmake в различных проектах.
Полная совместимость системных вызовов
Двоичные файлы Linux используют системные вызовы для выполнения функций, таких как доступ к файлам, запрос памяти, создание процессов и многое другое. В то время как WSL 1 использует уровень перевода, созданный командой WSL, WSL 2 имеет собственное ядро Linux с полной совместимостью системных вызовов. Доступные преимущества:
целый ряд новых приложений, которые можно запускать внутри WSL, например Docker и другие;
все обновления ядра Linux немедленно готовы к использованию. (Вам не нужно ждать, пока специалисты WSL реализуют обновления и добавят изменения).
Исключения для использования WSL 1 вместо WSL 2
Рекомендуется использовать WSL 2, так как он обеспечивает более высокую производительность и полную совместимость системных вызовов. Однако существует несколько отдельных сценариев, в которых использовать WSL 1 может оказаться более предпочтительным. Рекомендуем использовать WSL 1, если:
Попробуйте использовать удаленное расширение WSL VS Code, чтобы хранить файлы проекта в файловой системе Linux, используя средства командной строки Linux. Также с помощью VS Code в Windows можно создавать, редактировать, отлаживать или запускать проекты в браузере без снижения производительности, связанной с работой в файловых системах Linux и Windows. Подробнее.