Microsoft объявила, что версия подсистемы Windows для Linux (WSL) стала доступна в магазине компании для клиентов Windows 10 и 11.
Теперь Microsoft отказывается от предоставления WSL в качестве дополнительного компонента операционной системы. Размещение подсистемы в магазине позволит пользователям быстрее получать обновления.
Кроме того, по запросу все пользователи Windows 10 смогут использовать приложения Linux с графическим интерфейсом после обновления до последней версии Microsoft Store.
Последняя общедоступная версия распространяется на пользователей систем под управлением Windows 10 21H1 и более поздних версий или Windows 11 21H2 и более поздних версий с установленными обновлениями за ноябрь 2022 года.
Новые пользователи могут получить WSL, запустив wsl —install, а существующие пользователи могут выполнить обновление до последней версии Store, используя wsl —update.
Microsoft выпустила WSL в 2018 году, что позволило пользователям Windows запускать двоичные файлы Linux на своих компьютерах с помощью PowerShell или командной строки Windows 10. В мае 2019 года вышло крупное обновление WSL 2, значительно повысившее производительность файловой системы, с поддержкой полной совместимости системных вызовов и использования ядра Linux, работающего внутри облегчённой виртуальной машины (ВМ).
В мае 2021 года была внедрена поддержка приложений Linux на основе графического интерфейса через WSLg (Windows Subsystem for Linux GUI).
В ноябре 2021 года Microsoft опубликовала новую версию подсистемы Windows для Linux в формате приложения.
В сентябре 2022 года Microsoft и Canonical объединились для добавления поддержки systemd в подсистему Windows для Linux, что позволяет устанавливать большее количество совместимых приложений.
Подробное руководство по установке и запуску приложений Linux с графическим интерфейсом размещено на официальной странице WSLg на GitHub.
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 (Control PanelAll Control Panel ItemsPrograms and FeaturesTurn Windows features on or off), активировать галочку Подсистема Windows для Linux (Windows Subsystem for Linux), нажать кнопку ОК, и перезагрузить компьютер.
Вы можете включить компоненты 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
или PowerShell
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
В Windows Server 2004 Semi-Annual Channel (SAC) для установки компонента WSL используется командлет Install-WindowsFeature:
Install-WindowsFeature -Name Microsoft-Windows-Subsystem-Linux
После этого также необходимо перезагрузить компьютер.
В настройка BIOS/UEFI компьютера должна быть включена поддержка аппаратной виртуализации: Intel VT (Intel Virtualization Technology) или AMD-V.
Теперь вам нужно выполнить обновление WSL до версии 2. Для этого требуется зайти на сайт https://docs.microsoft.com/ru-ru/windows/wsl/wsl2-kernel, скачать файл wsl_update_x64.msi, установить его. По завершении увидите картинку
Чтобы сделать WSL2 архитектурой по умолчанию для новых дистрибутивов, в PowerShell выполните команду:
wsl --set-default-version 2
Далее вам необходимо открыть 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, нажмите кнопку Получить.
Если у вас отключен Windows Store или вы хотите установить дистрибутив WSL в Core редакции Windows Server, вы можете скачать дистрибутив Ubuntu с помощью PowerShell командлета Invoke-WebRequest:
Invoke-WebRequest https://aka.ms/wslubuntu2004 -OutFile ubuntu-2004.zip –UseBasicParsing
Распакуйте архив:
Expand-Archive -Path .ubuntu-2004.zip
Запустите установку образа Linux с помощью файла Ubuntu.exe.
Также вы можете скачать образ в виде appx файла и установить его с помощью командлета Add-AppxPackage.
После установки можно проверить используемую версию WSL с помощью команды
wsl --list –-verbose
Если у вашей среды Linux указана версия 1, нужно изменить ее на WSL2 командой:
wsl --set-version Ubuntu-20.04 2
Файл жёсткого диска с образом виртуальной машины ОС Linux Ubuntu 20.04 будет располагаться в профиле пользователя: C:Users234AppDataLocalPackagesCanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgscLocalState.
После установки дистрибутива в стартовом меню появляется ярлык на него. Для запуска Ubuntu зайдите в меню Пуск, нажмите на соответствующем ярлыке и получите в отдельном окне полноценную командную оболочку Bash. Запускать WSL можно и с помощью команды wsl. При первом запуске образа в командной строке Bash вам будет предложено создать пользователя и пароль (которые не должны совпадать с учётной записью Windows). Чтобы выполнять команды с правами root, необходимо использовать дополнительный ключ (префикс) sudo. В WSL есть общие команды для Bash и CMD, и тут нужно не забывать, что система Linux чувствительна к регистру.
Вы можете выполнить Linux-команды из CMD. Для этого необходимо вначале указать “WSL”. Например, для просмотра списка файлов и папок в каталоге Windows, выполните:
wsl
ls /mnt
ls/mnt/c
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.04home1122.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:
cd /~
vim .bash_login
впишите строку
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
сохраните запись
Esc -> :wr -> :q
Теперь можете запустить графические программы Linux через WSL командами:
firefox
или
gedit
Вы можете установить в Windows 10 несколько дистрибутивов Linux и запускать одновременно в разных окнах WSL. Вывести весь перечень установленных дистрибутивов можете с помощью команды:
wsl --list –all
чтобы завершить работу всех запущенных дистрибутивов и ядра WSL 2, выполните команду:
wsl --shutdown
Windows Subsystem for Linux (WSL) — очень полезная возможность, которую Microsoft добавила в Windows 10 в 2017 году. Она позволяет разработчикам запускать среды GNU/Linux непосредственно в Windows, не требуя виртуальных машин (VM) или конфигураций с двойной загрузкой. Конечно, эта функция присутствует и в Windows 11. Ранее для включения WSL использовалось диалоговое окно «Включение или отключение компонентов Windows», но теперь Microsoft выпустила специальное приложение для WSL через Microsoft Store в Windows 11.
Приложение WSL в настоящее время доступно в виде предварительной версии в Microsoft Store для Windows 11. Microsoft отметила, что распространение WSL с помощью этого метода дает два взаимосвязанных преимущества. Во-первых, вы получите доступ к функциям быстрее, поскольку WSL можно обновлять прямо из магазина. Это также тесно связано со вторым преимуществом, когда WSL отделена от компонента Windows, а это означает, что вам не придется обновлять или изменять установку Windows только потому, что WSL получает новые функции.
Microsoft отметила, что она уже добавила некоторые новые возможности в предварительную версию WSL в Microsoft Store. Это:
• WSLg теперь входит в состав приложения WSL!;
• Новые функции wsl.exe —mount!;
• Добавляйте —mount —vhd, чтобы упростить монтирование файлов VHD;
• Реализуйте обнаружение файловой системы для wsl —mount. Это изменение реализует определение типа файловой системы, если при использовании wsl.exe —mount не указан —type;
• Добавляйте функцию —name в wsl —mount. Это изменение добавляет поддержку для необязательного наименования точки монтирования при монтировании диска через WSL;
• Ядро Linux обновлено до версии 5.10.60.1;
• Добавлена вспомогательная функция индикатора выполнения, используемая для отображения сообщения «Пожалуйста, подождите» с анимированными точками в процессе преобразования, чтобы показать пользователям, что WSL все еще работает;
• Переключено wsl —install, чтобы не требовать аргумент —distribution. Это изменение переключает wsl —install, чтобы не требовать аргумент —distribution, но поддерживает поддержку, чтобы избежать нарушения существующих сценариев.
• Добавлена команда wsl.exe —version, которая отображает соответствующую информацию о версии;
Важно отметить, что версия WSL для Windows и аналог WSL для Microsoft Store могут сосуществовать и будут иметь доступ к одним и тем же дистрибутивам. Однако вариант из Microsoft Store будет иметь приоритет. Можно использовать дистрибутивы WSL 1, но в качестве предварительного условия вам необходимо убедиться, что WSL также включена в Windows, поскольку связанный драйвер еще не отделен от ОС.
Интересно, что Microsoft отметила, что будет продвигать версию WSL для Microsoft Store как оптимальный способ задействовать эту возможность на вашем компьютере с Windows 11, поскольку это обеспечит более быструю частоту обновления. Однако те, кто использует версию для Windows, по-прежнему поддерживаются. Компания будет использовать отзывы, чтобы определить целесообразность включения WSL в образ Windows.
Вы можете загрузить
Windows Subsystem for Linux Preview из Microsoft Store для Windows 11 здесь
.
Как настроить полноценное окружение разработчика, привыкшего к Linux и Mac OS X.
Традиционно считается, что разработчики (в особенности связанные с бэкенд-разработкой) предпочитают использовать unix-like-системы. Причиной тому было немало. Ситуация начала несколько меняться в 2017 году — именно тогда вышел первый стабильный релиз Windows Subsystem for Linux (также известен под более ранним названием BashOnWindows), который дал разработчикам то, чего они так давно ждали, — полноценный Linux в качестве приложения в Windows!
Но не всё оказалось так просто — лишь к концу 2018 года WSL стало возможно использовать полноценно, при этом способ отнюдь не очевиден. О нём и пойдёт речь.
Конечная цель
Для начала пара слов о том, что такое вообще Windows Subsystem for Linux, он же WSL в сокращённом варианте. Это прослойка между ядром Windows и приложениями для Linux, которая позволяет преобразовывать системные вызовы к ядру Linux в вызовы к ядру Windows. Благодаря тому, что виртуализация практически отсутствует, такое решение работает быстрее традиционной виртуализации, где эмулируется целый компьютер, как это происходит в Oracle VirtualBox и VMWare Player.
Кроме того, WSL включает в себя целый ряд утилит для интеграции с Windows — пути в файловой системе автоматически преобразовываются в нужный формат, из-под Linux можно запускать приложения в Windows (но не наоборот!), Linux в WSL имеет доступ ко всем портам и сервисам в Windows.
Для разработчика основное применение WSL сразу же видится в развёртывании среды разработки именно там. Всё же установка многих языков, компиляторов и интерпретаторов, утилит происходит в Linux куда проще — часто одной командой из репозитория. Да и привычная консоль под рукой.
В статье будет рассматриваться именно настройка среды разработки в WSL — для примера возьмём небольшой проект, написанный на Python/Angular/Go (а почему бы и нет?), разрабатываемый в Visual Studio Code. Однако описанные рекомендации в целом подойдут для любого другого редактора или IDE.
Установка для Windows 10 x64
Важный момент: WSL официально поддерживается только в Windows 10 x64, начиная с Anniversary Update. Если у вас иная версия — альтернативное решение представлено в следующем разделе.
- Включить поддержку Windows Subsystem for Unix, открыв PowerShell от администратора и выполнив команду:
PS C:Windowssystem32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- Если у вас установлена десктопная редакция Windows 10: зайти в Microsoft Store и установить необходимый вам дистрибутив. Для нашего эксперимента будет использована Ubuntu 18.04 LTS. Затем вы сможете запустить ваш дистрибутив через меню «Пуск».
- Если у вас установлена иная редакция Windows, без Microsoft Store (например, Windows 10 LTSC либо Windows Server): в PowerShell выполнить следующие команды:
PS C:Windowssystem32> cd ~
PS C:Userssomebody> Rename-Item .Ubuntu.appx .Ubuntu.zip
PS C:Userssomebody> Expand-Archive .Ubuntu.zip .Ubuntu
PS C:Userssomebody> cd .Ubuntu
PS C:Userssomebody> .ubuntu1804.exe
При первом запуске необходимо задать ваши логин и пароль.
Далее уже вам откроется консоль с Ubuntu.
Установка для 32-битных редакций Windows 10 и Windows 7, 8 и 8.1
К сожалению, на этих редакциях WSL не поддерживается. Но мы можем без особого труда заменить его Vagrant — мощной утилитой для конфигурирования виртуальных машин. Vagrant работает поверх других сред виртуализации: VirtualBox, VMWare Player или Microsoft Hyper-V. Поэтому стоит понимать, что такой вариант будет по умолчанию медленнее, нежели WSL. А в случае с VirtualBox значительно медленнее из-за файловой системы vboxsf.
Установить Vagrant можно с официального сайта. Также вам потребуется VirtualBox и Git. После этого создайте папку для вашей виртуальной машины, в ней создайте файл Vagrantfile со следующим содержимым:
Vagrant.configure(«2») do |config|
config.vm.box = «bento/ubuntu-18.04»
config.vm.synced_folder «c:/», «/windows»
# Необходимо указать для каждого порта, который вы хотите расшарить из ВМ или в ВМ
config.vm.network :forwarded_port, host: 5432, guest: 5432
config.vm.provider «virtualbox» do |vb|
vb.memory = 2048
end
end
После чего в том же PowerShell или cmd выполните команду:
vagrant up
После загрузки, настройки и запуска виртуальной машины вы попадёте в консоль Linux. Ура!
Устанавливаем всякие скучные вещи
Разворачиваем наше окружение под Python/JS/Go.
:~$ sudo apt update
:~$ sudo apt install build-essential
:~$ sudo apt install -y git nodejs golang python-dev libreadline-dev libbz2-dev libssl-dev libsqlite3-dev libxslt1-dev libxml2-dev libffi-dev
:~$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
:~$ # Инсталлятор попросит вас добавить загрузку pyenv в ~/.bashrc
:~$ source ~/.bashrc
:~$ pyenv install 3.7.2
:~$ pyenv global 3.7.2
Быстро проверяем работоспособность версий и, собственно, версии:
:~$ nodejs -v
v8.10.0
:~$ go version
go version go1.10.4 linux/amd64
:~$ python -V
Python 3.7.2
:~$
Неужели всё уже работает?
Конечно нет.
Сразу стоит отметить важный факт: ни Visual Studio Code, ни Sublime Text, ни даже ваша любимая IDE ничего не знают о существовании WSL. Из коробки более-менее с ним умеют работать только продукты от JetBrains. Лично мне Visual Studio Code по настройке, скорости работы нравится куда больше (но это текстовый редактор, о чём не стоит забывать).
И единственное, что вы можете сделать в Visual Studio Code, установленной на Windows, — подключить себе WSL вместо стандартного PowerShell в терминале. Это делается в User Settings:
{
«terminal.integrated.shell.windows»: «C:\Windows\System32\wsl.exe»,
# Добавьте сюда иные настройки по вашему усмотрению
}
На этом всё. Про линтер, автодополнение кода из библиотек, подсветку ошибок можете забыть, по крайней мере для Python. Способа решения сообщество ждёт вот уже три года. Сейчас самый простой и действенный способ заставить его работать — установить в WSL.
- Установите MobaXterm и Cmder. Конечно, вы можете по своему выбору заменить их на альтернативные приложения. MobaXterm — мощный SSH-терминал со встроенным X-сервером, что позволяет ему рендерить приложения, которые запускаются на удалённом X-сервере (в данном случае — внутри WSL). Cmder — локальный эмулятор терминала с поддержкой PowerShell, cmd, bash, WSL и не только, с нормальным копипастом.
- Запустите Cmder. По умолчанию он запустит cmd, но при двойном клике на нижнюю панель покажет окно, где есть возможные варианты.
- Нам нужен тот вариант, что отмечен как {WSL::bash}. Он запустит в новой вкладке консоль внутри WSL.
- Запустите MobaXterm. Он сразу же увидит WSL, установленную в системе. Для запуска X-сервера нажмите выделенную на скриншоте кнопку.
- Настроим WSL для запуска GUI-приложений. Для этого откройте файл ~/.bashrc и допишите в него:
export DISPLAY=:0
- После этого выполните команду source ~/.bashrc для применения изменений.
- Не обязательно, но желательно установить XFCE (или другой DE на ваш вкус), а также поставить шрифты, иначе от внешнего вида VS Code у вас, возможно, вытекут глаза. По крайней мере, люди жалуются.
:~$ sudo apt install -y xfce4
:~$ sudo apt install -y fonts-noto fonts-noto-hinted fonts-noto-mono fonts-noto-unhinted
- Скачайте установщик Visual Studio Code с официального сайта.
- Установите зависимости и сам VS Code:
:~$ sudo apt install libgtk2.0-0 libxss1 libasound2
:~$ sudo dpkg -i <code deb file>
:~$ sudo apt install -f
- Запустите VS Code при помощи команды code.
Вот теперь работает Ещё более кратко и по сути расписано вот тут.
Однако до совершенства есть ещё один штрих.
{
…
«window.titleBarStyle»: «native»,
…
}
Добавьте приведённую выше настройку в User Settings. В противном случае окно VS Code не будет ресайзиться.
А ты ещё докажи, что работает
Разворачивается оно стандартно для подобного рода проектов.
# You are on a project root
:~$ python -m venv env/
:~$ source env/bin/activate
:~$ pip install -r requirements.txt
:~$ cd frontend
:~$ npm install
:~$ ng build outDir=../backend/microblog/static
:~$ cd ../backend
:~$ python manage.py runserver
Отличия в настройке между Vagrant и WSL
Единственное существенное различие в контексте статьи — необходимость пробрасывать порты в хостовую файловую систему. По умолчанию Vagrant поднимает SSH-туннель на порту 2222 — именно туда вам будет необходимо логиниться из Cmder и добавить соответствующее соединение в MobaXterm.
Более подробно об использовании Vagrant с MobaXterm можно прочитать по ссылке.
Итоги
Но стоит заметить, что даже подобные извращения могут помочь многим людям, вынужденно сталкивающимися с… не всегда очевидным поведением новой технологии от Microsoft.
Упоминаются ли Linux и Windows вместе?
Если да, то что это за объединение?
Может ли это быть чем-то, что позволит преодолеть разрыв между двумя мирами?
В прошлом люди, использующие технологический стек Microsoft, применяли Windows в качестве среды разработки, в то время как другие, более заинтересованные в сообществе разработчиков с открытым исходным кодом, предпочитали Linux.
До появления подсистемы Windows для Linux (WSL) между ними существовала четкая пропасть, и они никогда ничем не делились.
Но с появлением WSL разработчики теперь могут работать в Linux на своем настольном компьютере версии Windows 10 с помощью подсистемы Windows Subsystem for Linux или Windows WSL.
Запуск системы Linux рядом с системой Windows значительно упрощается и становится более гибким благодаря WSL.
Kali Linux в подсистеме Windows для Linux
Содержание
- Что такое подсистема Windows для Linux?
- Сравнение WSL1 и WSL2
- Для чего нужна подсистема Windows для Linux?
- Зачем использовать WSL вместо Linux на виртуальной машине?
- Как настроить среду разработки WSL?
- Установите дистрибутив Linux
- Создание логина и пароля Linux
- Обновление и модернизация пакетов
- Можно включить больше дистрибутивов
- Настройка терминала Windows
- Хранение файлов
- Выберите редактор кода
- Использование Visual Studio Code
- Использование Visual Studio
- Использование Git для управления версиями
- Настройка Docker для удаленной разработки
- Создание базы данных
- Настройка GPU
- Используйте основные команды WSL
- Монтирование внешнего диска или USB
- Запуск приложений с графическим интерфейсом Linux
- Плюсы и минусы использования подсистемы Windows для Linux
- Плюсы
- Минусы
- Заключение
Что такое подсистема Windows для Linux?
Подсистема Windows Subsystem for Linux (WSL) позволяет исполняемым файлам Linux 64-разрядного формата (ELF64) работать на ядре Windows в операционной системе (ОС) Windows 10.
WSL – это компонент, который позволяет использовать средства разработки Linux на компьютерах Windows, но не рабочие нагрузки.
Изначально он был разработан как вариант установки клиентской системы Windows.
Для администрирования экземпляра Linux в состав WSL входит служба управления сеансами в пользовательском режиме, уменьшенные процессы Pico для обработки системных вызовов Linux и драйверы Pico для имитации ядра Linux.
Такая архитектура позволяет ядру Windows принимать и обрабатывать системные вызовы Linux.
На прошлой неделе компания Microsoft объявила, что Windows Subsystem for Linux версии 2 (WSL2) теперь совместима с Windows Server 2022.
Основными причинами для перехода с WSL 1 на WSL 2 являются:
- Ускорение работы файловой системы
- Поддержка совместимости системных вызовов.
WSL 2 запускает ядро Linux внутри легковесной виртуальной машины с использованием новейшей технологии виртуализации (VM).
Однако WSL 2 не является типичной виртуальной машиной.
Сравнение WSL1 и WSL2
За исключением производительности в файловых системах разных ОС, которую можно решить, храня файлы проекта в той же операционной системе, что и инструменты, используемые для работы над проектом, архитектура WSL 2 по многим параметрам превосходит WSL 1.
Только Windows 11 или 10, версия 1903, Build 18362 или более поздняя поддерживают WSL 2.
Другими ключевыми различиями между обеими версиями являются:
- Архитектурное различие
- Производительность ввода-вывода файлов
- WSL 2 обеспечивает полную совместимость с системными вызовами
На Linux системные вызовы используются для доступа к файлам, запроса памяти и запуска процессов.
В отличие от WSL 1, которая была основана на слое трансляции, созданном командой WSL, WSL 2 имеет встроенное ядро Linux, которое работает со всеми системными вызовами.
Для чего нужна подсистема Windows для Linux?
С помощью подсистемы Windows для Linux вы можете:
- Выбрать дистрибутивы GNU/Linux, которые вы предпочитаете, из магазина Microsoft.
- Запустить бинарники ELF-64 или стандартные инструменты командной строки, такие как grep, sed или awk.
- Запускать программы командной строки GNU/Linux и скрипты оболочки Bash, включая: Инструменты: tmux, emacs и vi, Языки: Go, Rust, NodeJS, Javascript, Python, Ruby, C/C++, C# и F#, Сервисы: PostgreSQL, MongoDB, Apache, MySQL, SSHD и lighttpd.
- Установить дополнительное программное обеспечение с помощью менеджера пакетов в вашем собственном дистрибутиве GNU/Linux.
- Использовать оболочку командной строки, аналогичную Unix, для запуска приложений Windows.
- Запускать программы GNU/Linux на компьютере с Windows.
- Запускать Linux в оболочке Bash (Ubuntu, Debian, OpenSUSE, Kali, Alpine и т.д.). Вы можете использовать Bash для запуска утилит и программ командной строки Linux.
Зачем использовать WSL вместо Linux на виртуальной машине?
WSL использует меньше ресурсов (процессор, память и хранилище), чем целая виртуальная машина.
Наряду с запуском инструментов и приложений командной строки Linux наряду с приложениями командной строки, рабочего стола и магазина Windows, WSL также позволяет вам получать доступ к файлам Windows из Linux и запускать инструменты и приложения командной строки Linux.
Это позволяет использовать как приложения Windows, так и инструменты командной строки Linux на одном и том же наборе файлов.
Как настроить среду разработки WSL?
В составе операционной системы Windows есть подсистема для Linux, которая называется Windows Subsystem for Linux.
Вот краткое руководство по настройке среды разработки WSL:
Установите дистрибутив Linux
Перед включением WSL установите дистрибутив Linux.
Чтобы воспользоваться преимуществами команды упрощенной установки, вы должны использовать последнюю версию Windows (Build 20262+).
Чтобы узнать, какая у вас версия и номер сборки, нажмите клавишу с логотипом Windows + R, введите winver и нажмите OK.
Обновления можно выполнить через меню Настройки или помощник обновления Windows.
Создание логина и пароля Linux
После завершения процесса установки WSL откройте дистрибутив Linux (по умолчанию Ubuntu).
Для вашего дистрибутива Linux должны быть созданы имена пользователей и пароли.
Обновление и модернизация пакетов
Используйте менеджер пакетов вашего дистрибутива для частого обновления пакетов.
Windows не выполняет автоматических обновлений и модернизаций.
Большинство пользователей Linux предпочитают справляться с этой задачей самостоятельно.
Можно включить больше дистрибутивов
Если вы хотите установить больше дистрибутивов Linux через Microsoft Store, вы можете загрузить свой собственный дистрибутив, использовать команду -import или загрузить свой собственный дистрибутив из Интернета.
Кроме того, вы можете создать уникальные образы WSL и распространить их по всей компании.
Настройка терминала Windows
Любое приложение, имеющее интерфейс командной строки, может быть запущено через терминал Windows.
Механизм рендеринга текста с ускорением GPU, множество вкладок и панелей, совместимость с символами Unicode и UTF-8, возможность создания собственных тем, а также возможность изменения текста, цвета фона и ярлыков – вот лишь некоторые из его ключевых особенностей.
При установке нового дистрибутива WSL Linux внутри терминала Windows будет создан его свежий экземпляр, который можно настроить по своему вкусу.
Хранение файлов
Храните файлы проекта на том же компьютере, что и оборудование, которое вы собираетесь использовать.
Наибольшая скорость работы достигается при сохранении файлов в файловой системе WSL (Ubuntu, OpenSUSE и т.д.).
Для сохранения файлов в файловой системе Windows можно использовать командную строку Windows (PowerShell, Command Prompt) и инструменты Windows.
Хотя файлы можно просматривать из любой операционной системы, производительность может заметно снизиться.
Выберите редактор кода
Поскольку они изначально позволяют осуществлять удаленную разработку и отладку WSL, мы советуем использовать Visual Studio Code или Visual Studio.
С помощью Visual Studio Code вы можете использовать WSL как полнофункциональную среду программирования.
Visual Studio обеспечивает встроенную поддержку WSL для кроссплатформенной разработки на C++.
Использование Visual Studio Code
Вы можете использовать WSL в качестве основной среды разработки из VS Code с помощью расширения Remote – WSL и Visual Studio Code.
После установки и настройки VS Code вы можете использовать удаленный сервер VS Code для запуска вашего WSL-проекта.
Использование Visual Studio
Используя один и тот же экземпляр Visual Studio 2022, вы можете собирать и отлаживать проекты CMake на Windows, WSL-дистрибутивах и SSH-соединениях.
Использование Git для управления версиями
Наиболее распространенная программа управления версиями называется Git.
С помощью Git вы можете отслеживать изменения, которые вы вносите в файлы, чтобы иметь запись о том, что было сделано, и при необходимости вернуться к более старым версиям.
Git также облегчает сотрудничество, позволяя объединять правки нескольких авторов в одном хранилище.
Настройка Docker для удаленной разработки
Docker Desktop предлагает среду разработки для создания, распространения и запуска докеризованных приложений для Windows.
Вы можете запускать контейнеры Linux и Windows в Docker Desktop на одной машине, включив механизм на базе WSL 2.
Создание базы данных
Начните с подключения вашего проекта в WSL к базе данных. С MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server или SQLite вы сможете быстро приступить к работе.
Настройка GPU
Подсистема Windows для Linux (WSL) предоставляет отличную среду для запуска наиболее распространенных и популярных приложений машинного обучения с GPU-ускорением, независимо от того, являетесь ли вы специалистом по исследованию данных, инженером по ML или только начинаете работать с ML. Итак, вашим следующим шагом должна стать установка и запуск GPU.
Используйте основные команды WSL
Лучший способ администрирования дистрибутивов Linux, установленных через WSL, – это PowerShell или Windows Command Prompt (CMD).
Монтирование внешнего диска или USB
Используйте WSL 2 для монтирования диска и чтения его содержимого, если вам нужен доступ к диску формата Linux, который Windows не поддерживает.
Процедуры поиска диска и раздела для подключения к WSL2, их монтирования и получения доступа к ним рассматриваются в этом уроке.
Запуск приложений с графическим интерфейсом Linux
Чтобы запускать программы Linux GUI (X11 и Wayland) на Windows в полностью интегрированной среде рабочего стола, теперь вы можете изучить совместимость с Windows Subsystem for Linux (WSL).
Благодаря WSL 2 приложения с графическим интерфейсом Linux на Windows теперь могут ощущаться как родные и интуитивно понятные.
Плюсы и минусы использования подсистемы Windows для Linux
Вот некоторые плюсы и минусы использования Windows Subsystem для Linux.
Плюсы
Идеально подходит для разработчиков, использующих инструменты с открытым исходным кодом
Если вы разработчик, уже использующий инструменты с открытым исходным кодом, ничто не сравнится с подсистемой Windows для Linux.
Она идеально подходит для тех, кто хочет использовать существующий язык разработки и инструменты сборки, или для тех, кто хочет воспользоваться преимуществами своих любимых языков программирования, которые могут работать как в Windows, так и в Linux.
В последние годы поддержка Linux со стороны Microsoft постоянно улучшается, но она все еще не настолько совершенна, как при использовании виртуальной машины или контейнера.
Но если вам нужно запустить свой код на нескольких платформах, это один из единственных вариантов, который позволит вам сделать это без необходимости устанавливать что-либо на свой компьютер.
Совместимость Windows-Linux
Совместимость Windows и Linux обеспечивается с помощью WSL.
Файловая система как Windows, так и Linux доступна для просмотра.
Кроме того, они могут запускать программы из командных интерпретаторов друг друга.
Это может привести к появлению некоторых интригующих приложений и, возможно, к переходу от рассмотрения этих двух систем как конкурентов к рассмотрению их как взаимодополняющих параметров.
Проще, чем двойная загрузка или виртуальные машины
Вам не нужно перезагружаться или запускать виртуальную машину, поскольку WSL уже работает в Windows.
При установке системы с двойной загрузкой необходимо оставить место на жестком диске и убедиться, что у вас есть резервный носитель для загрузки в случае, если что-то пойдет не так.
Вы должны перезагрузить систему, если хотите использовать Windows для выполнения программ Linux или наоборот.
Хотя виртуальная машина (VM) является более простой и быстрой в настройке, Windows и Linux сталкиваются с трудностями при обмене данными, поскольку VM все еще является принципиально другой машиной.
На виртуальной системе часто требуется настройка файлового сервера. Кроме того, виртуальные машины имеют стоимость производительности.
Простое введение в Linux для пользователей Windows
Для тех, кто не знаком с Linux, WSL может стать лучшей отправной точкой.
Они могут познакомиться с командами Linux, не устанавливая полностью новую операционную систему. WSL можно установить всего несколькими щелчками мыши из магазина Microsoft Store.
Кроме того, это облегчит людям переход на Linux.
Минусы
Вы продолжаете использовать Windows
Поскольку использование WSL все равно подразумевает участие в этой экосистеме, ее использование вызывает возражения у тех, кто идеологически не приемлет Microsoft и проприетарное ПО.
WSL будет поддерживать участие в этой системе.
Для ярых сторонников свободного программного обеспечения не подойдет ничто иное, как ПК под управлением свободной версии GNU/Linux.
WSL создавалась не для серверов
Дистрибутивы не предназначены для работы в качестве серверов, хотя WSL может быть установлена на Windows Server.
Запустить такие серверы, как Apache или MariaDB на Ubuntu сложнее, поскольку система не поддерживается.
Большинство пользователей, которым требуются серверы, устанавливают обычные Linux-серверы, поэтому этот недостаток может быть не столь существенным.
WSL может препятствовать внедрению Linux на настольных компьютерах
Меньшему числу пользователей может понадобиться установка настольной версии Linux, поскольку WSL совместима с Windows.
Учитывая, что у них уже есть настольная система Windows и они могут запускать приложения Linux GUI на Windows, они могут не видеть необходимости в установке совершенно новой настольной ОС.
Предположим, что только крошечный процент пользователей Linux работает с полным рабочим столом.
В этом случае, возможно, не будет прилагаться столько усилий для улучшения совместимости оборудования, что может только усугубить проблемы с рабочим столом Linux.
Заключение
В своем нынешнем виде WSL – это довольно крутой прогресс в Windows.
Разработчики, работающие в Windows, могут получить доступ к среде Linux благодаря Windows Subsystem for Linux.
WSL предлагает ядро Linux и позволяет установить несколько дистрибутивов внутри среды Windows, устраняя необходимость запускать виртуальную машину или полагаться на удаленный компьютер с Linux для разработки.
Конечная цель – предоставить простой способ запуска Linux в Windows.
Самое главное, WSL не занимает много памяти (например, около 256 МБ для Bash), что означает, что ваша машина может работать быстрее и плавнее.
Microsoft выпустила предварительную версию Windows Subsystem for Linux (WSL) в магазине приложений Microsoft Store для Windows 11, чтобы протестировать новый способ доставки обновлений для подсистемы. Ранее WSL являлся дополнительной функцией для Windows 10 и Windows 11, которую можно было установить через приложение «Параметры», однако в таком варианте подсистема обновлялась лишь вместе с обновлениями ОС, а значит и новые функции внедрялись медленно.
Теперь же WSL будет обновляться через Microsoft Store, так что пользователи Windows 11 смогут чаще получать обновления и, следовательно, новые функции.
Предварительная версия Windows Subsystem for Linux в Microsoft Store включает в себя несколько новых функций, в том числе обновлённое ядро Linux (5.10.60.1) и компонент WSLg, позволяющий запускать Linux-приложения с графическим интерфейсом.
Но важно отметить, что версия из Microsoft Store не поддерживает WSL 1, поэтому для дистрибутивов, установленных на первое поколение подсистемы, по-прежнему требуется компонент WSL, включаемый в приложении «Параметры». Компонент и версию из Microsoft Store можно использовать одновременно, так что это не самая большая проблема.
Скачать предварительную версию Windows Subsystem for Linux (WSL) можно из Microsoft Store, перейдя по этой ссылке.
Новые функции в Windows Subsystem for Linux (WSL) Preview:
- WSLg теперь является частью приложения WSL.
- Новые функции
wsl.exe --mount
:- Добавлена параметр
--mount --vhd
для упрощения монтирования VHD. - Реализовано определение файловой системы для
wsl --mount
. Это изменение реализует определение типа файловой системы, если при использованииwsl.exe --mount
не используется параметр--type
. - Добавлен параметр
--name
вwsl --mount
. Он добавляет поддержку необязательного указания точки монтирования диска.
- Добавлена параметр
- Ядро Linux обновлено до версии 5.10.60.1.
- Добавлена вспомогательная функция индикатора выполнения, используемая для отображения сообщения «Пожалуйста, подождите» с анимированными точками в процессе преобразования, чтобы показать пользователям, что WSL всё еще работает.
- Изменена команда
wsl --install
, чтобы она не требовала аргумента--distribution
. При этом поддержку самого параметра оставили, чтобы имеющиеся сценарии продолжали работать. - Добавлена команда
wsl.exe --version
, которая отображает соответствующую информацию о версии.