Программирование на Python и Objective-C в Mac OS

Программирование на Python и Objective-C под Mac OS и для iPhone / iPod Touch

Linux subsystem for windows: Установка подсистемы Linux в Windows Server

Содержание

Установка подсистемы Linux в Windows Server



  • Чтение занимает 2 мин

В этой статье

Подсистема Windows для Linux доступна для установки на Windows Server 2019 (версия 1709) и более поздних версий. В этом руководстве рассматриваются действия по включению WSL на компьютере.

Включение подсистемы Windows для Linux

Перед запуском дистрибутивов Linux в Windows необходимо включить дополнительный компонент «Подсистема Windows для Linux» и перезагрузить компьютер.

Запустите PowerShell с правами администратора и выполните следующую команду.

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Скачивание дистрибутива Linux

Выполните эти инструкции, чтобы скачать избранный дистрибутив Linux.

Извлечение и установка дистрибутива Linux

После загрузки дистрибутива Linux для извлечения его содержимого и установки вручную выполните следующие действия.

  1. Извлеките содержимое пакета <distro>.appx, с помощью PowerShell:

    Rename-Item .\Ubuntu.appx .\Ubuntu.zip
    Expand-Archive .\Ubuntu.zip .\Ubuntu
    
  2. Запустите средство запуска приложения дистрибутива в целевой папке. Средство запуска обычно называется <distro>.exe (например, ubuntu.exe).

Внимание!

Сбой установки с ошибкой 0x8007007e. При возникновении этой ошибки система не поддерживает WSL. Убедитесь, что вы используете сборку Windows 16215 или более позднюю версию. Проверьте используемую сборку. Также убедитесь, что WSL включен и ваш компьютер перезагружен после включения этой функции.

3. Добавьте путь дистрибутива в путь среды Windows (в этом примере: C:\Users\Administrator\Ubuntu), с помощью PowerShell:

$userenv = [System.Environment]::GetEnvironmentVariable("Path&quot;, &quot;User")
[System.Environment]::SetEnvironmentVariable("PATH", $userenv + ";C:\Users\Administrator\Ubuntu", "User")

Теперь вы можете запустить дистрибутив из любого пути, введя <distro>.exe. Например: ubuntu.exe.

После установки необходимо инициализировать новый экземпляр дистрибутива, прежде чем его можно будет использовать.



Теперь вы можете установить Windows Subsystem for Linux (WSL) с помощью одной команды » MSReview

В последних сборках Windows Insider Preview вы можете установить все необходимое для запуска WSL, просто запустив wsl.exe —install.

Компания Microsoft объявила, что эта функциональность теперь официально перенесена в Windows 10 версии 2004 и выше.

Использование wsl –install

Microsoft заявляет, что процесс настройки WSL ранее был слишком сложным и предполагал включение нескольких параметров и установку нескольких пакетов. Компания упростила процесс до одной команды. Пользователи Windows 10 теперь могут просто открыть окно командной строки с правами администратора и запустить wsl.exe —install. После того, как вы нажмете клавишу Enter, процесс автоматически включит необходимые дополнительные функции WSL, установит дистрибутив Ubuntu по умолчанию и установит последнюю версию ядра WSL Linux на ваш компьютер. Когда это будет завершено, и вы перезагрузите компьютер, ваш дистрибутив запустится после повторной загрузки, завершив установку.

Кроме того, вы можете найти список доступных для установки дистрибутивов Linux, введя команду wsl —list —online в PowerShell или командной строке Windows. Чтобы установить дистрибутив, отличный от стандартного для Ubuntu или в дополнение к нему, используйте эту команду: wsl —install -d .

Замените именем дистрибутива Linux, найденным в команде list. Эту команду установки можно использовать для первой установки или для добавления дополнительных дистрибутивов после того, как у вас уже установлена WSL с дистрибутивом Ubuntu по умолчанию.

Дополнительные команды

Microsoft также включила некоторые дополнительные команды, которые помогут вам управлять своими экземплярами WSL с помощью этого backport’а.

Вы можете использовать wsl —update, чтобы вручную обновить ядро WSL Linux, и вы можете использовать wsl —update rollback для отката к предыдущей версии ядра WSL Linux.

Наконец, вы можете использовать wsl —status для просмотра общей информации о вашей конфигурации WSL, такой как тип дистрибутива по умолчанию, дистрибутив по умолчанию и версия ядра.

Обновите версию Windows 10 для поддержки этих команд

Вы можете получить этот backport, просто обновив Windows, как обычно. Чтобы сделать это вручную, откройте приложение Настройки, перейдите в раздел «Обновления и безопасность» и нажмите «Проверить наличие обновлений».

Это обновление является частью обновления KB5004296. На момент написания этой новости обновление KB5004296 доступно в Центре обновления Windows в качестве необязательного обновления ОС.

Установка ArchLinux в Windows Subsystem for Linux — Блог

Windows Subsystem for Linux (WSL) — слой совместимости для запуска Linux-приложений (двоичных исполняемых файлов в формате ELF) в ОС Windows 10.

В последнем обновлении Windows — Fall Creators Update — обновилась подсистема WSL и подход к получению и установке дистрибутивов операционных систем. Теперь они досупны для скачивания из магазина приложений Windows. На данный момент в магазине доступны такие популярные дистрибутивы как Ubuntu, OpenSUSE, SLES. В скором будущем там наверняка появятся многие популярные дистрибутивы.

Пока этого не произошло, рассморим «ручную» установку дистрибутива в WSL на примере ArchLinux.

Если WSL использовался до Fall Creaters Update, сперва удаляем существующую версию дистрибутива:

lxrun /uninstall /full /y

Устанавливаем Ubuntu из магазина приложений Windows Store.

Запускаем скачанное приложение из Пуск.

Задаём пользователя root как пользователя по-умолчанию:

ubuntu config --default-user root

Скачиваем последнюю bootstrap версию ArchLinux и распаковываем в домашнем каталоге:

wget https://mirror.yandex.ru/archlinux/iso/latest/archlinux-bootstrap-2017.12.01-x86_64.tar.gz
tar -zxvf archlinux-bootstrap-2017.12.01-x86_64.tar.gz

Раскомментируем зеркало репозитория в ~/root.x86_64/etc/pacman.d/mirrorlist, например:

Server = https://mirror.yandex.ru/archlinux/$repo/os/$arch

Добавим следующую строчку в resolv.conf, чтобы WSL автоматически приписывала туда текущие DNS-сервера:

echo "# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line." > ~/root.x86_64/etc/resolv.conf

Далее закрываем все открытые окна с bash и заходим в директорию с корневой файловой системой дистрибутива: в каталоге %localappdata%\Packages находим директорию, имя которой начинается с CanonicalGroupLimited.UbuntuonWindows_.

И удаляем из %localappdata%\Packages\CanonicalGroupLimited.UbuntuonWindows_*\LocalState\rootfs следующие каталоги с установленной Ubuntu: bin, etc, lib, lib64, sbin, usr и var.

Перемещаем в rootfs\ (не копируем) на место удалённых те же каталоги из rootfs\root\root.x86_64\.

Для обхода ряда багов, нужно где-то скомпилировать и установить пакеты fakeroot-tcp и glibc-wsl из AUR. Для значительного уменьшения времени компиляции glibc-wsl, нужно запускать makepkg с флагом --nocheck.

Уже скомпилированные пакеты можно скачать отсюда: fakeroot-tcp-1.21-2-x86_64.pkg.tar.xz, glibc-wsl-2.26-4-x86_64.pkg.tar.xz

Запускаем приложение Ubuntu и выполняем установку ArchLinix:

pacman-key --init
pacman-key --populate archlinux
pacman -U /mnt/c/Users/username/Downloads/glibc-wsl-2.26-4-x86_64.pkg.tar.xz
pacman -U /mnt/c/Users/username/Downloads/fakeroot-tcp-1.21-2-x86_64.pkg.tar.xz
pacman -Syyu base base-devel

N.B. Во время выбора устанавливаемых пакетов, нужно исключить из установки пакеты glibc и fakeroot. Это проще сделать, указав интервалы устанавливаемых пакетов. Например, если glibc имеет номер 15: 1-14 16-50.

Всё, система инсталлирована, осталось только добавить пользователя и задать пароль:

useradd -m -G wheel -s /bin/bash username
passwd root
passwd username

Windows Subsystem for Linux 2

Windows Subsystem for Linux 2 (WSL 2) — это вторая версия подсистемы Windows для Linux. Новая архитектура WSL 2 обеспечивает иной способ взаимодействия дистрибутивов Linux с Windows. WSL 2 использует технологию виртуализации и ядро Linux для реализации новых возможностей.

Подсистема WSL 2 доступна только в Windows 10 версии 2004, сборки 19041 или выше.

Основные приоритеты WSL 2:

  • Увеличение производительности файловой системы.
  • Добавление полной совместимости системных вызовов.

Простыми словами Windows Subsystem for Linux 2 работает значительно быстрее чем предыдущая версия подсистемы Linux.

Каждый дистрибутив Linux может переключаться между WSL 1 или WSL 2 в любое время.

Примечание автора: это не совсем так. Если вы использовали совсем старый дистрибутив WSL 1 из времён бета-тестирования, то он может не поддерживать WSL 2. Придётся снести старый дистрибутив и установить новый. После этой процедуры новый дистрибутив Linux сможет работать как WSL 1 так и WSL 2.

Несмотря на то, что WSL 2 гораздо производительнее, есть два случая, когда рекомендуется использовать WSL 1:

  • Файлы проекта должны храниться в файловой системе Windows.
    Если вы будете использовать дистрибутив Linux WSL для доступа к файлам проекта в файловой системе Windows, и эти файлы не могут храниться в файловой системе Linux, вы получите более высокую производительность в файловых системах ОС, используя WSL 1.
  • Проект, для которого требуется перекрестная компиляция с использованием средств Windows и Linux на одних и тех же файлах.
    Операции с файлами в операционных системах Windows и Linux выполняются быстрее в WSL 1, чем на WSL 2. Поэтому если вы используете приложения Windows для доступа к файлам Linux, в настоящее время вы получите более высокую производительность при использовании WSL 1.

Ссылки

https://docs.microsoft.com/ru-ru/windows/wsl/compare-versions

https://docs.microsoft.com/ru-ru/windows/wsl/install-win10

Сравнение WSL 1 и WSL 2

ФункцияWSL 1WSL 2
Интеграция Windows и Linux
Быстрый запуск
Незначительный расход ресурсов
Запуск с использованием текущих версий VMWare и VirtualBox
Управляемая виртуальная машина
Полнофункциональное ядро Linux
Полная совместимость системных вызовов
Производительность в файловых системах ОС

WSL 2 будет работать с VMWare 15.5.5+ и VirtualBox 6+.

Подготовка к установке WSL 2

Подсистема WSL 2 доступна только в Windows 10 версии 2004, сборки 19041 или выше. Проверяю версию:

winver

Вижу, что у меня старая версия Windows. Обновляюсь.

После обновления снова проверяю версию:

winver

Теперь требования для установки WSL 2 соблюдены.

Установка WSL 1 и WSL 2

Перед тем как устанавливать дистрибутивы Linux необходимо включить компонент «Подсистема Windows для Linux».

В PowerShell

В PowerShell с правами администратора:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
​В GUI

Панель управления > Программы и компоненты > Включение или отключение компонентов Windows.

Находим в списке «Подсистема Windows для Linux», устанавливаем.

Чтобы установить только WSL 1, необходимо перезагрузить компьютер и можно устанавливать дистрибутивы Linux. Для установки WSL 2 читаем дальше.

Включаем компонент «Подсистема Windows для Linux».

В PowerShell

В PowerShell с правами администратора:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
​В GUI

Панель управления > Программы и компоненты > Включение или отключение компонентов Windows.

Находим в списке «Платформа виртуальной машины», устанавливаем.

Перезагружаем компьютер.

Задаём WSL 2 в качестве версии по умолчанию. В PowerShell с правами администратора:

wsl --set-default-version 2

Вы можете увидеть ошибку «WSL 2 требуется обновление компонента ядра»:

Переходим по ссылке https://aka.ms/wsl2kernel и скачиваем MSI файл с последней версией пакета обновления ядра Linux в WSL 2. Для простоты скину ссылки ниже.

Для ля 64-разрядных компьютеров:

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

Для ARM64:

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_arm64.msi

Качаю пакет.

Устанавливаю пакет wsl_update_x64.msi.

Запустить.

Next. Начинается установка.

Практически моментально установка завершается. Finish.

После установки ядра выполняем команду еще раз. Она должна успешно завершиться без отображения сообщения. В PowerShell с правами администратора:

wsl --set-default-version 2

Теперь по умолчанию будет использоваться ядро WSL 2.

Если у вас уже имеются дистрибутивы Linux, то вы можете попытаться обновить им ядро WSL до 2 версии. Посмотрим список установленных дистрибутивов в PowerShell с правами администратора:

wsl -l -v

У меня установлен Linux с названием Legacy, который работает на 1 версии WSL. Попытаюсь изменить для Legacy ядро WSL на 2 версию в PowerShell с правами администратора:

wsl --set-version Legacy 2

Если ваш дистрибутив Linux поддерживает вторую версию WSL, то операция пройдёт успешно, если не поддерживает, то вы увидите ошибку «Унаследованное распределение не поддерживает WSL 2». Как у меня:

В таком случае нужно снести старый дистрибутив и установить новый. Удаляю Legacy в PowerShell с правами администратора:

wsl --unregister Legacy

Проверим:

wsl -l -v

Дистрибутивов нет, можно что-нибудь установить.

Установка дистрибутива Linux в Windows

Я пробовал перейти по ссылке https://aka.ms/wslstore, однако, она оказалась нерабочей. Поэтому я просто поискал «wsl» в Microsoft Store.

Установлю Ubuntu.

Доступны дистрибутивы:

Проверим:

wsl -l -v

Теперь у меня Ubuntu на ядре WSL 2.

Запускаю bash:

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

Windows subsystem for linux (WSL)

Windows subsystem for linux является эффективным инструментом для пользователей. Изучив статью вы будите иметь полное представление о данном инструменте.

О Windows subsystem for linux (WSL)

WSL разработан для запуска внутри консоли в системе Windows. В результате, с этой консоли запускаются многие популярные команды и программы для Linux. Кроме того, есть возможность взаимодействовать (хотя и в некоторой степени) с файлами Windows. Для первого выпуска WSL Microsoft написала совместимый с Linux интерфейс ядра, который не содержал кода ядра Linux.

WSL 1 выпущен с Windows 10 Anniversary Update в августе 2016 года, который поддерживал только запуск образа Ubuntu Linux. Затем, в октябре 2017 года с обновлением Fall Creators, Microsoft перенесла процесс установки дистрибутивов Linux в Магазин Windows. В дополнение, появилась опция разрешения образы SUSE. Теперь в Магазине Windows представлены 11 различных версий Linux, которые используются.

Хотя многие пользователи сочли первую версию чрезвычайно полезным инструментом, у него были свои ограничения.

Во-первых, инженерам ядра Microsoft было трудно увеличить производительность. Во-вторых, существовали проблемы совместимости системных вызовов с Linux .

И вот, наконец появилась вторая версия, в которой решаются эти проблемы и ограничения.

Windows subsystem for linux 2 (WSL 2)

WSL 2 работает на машинах Linux с новой облегченной технологией виртуальной машины Hyper-V от Microsoft.

Поскольку инструмент будет работать с реальными ядрами Linux, он должен иметь полную совместимость с системными вызовами и огромный рост производительности по сравнению с V1. Достаточно интересно, что это будет первый случай, когда ядро ​​Linux поставляется с Windows. Потому-что, Microsoft строит свое собственное Linux ядро (на основе ядра Linux 4.19), которое будет поставляться с первоначальным выпуском 2. Хотя это ядро ​​было оптимизировано для работы с инструментом, другие дистрибутивы Linux также будут использовать преимущества инструмента. Например, в тот же день, когда Microsoft анонсировала WSL 2, Canonical объявила, что утилита будет иметь полную поддержку Ubuntu.

Microsoft сделала несколько смелых заявлений о WSL 2:

Во-первых, она сможет запускать контейнеры Docker без необходимости использовать отдельную виртуальную машину. Во-вторых, в некоторых тестах скорость увеличилась в 20 раз по сравнению с первой версией. В-третьих, инструмент будет в два-пять раз быстрее, чем его предшественник, и это занимает 2 секунды для загрузки.

Основные изменения в пользовательском интерфейсе, которые вы заметите, когда впервые начнете использовать WSL 2.

Во-первых, доступ к файловой системе. Храните файлы внутри файловой системы Linux. Для быстрого доступа файлы должны находиться внутри корневой системы Linux

Во-вторых, глобальная конфигурация. Начиная с v. Insider Build 17093 настраивайте дистрибутивы с помощью wsl.conf.

В-третьих, кастомные ядра. Возможно, вы захотите иметь конкретное ядро ​​для дистрибутивов WSL 2. Например, использовать определенный модуль ядра.

И наконец, поддерживается на устройствах ARM64.

Вывод

Выпущенная новая версия Windows subsystem for linux 2 обеспечивает высокую производительность файловой системы, наряду с другими новыми и улучшенными функциями. По моим ощущениям Windows+WSL намного функциональнее, чем Linux+Wine.

Подробнее о Wine узнайте в этой статье.

6 Операционные системы и графические интерфейсы рабочего стола для подсистемы Windows для Linux

Если вас интересует установка Linux на компьютер с Windows, вы, вероятно, слышали о подсистеме Windows для Linux (WSL). Но на каких версиях Linux он работает? Здесь мы рассмотрим операционные системы на основе Linux, которые вы можете запускать в Windows 10 с помощью WSL, а также рассмотрим, как выбрать среду рабочего стола Linux.

Что такое подсистема Windows для Linux?

Подсистема Windows для Linux — это функция Windows 10 — это уровень совместимости, который позволяет запускать программное обеспечение Linux в среде Windows.WSL, доступный для Windows 10 Домашняя и более поздних версий, можно добавить в вашу систему вручную или присоединившись к программе Windows Insider для предварительного просмотра нового программного обеспечения.

Установка WSL дает вам терминал Linux для Windows

Если вы установите WSL, вы получите доступ к терминалу Linux в Windows 10. Это дает значительные преимущества, от запуска программного обеспечения Linux до простой обучающей среды для знакомства с Linux.

Подробнее: как запустить терминал с подсистемой Windows для Linux

Конечно, это не единственный способ получить терминал Linux в Windows.Если у вас работает удаленный Linux-сервер (возможно, Raspberry Pi), вы можете использовать PuTTY, Windows PowerShell или любой другой подходящий инструмент SSH для удаленного доступа.

Однако подсистема Windows для Linux — лучший способ установить Linux в Windows, если у вас нет подходящего дополнительного компьютера.

Связанный: Как использовать SSH в Windows 10

6 операционных систем Linux, которые можно установить с помощью WSL в Windows 10

Установив WSL на вашем компьютере, вы готовы выбрать операционную систему Linux для установки на нем.Они доступны в Магазине Windows и требуют WSL в качестве предварительного условия, поэтому перед установкой ОС Linux убедитесь, что вы полностью установили его. На WSL можно установить следующие шесть операционных систем Linux.

1. Установите Ubuntu в Windows 10 с WSL

Возможно, самая известная операционная система Linux, установить Ubuntu в Windows 10 просто с помощью WSL.

Доступно несколько версий, в каждой из которых предустановлены различные утилиты.Если нужные инструменты недоступны, вероятно, их можно установить. Ваш выбор операционных систем Ubuntu для WSL:

Скачать : Ubuntu 18.04 LTS

Скачать : Ubuntu 20.04 LTS

Скачать : Ubuntu (непрерывно)

Текущая версия регулярно обновляется, но не имеет преимуществ долгосрочной поддержки (LTS), которые предлагают более старые версии.

2. SUSE Linux Enterprise Server 15

Эта серверная версия SUSE, также известная как SLE, подходит для различных серверных целей на вашем ПК с Windows. В нем есть несколько серверных приложений, включая PostgreSQL, Samba и другие. SUSE Linux Enterprise Server 15 идеален как среда тестирования и как полноценный сервер SLE при работе в подсистеме Windows для Linux.

Версия SUSE Linux Enterprise Server 15 для WSL — SP1.

Скачать : SUSE Linux Enterprise Server 15

3. Debian

Этот загружаемый файл — еще один из самых популярных доступных дистрибутивов Linux — добавляет Debian в качестве приложения на ваш компьютер с Windows 10, на котором запущен WSL. Он предоставляет полную среду командной строки Debian, предоставляя вам доступ ко всем знакомым инструментам Debian. Требуется дополнительное программное обеспечение? Просто установите его!

Скачать : Debian

4.Кали Linux

Дистрибутив Linux, предназначенный для тестирования на проникновение, Kali Linux для WSL позволяет анализировать системы, коммутаторы и другое сетевое оборудование без необходимости устанавливать Kali Linux в отдельной системе. Это явно огромное преимущество для любого, чья повседневная работа связана с тестированием сетевого оборудования на проникновение.

Скачать : Kali Linux

Обратите внимание, что запуск Kali Linux с WSL может вызывать предупреждения антивируса в Windows 10.Для достижения наилучших результатов убедитесь, что доступ к программному обеспечению полностью разрешен через ваше программное обеспечение безопасности.

Преимущество использования Kali Linux заключается в том, что теперь он поставляется со встроенной средой рабочего стола. Win-KEX работает так же, как и другие среды рабочих столов в WSL (см. Ниже), но избавляет вас от установки дополнительного программного обеспечения.

5. openSUSE Leap 15.2

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

Скачать : openSUSE Leap 15.2

6. Ремикс Fedora для WSL

Если ваше предпочтение Linux в Windows 10 больше соответствует семейству Fedora, вам повезло. Fedora Remix для WSL — это специальный выпуск операционной системы с открытым исходным кодом.

Однако обратите внимание, что он выпущен как ремикс исходного дистрибутива Fedora Linux для WSL. Таким образом, это сторонний выпуск, который не одобрен Fedora Project или Red Hat, Inc.

Скачать : Fedora (9,99 $)

В отличие от других перечисленных здесь операционных систем, Fedora Remix для WSL — это продукт премиум-класса, доступный за небольшую разовую плату.

Можно ли установить рабочий стол Linux в WSL?

Установив операционную систему Linux в WSL, вы получите полный доступ к терминальной среде Linux.

Однако по умолчанию рабочий стол отсутствует. Чтобы решить эту проблему, необходимо установить среду рабочего стола и использовать сервер Windows X для доступа к ней через VNC. Хотя на пути интеграции Linux в Windows есть своего рода препятствие, это несложный процесс.

Подробнее: Как запустить рабочий стол Linux с помощью подсистемы Windows для Linux

Большинство настольных сред Linux могут работать с установками Linux на основе WSL.В приведенном выше примере показано, что LXDE работает на Ubuntu в Windows 10 благодаря WSL.

После настройки вы сможете наслаждаться любимой средой рабочего стола Linux в окне на рабочем столе Windows 10.

Установите ваш любимый дистрибутив Linux в Windows 10 с помощью WSL

В Microsoft Store есть шесть операционных систем Linux, из которых можно выбирать. Благодаря WSL у вас есть выбор между настольными операционными системами, серверами Linux и ОС для тестирования на проникновение.

Хотя все операционные системы устанавливаются без среды рабочего стола, вы, тем не менее, можете добавить ее. Затем к нему можно получить доступ через VNC, создавая иллюзию физического рабочего стола Linux, работающего в WSL.

Не довольны возможностями WSL? Возможно, пришло время подумать об установке Linux на виртуальную машину.

Лучшие сервисы потокового телевидения (бесплатные и платные)

Вот лучшие бесплатные приложения для потокового ТВ и лучшие платные приложения для потокового ТВ для всех ваших потребностей в развлечениях.

Читать далее

Об авторе

Кристиан Коули
(Опубликовано 1514 статей)

Заместитель редактора по безопасности, Linux, DIY, программированию и техническому объяснению, а также производитель действительно полезных подкастов с большим опытом поддержки настольных компьютеров и программного обеспечения.Автор журнала Linux Format, Кристиан — мастер Raspberry Pi, любитель Lego и фанат ретро-игр.

Более
От Кристиана Коули

Подпишитесь на нашу рассылку новостей

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться

microsoft / wslg: Включение подсистемы Windows для Linux для включения поддержки сценариев, связанных с Wayland и X-сервером

WSLg — это сокращение от Windows Subsystem for Linux GUI , и цель проекта — обеспечить поддержку запуска приложений Linux GUI (X11 и Wayland) в Windows в полностью интегрированном рабочем столе.

WSLg предоставляет интегрированный опыт для разработчиков, ученых или энтузиастов, которые предпочитают или нуждаются в запуске Windows на своем ПК, но также нуждаются в возможности запускать инструменты или приложения, которые работают лучше всего или исключительно в среде Linux. В то время как пользователи могут сделать это сегодня, используя настройку нескольких систем, с отдельным ПК, выделенным для Windows и Linux, виртуальной машиной, на которой размещается Windows или Linux, или XServer, работающим в Windows и проецируемым на WSL, WSLg обеспечивает более интегрированный, удобный и продуктивный альтернатива.

WSLg стремится сделать приложения Linux GUI естественными и естественными для использования в Windows. От интеграции в меню «Пуск» для запуска до появления на панели задач, использования альтернативных вкладок и возможности вырезания / вставки в приложениях Windows и Linux, WSLg обеспечивает беспрепятственный интерфейс рабочего стола и рабочий процесс с использованием приложений Windows и Linux.

Предварительные требования

  • Сборка Windows 10 Insider Preview 21362+

    • WSLg будет общедоступным вместе с предстоящим выпуском Windows.Чтобы получить доступ к предварительной версии WSLg, вам необходимо присоединиться к программе предварительной оценки Windows и запустить сборку предварительной оценки Windows 10 из каналов бета или разработчиков.
  • Рекомендуется запускать WSLg в системе с виртуальным графическим процессором (vGPU), включенным для WSL, чтобы вы могли воспользоваться преимуществами аппаратного ускорения рендеринга OpenGL. Вы можете найти предварительный драйвер, поддерживающий WSL, у каждого из наших партнеров ниже.

Инструкции по установке (новая установка — без предварительной установки WSL)

В командной строке с правами администратора выполните команду wsl --install -d Ubuntu , затем перезагрузитесь, когда будет предложено.

После перезагрузки установка продолжится. Вам будет предложено ввести имя пользователя и пароль. Это будут ваши учетные данные Linux, они могут быть чем угодно и не должны совпадать с вашими учетными данными Windows.

Вуаля! WSL и WSLg установлены и готовы к использованию!

Инструкции по установке (установка существующего WSL)

Если у вас есть существующая установка WSL без WSLg и вы хотите выполнить обновление до последней версии WSL, которая включает WSLg, запустите команду wsl --update из командной строки с повышенными привилегиями.

Обратите внимание, что WSLg совместим только с WSL 2 и не будет работать для распространения WSL, настроенного для работы в режиме WSL 1. Убедитесь, что ваш дистрибутив Linux настроен для работы в режиме WSL 2, если нет, переключитесь на WSL 2. Хотя вы можете продолжать запускать дистрибутив Linux в режиме WSL 1 после установки WSLg, если хотите, дистрибутив настроен для работы в режиме WSL 1. не сможет взаимодействовать с WSLg и не сможет запускать приложения с графическим интерфейсом.

Вы можете указать свой текущий установленный дистрибутив и версию WSL, для которой они настроены, используя следующую команду из командной строки с повышенными привилегиями.

Если вы работаете в режиме версии 1, переключитесь на версию 2. Это может занять некоторое время.

 wsl --set-версия _distro_name_ 2 

Перезапустите WSL, запустив эту команду из командной строки с повышенными привилегиями, сначала обязательно сохраните все незавершенные работы:

Обновление WSL + WSLg

Для обновления до последней версии WSL и WSLg, выпущенной для предварительного просмотра, просто запустите wsl --update из командной строки с повышенными привилегиями или из PowerShell.

Чтобы изменения вступили в силу, необходимо перезапустить WSL.Вы можете перезапустить WSL, запустив wsl --shutdown из командной строки с повышенными привилегиями. Если WSL в данный момент запущен, он отключится, не забудьте сначала сохранить все незавершенные работы! WSL будет автоматически перезапущен при следующем запуске приложения или терминала WSL.

Первый запуск

Если вы установили дистрибутив Linux Ubuntu в соответствии с этими инструкциями, вы найдете значок Ubuntu в меню «Пуск», запустите его. Это запустит виртуальную машину WSL 2, запустит дистрибутив Ubuntu WSL на этой виртуальной машине и предоставит вам терминал для взаимодействия с ним.Вуаля! Вы используете Linux в Windows!

Если вы хотите изучить дополнительные дистрибутивы Linux, созданные для WSL, вы можете использовать команду wsl --list --online из командной строки с повышенными привилегиями, чтобы перечислить список доступных дистрибутивов для вашей системы. У вас может быть несколько дистрибутивов Linux, установленных в WSL, и они будут счастливо сосуществовать бок о бок, поэтому не бойтесь экспериментировать и пробовать разные вещи.

Поздравляю, вы сделали и готовы к использованию приложений с графическим интерфейсом!

Установка и запуск приложений с графическим интерфейсом

Если вы хотите начать работу с некоторыми приложениями с графическим интерфейсом, вы можете запустить следующие команды со своего терминала Linux, чтобы загрузить и установить некоторые популярные приложения.Если вы используете другой дистрибутив, чем Ubuntu, возможно, он использует другой менеджер пакетов.

 ## Обновить список доступных пакетов
sudo apt update

## Gedit
sudo apt install gedit -y

## GIMP
sudo apt install gimp -y

## Наутилус
sudo apt install nautilus -y

## VLC
sudo apt install vlc -y

## Приложения X11
sudo apt install x11-apps -y

## Гугл Хром
cd / tmp
sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.деб
sudo apt install --fix-broken -y
sudo dpkg -i google-chrome-stable_current_amd64.deb

## Microsoft Teams
cd / tmp
sudo curl -L -o "./teams.deb" "https://teams.microsoft.com/downloads/desktopurl?env=production&plat=linux&arch=x64&download=true&linuxArchiveType=deb"
sudo apt install ./teams.deb -y

## Браузер Microsoft Edge
sudo curl https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-dev/microsoft-edge-dev_93.0.946.1-1_amd64.deb -o /tmp/edge.deb
sudo apt install / tmp / edge.деб-у 

После установки этих приложений вы найдете их в меню «Пуск» под названием дистрибутива. Например Ubuntu -> Microsoft Edge . Вы также можете запустить их из окна терминала с помощью команд:

  • xcalc , xclock , xeyes
  • каркас
  • gedit ~ / .bashrc
  • наутилус
  • vlc
  • Google-Chrome
  • команды
  • край microsoft

Пользовательский дистрибутив

Пользовательский дистрибутив — это, по сути, дистрибутив WSL, который вы используете для своей работы с Linux.Вы можете использовать команду wsl --list --online из командной строки Windows с повышенными привилегиями, чтобы вывести список распределений WSL, доступных в вашей системе. Вы можете запускать несколько пользовательских дистрибутивов бок о бок, и они будут мирно сосуществовать, поэтому не бойтесь пробовать новый дистрибутив. Каждый пользовательский дистрибутив будет связан с уникальным экземпляром системного дистрибутива, но вы по-прежнему можете беспрепятственно взаимодействовать с приложениями с графическим интерфейсом, работающими в разных пользовательских дистрибутивах, например вырезать / вставлять между ними. Базовая контейнеризация различных пользовательских пространств должна быть для вас невидимой.

Все пользовательские и системные дистрибутивы для конкретного пользователя Windows запускаются на одной виртуальной машине WSL с одним экземпляром ядра Linux. У разных пользователей Windows на ПК есть собственная виртуальная машина и экземпляр WSL. Гарантируется, что ваша среда Linux всегда будет вашей собственной и не будет использоваться другими пользователями Windows на том же компьютере.

Системный дистрибутив WSLg

В системном дистрибутиве происходит вся магия. Системный дистрибутив представляет собой контейнерную среду Linux, в которой работают WSLg XServer, сервер Wayland и сервер Pulse Audio.Коммуникационный сокет для каждого из этих серверов проецируется в пользовательский дистрибутив, чтобы клиентские приложения могли подключаться к ним. Мы предварительно настраиваем переменные среды пользовательского дистрибутива DISPLAY, WAYLAND_DISPLAY и PULSE_SERVER для ссылки на эти серверы по умолчанию, поэтому WSLg загорается из коробки.

Пользователи, желающие использовать серверы, отличные от сервера, предоставленного WSLg, могут изменить эти переменные среды. Пользователь также может полностью отключить системный дистрибутив, добавив следующую запись в свой .wslconfig (находится по адресу c: \ users \ MyUser \ .wslconfig ). Это отключит поддержку приложений с графическим интерфейсом в WSL.

  [wsl2]
guiApplications = false
  

Системный дистрибутив основан на Microsoft CBL-Mariner Linux. Это минимальная среда Linux, достаточная для запуска различных частей WSLg. Подробнее о том, как собрать и развернуть частный системный дистрибутив, см. В наших инструкциях по сборке.

Каждый пользовательский дистрибутив WSL 2 связан со своим собственным экземпляром системного дистрибутива.Системный дистрибутив работает частично изолированно от пользовательского дистрибутива, с которым он связан, в своем собственном пространстве имен NS / PID / UTS, но использует другие пространства имен, такие как IPC, чтобы обеспечить оптимизацию общей памяти через границу.

Хотя пользователь может добавить терминал в системный дистрибутив, системный дистрибутив не предназначен для непосредственного использования пользователями. Каждый экземпляр системного дистрибутива загружается с резервного VHD только для чтения. Любые изменения, внесенные в экземпляр системного дистрибутива в памяти (например, установка новых пакетов или создание нового файла), эффективно отменяются при перезапуске WSL.Причина, по которой мы делаем это, заключается в том, чтобы включить модель обслуживания для системного дистрибутива, в которой мы заменяем старую на новую, не беспокоясь о переносе любых содержащихся в ней пользовательских данных. Мы используем отображение только для чтения, так что пользователь получает хорошо известное поведение отмены любых изменений при каждом перезапуске WSL вместо того, чтобы получать сюрприз, когда WSL обслуживается.

Хотя Microsoft опубликовала системный дистрибутив WSLg как доступный только для чтения, мы хотим побудить людей повозиться с ним и поэкспериментировать.Хотя мы ожидаем, что очень немногие люди действительно будут нуждаться в этом или захотят это сделать, мы поделились подробной инструкцией на нашей странице, на которой мы участвовали, о том, как создать и развернуть частную версию системного дистрибутива. Большинству пользователей, которые просто хотят использовать приложения с графическим интерфейсом в WSL, не нужно беспокоиться об этих деталях.

WSLGd

WSLGd — это первый процесс, запускаемый после init . WSLGd запускает Weston (с XWayland), PulseAudio и устанавливает соединение RDP, запустив mstsc.exe на хосте в беззвучном режиме. Соединение RDP будет оставаться активным и готовым к немедленному запуску новых приложений с графическим интерфейсом пользователя, без каких-либо задержек при установлении соединения. WSLGd затем отслеживает эти процессы и, если они завершаются по ошибке (например, в результате сбоя), автоматически перезапускает их.

Вестон

Weston — это эталонный композитор проекта Wayland и сердце WSLg. Для WSLg мы расширили существующий серверный модуль RDP libweston, чтобы научить его удаленным приложениям, а не мониторингу / рабочему столу.Мы также добавили к нему различные функции, такие как поддержка нескольких мониторов, вырезание / вставка, ввод / вывод звука и т. Д.

Интеграция приложений достигается с помощью технологии RDP, называемой RAIL (удаленное приложение, интегрированное локально) и VAIL (виртуализированное приложение, интегрированное локально). Основное различие между RAIL и VAIL заключается в том, как пиксели передаются от сервера RDP к клиенту RDP. В RAIL предполагается, что сервер и клиент работают в разных физических системах, обменивающихся данными по сети, и поэтому пиксели необходимо копировать через транспортный протокол RDP.В VAIL подразумевается, что сервер и клиент находятся в одной физической системе и могут совместно использовать память через границу гостевой / хост-виртуальной машины. Мы добавили поддержку как RAIL, так и VAIL в серверную часть libweston RDP, хотя для WSLg эффективно используется только поддержка VAIL. При создании WSLg мы сначала внедрили RAIL, в то время как необходимые компоненты, позволяющие переключиться на VAIL, разрабатывались параллельно. Мы решили сохранить эту поддержку, поскольку ее можно было бы повторно использовать в других интересных сценариях за пределами WSLg, например, для удаленного взаимодействия с приложением Pi под управлением Linux.Чтобы разделить память между гостевой системой Linux и хостом Windows, мы используем virtio-fs.

RAIL-Shell

Weston имеет модульную структуру и на сегодняшний день имеет различные оболочки, такие как оболочка рабочего стола, полноэкранная оболочка (также известная как киоск) и автоматическая оболочка. Для WSLg мы представили новую оболочку под названием RAIL Shell. Цель RAIL Shell — помочь с удаленным взаимодействием отдельных окон из Linux в Windows, поэтому оболочка очень упрощена и не включает никаких реальных виджетов или пикселей, принадлежащих оболочке.

БесплатноRDP

Weston использует FreeRDP для реализации своего внутреннего сервера RDP. FreeRDP используется для кодирования всех сообщений, идущих от сервера RDP (в Weston) к клиенту RDP (mstsc в Windows) в соответствии со спецификациями протокола RDP. Он также используется для декодирования всего трафика, поступающего от клиента RDP на сервер RDP.

Плагин Pulse Audio

Для аудиовхода (микрофон) и выхода (динамики / наушники) WSLg запускает сервер PulseAudio. WSLg использует подключаемый модуль приемника для вывода звука и подключаемый модуль источника для ввода звука.Эти плагины эффективно передают образцы звука между PulseServer и Weston RDP Server. Аудиопотоки объединяются сервером RDP Weston в транспортный RDP, что позволяет эффективно вводить / выводить звук в бэкэнде Weston RDP во всех сценариях (удаленное взаимодействие в стиле Desktop / RAIL / VAIL), включая WSLg.

Плагин динамического виртуального канала WSL (WSLDVCPlugin)

WSLg использует настраиваемый виртуальный канал RDP между сервером Weston RDP и клиентом mstsc RDP, работающим на хосте Windows.Этот канал используется Weston для перечисления всех приложений с графическим интерфейсом пользователя Linux (т. Е. Приложений, которые имеют запись в файле рабочего стола типа gui) вместе с их командной строкой и значком запуска. WSLDVCPlugin с открытым исходным кодом обрабатывает список приложений Linux GUI, отправленных по этому каналу, и создает для них ссылки в меню «Пуск» Windows.

Хотя WSLg работает с поддержкой виртуального графического процессора или без нее, если вы собираетесь запускать приложения с интенсивной графикой, такие как Blender или Gazebo, лучше всего работать в системе с графическим процессором и драйвером, который может поддерживать WSL.Обзор нашей архитектуры vGPU и того, как мы позволяем приложениям Linux получать доступ к графическому процессору в WSL, доступен в нашем блоге DirectX.

Поддержка ускоренного рендеринга OpenGL стала возможной благодаря работе, проделанной нашей командой D3D с Collabora и сообществом Mesa по созданию драйвера d3d12 Gallium.

Поддержка Linux, в том числе поддержка WSLg, находится в восходящем направлении и является частью выпуска Mesa 21.0. Чтобы воспользоваться этим ускорением, вам необходимо обновить версию Mesa, установленную в вашем пользовательском дистрибутиве.Это также требует, чтобы поставщик вашего дистрибутива решил собрать и опубликовать новый драйвер d3d12 Gallium в своем репозитории пакетов. Мы работаем с различными издателями дистрибутивов WSL, чтобы проинформировать их об этих изменениях.

Обратите внимание, что в первом выпуске WSLg vGPU взаимодействует с композитором Weston через системную память. При работе на дискретном графическом процессоре это фактически означает, что визуализированные данные копируются из VRAM в системную память перед тем, как быть представлены композитору в WSLg и снова загружены на графический процессор на стороне Windows.В результате происходит снижение производительности, пропорциональное скорости представления. При очень высокой частоте кадров, например 600 кадров в секунду на дискретном графическом процессоре, эти накладные расходы могут достигать 50%. При более низкой частоте кадров или на встроенном графическом процессоре в зависимости от рабочей нагрузки может быть достигнута производительность, гораздо более близкая к собственной. Использование vGPU по-прежнему обеспечивает очень значительное улучшение производительности и удобства по сравнению с использованием программного средства визуализации, несмотря на это ограничение v1.

WSLg основан на большой работе сообщества Linux и использует большое количество проектов с открытым исходным кодом.Большинство компонентов используются как есть из их исходной версии и не требуют каких-либо изменений для отображения в WSLg. Некоторые компоненты, лежащие в основе WSLg, в частности Weston, FreeRDP и PulseAudio, потребовали изменений, чтобы обеспечить широкую интеграцию WSLg. Этих изменений еще нет. Microsoft работает с сообществом, чтобы поделиться этим вкладом с каждым проектом, чтобы со временем WSLg можно было построить непосредственно из вышестоящего компонента без необходимости каких-либо модификаций, специфичных для WSLg.

Все эти готовые вклады хранятся в зеркальных репозиториях Microsoft. Мы поддерживаем эти зеркала в актуальном состоянии с выпусками апстрима и вносим изменения в WSLg в эти репозитории. WSLg извлекает и создает код из этих зеркальных репозиториев в рамках наших предварительных выпусков Insider WSLg. Эти зеркала общедоступны и доступны каждому. Любопытные разработчики могут взглянуть на ранние этапы нашего вклада, взглянув на код в этих зеркалах, помня, что окончательная версия кода, вероятно, будет выглядеть иначе, как только вклад достигнет исходного проекта и будет адаптирован на основе отзывов, полученных от различные владельцы проектов.Все наши зеркала созданы по одной модели. Существует основная ветвь , которая соответствует восходящей ветви в нашей последней точке синхронизации. Время от времени мы обновляем основную ветку , чтобы выбрать обновление из вышестоящего проекта. Также существует рабочая ветка , которая содержит все наши изменения в полете. WSLg построен с использованием рабочей ветки из каждого из зеркальных проектов.

Проекты, для которых WSLg поддерживает зеркала, со временем будут меняться по мере увеличения вклада в полеты.После того, как некоторые дополнения будут размещены в восходящем направлении, может больше не понадобиться поддерживать зеркало, после чего оно будет удалено, и WSLg начнет напрямую использовать восходящую версию компонента. По мере того, как мы освещаем новые функции в WSLg, могут быть введены новые зеркала для добавления вкладов в новые компоненты. Таким образом, ожидайте, что список зеркал изменится со временем.

На данный момент у нас есть следующие зеркала проектов для текущих вкладов.

Ниже приводится общий обзор текущих вкладов в каждый проект, содержащийся в этих зеркалах.

Вестон

WSLg использует Weston в качестве композитора Wayland, соединяющего миры Linux и Windows с использованием технологии RDP для удаленного доступа к содержимому приложений между ними. У Weston уже был бэкэнд RDP, но он ограничивался удаленным взаимодействием между одним монитором и рабочим столом. Мы значительно улучшили этот серверный интерфейс RDP, включив в него расширенные функции, такие как поддержка нескольких мониторов, интеграция с буфером обмена для копирования / вставки и ввода / вывода звука. Мы включили новые режимы удаленного взаимодействия, называемые RAIL (удаленное приложение, интегрированное локально) и VAIL (виртуализированное приложение, интегрированное локально), в которых удаленно удаляются отдельные приложения, а не рабочие столы / мониторы.Эти изменения не относятся к WSLg; они добавляют функциональность к существующему бэкэнду RDP и могут быть повторно использованы в других сценариях (т. е. с использованием нового бэкэнда Weston RDP для удаленного приложения, запущенного на Raspberry Pi, на другое устройство, на котором запущен клиент RDP).

Чтобы обеспечить широкую интеграцию в WSLg, мы также добавили небольшой плагин к бэкэнду RDP, специфичному для WSLg. В Weston плагин отвечает за подключение к пользовательскому дистрибутиву и поиск установленных приложений (также называемых файлом рабочего стола).Плагин отправляет на хост Windows список всех найденных приложений вместе с их командами запуска и значками. На хосте Windows часть проекта WSLg с открытым исходным кодом подключаемого модуля mstsc использует эту информацию для создания ярлыков для этих приложений Linux в меню «Пуск» Windows.

Мы также исправили несколько ошибок, влияющих на различные приложения. Как правило, это были проблемы, которые влияли на Weston во всех режимах и не были специфичными для WSLg.

БесплатноRDP

Weston в настоящее время использует FreeRDP для своей серверной части RDP.WSLg продолжает использовать FreeRDP, и мы добавили поддержку нового протокола / канала RDP, чтобы включить оптимизированный сценарий VAIL, а также поддержку подключаемого модуля WSLg. Мы также исправили различные ошибки, которые влияли на взаимодействие с mstsc или вызывали нестабильность.

PulseAudio

Для PulseAudio наши вклады были сосредоточены на приемнике и плагине источника, которые перетасовывают аудиоданные между PulseAudio и серверной частью Weston RDP, чтобы аудиоданные можно было интегрировать через соединение RDP обратно в хост.В ядре PulseAudio нет никаких изменений, кроме добавления этих новых плагинов.

Если вы хотите поработать или внести свой вклад в WSLg, пожалуйста, посетите нашу страницу ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ, чтобы получить подробную информацию, в том числе о том, как создать и запустить частную версию WSLg.

Для проблем, не связанных с безопасностью, таких как сообщение об ошибке или предложение новой функции, используйте средство отслеживания проблем этого проекта.

Чтобы сообщить о проблемах безопасности с WSLg или любыми другими продуктами Microsoft, следуйте приведенным здесь инструкциям.

Этот проект может содержать товарные знаки или логотипы проектов, продуктов или услуг. Авторизованное использование товарных знаков или логотипов Microsoft регулируется Правилами использования товарных знаков и брендов Microsoft и должно следовать им. Использование товарных знаков или логотипов Microsoft в измененных версиях этого проекта не должно вызывать путаницу или подразумевать спонсорство Microsoft. Любое использование товарных знаков или логотипов третьих лиц регулируется политиками этих сторонних производителей.

Начало работы с C ++ и подсистемой Windows для Linux в Visual Studio Code

В этом руководстве вы настроите код Visual Studio для использования компилятора GCC C ++ (g ++) и отладчика GDB в Ubuntu в подсистеме Windows для Linux (WSL).GCC расшифровывается как GNU Compiler Collection; GDB — это отладчик GNU. WSL — это среда Linux в Windows, которая работает непосредственно на аппаратном обеспечении машины, а не на виртуальной машине.

Примечание : Большая часть этого руководства применима к работе с C ++ и VS Code непосредственно на компьютере Linux.

Visual Studio Code поддерживает работу непосредственно в WSL с расширением Remote — WSL. Мы рекомендуем этот режим разработки WSL, при котором все файлы исходного кода, помимо компилятора, размещаются в дистрибутиве Linux.Дополнительные сведения см. В разделе «Удаленная разработка VS Code».

После завершения этого руководства вы будете готовы создать и настроить свой собственный проект C ++, а также изучить документацию VS Code для получения дополнительной информации о его многочисленных функциях. В этом руководстве не рассказывается о GCC, Linux или языке C ++. По этим предметам в Интернете доступно множество хороших ресурсов.

Если у вас есть какие-либо проблемы, не стесняйтесь сообщать о проблеме для этого руководства в репозиторий документации VS Code.

Предварительные требования

Для успешного прохождения этого руководства необходимо выполнить следующие шаги:

  1. Установите код Visual Studio.

  2. Установите расширение Remote — WSL.

  3. Установите подсистему Windows для Linux, а затем используйте ссылки на этой же странице для установки выбранного вами дистрибутива Linux. В этом руководстве используется Ubuntu. Во время установки запомните свой пароль пользователя Linux, потому что он понадобится вам для установки дополнительного программного обеспечения.

Настройте среду Linux

  1. Откройте оболочку Bash для WSL. Если вы установили дистрибутив Ubuntu, введите «Ubuntu» в поле поиска Windows и затем щелкните его в списке результатов. Для Debian введите «Debian» и так далее.

    Оболочка появляется с командной строкой, которая по умолчанию состоит из вашего имени пользователя и имени компьютера, и помещает вас в ваш домашний каталог. Для Ubuntu это выглядит так:

  2. Создайте каталог под названием projects , а затем подкаталог под названием helloworld :

      мкдир проектов
    CD проекты
    mkdir helloworld  
  3. Хотя вы будете использовать VS Code для редактирования исходного кода, вы будете компилировать исходный код в Linux с помощью компилятора g ++.Вы также будете отлаживать в Linux с помощью GDB. Эти инструменты не устанавливаются по умолчанию в Ubuntu, поэтому вам необходимо установить их. К счастью, эта задача довольно проста!

  4. Из командной строки WSL сначала запустите apt-get update , чтобы обновить списки пакетов Ubuntu. Устаревший дистрибутив иногда может мешать попыткам установить новые пакеты.

      sudo apt-get update  

    Если хотите, вы можете запустить sudo apt-get update && sudo apt-get dist-upgrade , чтобы также загрузить последние версии системных пакетов, но это может занять значительно больше времени в зависимости от скорости вашего соединения.

  5. Из командной строки установите инструменты компилятора GNU и отладчик GDB, набрав:

      sudo apt-get install build-essential gdb  
  6. Убедитесь, что установка прошла успешно, найдя g ++ и gdb. Если имена файлов не возвращаются командой whereis , попробуйте запустить команду обновления еще раз.

      где g ++
    где gdb  

Примечание : Действия по установке компилятора g ++ и отладчика GDB применимы, если вы работаете непосредственно на машине Linux, а не в WSL.Выполнение кода VS в вашем проекте helloworld, а также этапы редактирования, сборки и отладки одинаковы.

Запуск кода VS в WSL

Перейдите в папку проекта helloworld и запустите VS Code из терминала WSL с кодом . :

  cd $ HOME / projects / helloworld
код.  

Вы увидите сообщение «Установка VS Code Server». VS Code загружает и устанавливает небольшой сервер на стороне Linux, с которым будет разговаривать настольный VS Code.VS Code запустится и откроет папку helloWorld . Проводник показывает, что VS Code теперь работает в контексте WSL со строкой заголовка [WSL: Ubuntu] .

Вы также можете определить удаленный контекст из строки состояния.

Если вы щелкните элемент строки удаленного состояния, вы увидите раскрывающийся список удаленных команд, соответствующих сеансу. Например, если вы хотите завершить сеанс, запущенный в WSL, вы можете выбрать команду Close Remote Connection из раскрывающегося списка.Выполняется код . из командной строки WSL перезапустит VS Code, работающий в WSL.

Код . Команда открыла VS Code в текущей рабочей папке, которая становится вашей «рабочей областью». По мере прохождения руководства вы увидите три файла, созданные в папке .vscode в рабочей области:

  • c_cpp_properties.json (путь компилятора и настройки IntelliSense)
  • tasks.json (инструкция по сборке)
  • запуск.json (настройки отладчика)

Добавить файл исходного кода

В строке заголовка проводника нажмите кнопку New File и назовите файл helloworld.cpp .

Установите расширение C / C ++

После того, как вы создадите файл и VS Code определит, что это файл языка C ++, вам может быть предложено установить расширение Microsoft C / C ++, если оно еще не установлено.

Выберите Установить , а затем Требуется перезагрузка , когда в представлении «Расширения» отображается кнопка для завершения установки расширения C / C ++.

Если у вас уже есть языковые расширения C / C ++, установленные локально в VS Code, вам нужно перейти в представление Extensions (⇧⌘X (Windows, Linux Ctrl + Shift + X)) и установить эти расширения в WSL. Локально установленные расширения можно установить в WSL, нажав кнопку Установить в WSL , а затем Требуется перезагрузка .

Добавить исходный код hello world

Теперь вставьте этот исходный код:

  #include 
#include <вектор>
#include <строка>

используя пространство имен std;

int main ()
{
   vector  msg {"Hello", "C ++", "World", "from", "VS Code", "и расширение C ++!"};

   для (константная строка и слово: сообщение)
   {
      cout << word << "";
   }
   cout << endl;
}  

Теперь нажмите ⌘S (Windows, Linux Ctrl + S), чтобы сохранить файл.Обратите внимание, как только что добавленный файл отображается в представлении проводника (⇧⌘E (Windows, Linux Ctrl + Shift + E)) на боковой панели VS Code:

Вы также можете включить автосохранение для автоматического сохранения изменений файла, установив отметку Автосохранение в главном меню Файл .

Панель активности в крайнем левом углу позволяет открывать различные представления, такие как Search , Source Control и Run . Вы увидите представление Run позже в этом руководстве.Вы можете узнать больше о других представлениях в документации по пользовательскому интерфейсу VS Code.

Изучите IntelliSense

В новом файле helloworld.cpp наведите указатель мыши на вектор или строку , чтобы увидеть информацию о типе. После объявления переменной msg начните вводить msg. , как при вызове функции-члена. Вы должны сразу увидеть список завершения, который показывает все функции-члены, и окно, которое показывает информацию о типе для объекта msg :

Вы можете нажать клавишу TAB, чтобы вставить выбранный элемент; затем, когда вы добавите открывающую скобку, вы увидите информацию обо всех аргументах, которые требуются функции.

Сборка helloworld.cpp

Затем вы создадите файл tasks.json , чтобы сообщить VS Code, как построить (скомпилировать) программу. Эта задача вызовет компилятор g ++ на WSL для создания исполняемого файла на основе исходного кода.

В главном меню выберите Терминал > Настроить задачу сборки по умолчанию . В раскрывающемся списке, в котором будет отображаться раскрывающийся список задач, в котором перечислены различные предопределенные задачи сборки для компиляторов C ++. Выберите g ++ build active file , который создаст файл, который в данный момент отображается (активен) в редакторе.

Это создаст файл tasks.json в папке .vscode и откроет его в редакторе.

Ваш новый файл tasks.json должен выглядеть примерно так, как показано ниже в формате JSON:

  {
  "версия": "2.0.0",
  "задания": [
    {
      "тип": "оболочка",
      "label": "g ++ построить активный файл",
      "команда": "/ usr / bin / g ++",
      "args": ["-g", "$ {file}", "-o", "$ {fileDirname} / $ {fileBasenameNoExtension}"],
      "параметры": {
        «cwd»: «/ usr / bin»
      },
      "проблемаМэтчер": ["$ gcc"],
      "группа": {
        "вид": "строить",
        "isDefault": true
      }
    }
  ]
}  

Команда Параметр указывает программу для запуска; в данном случае это g ++.Массив args определяет аргументы командной строки, которые будут переданы в g ++. Эти аргументы должны быть указаны в порядке, ожидаемом компилятором. Эта задача сообщает g ++ взять активный файл ( $ {file} ), скомпилировать его и создать исполняемый файл в текущем каталоге ( $ {fileDirname} ) с тем же именем, что и активный файл, но без расширения. ( $ {fileBasenameNoExtension} ), что в нашем примере дает helloworld .

Примечание : Вы можете узнать больше о задачах.json переменных в справочнике переменных.

Ярлык Значение - это то, что вы увидите в списке задач; Вы можете называть это как хотите.

Значение "isDefault": true в группе объект указывает, что эта задача будет запускаться при нажатии ⇧⌘B (Windows, Linux Ctrl + Shift + B). Это свойство предназначено только для удобства; если вы установите для него значение false, вы все равно можете запустить его из меню «Терминал» с помощью «Задачи »: «Выполнить задачу сборки ».

Запуск сборки

  1. Вернитесь к helloworld.cpp . Ваша задача создает активный файл, и вы хотите построить helloworld.cpp .

  2. Чтобы запустить задачу сборки, определенную в файле tasks.json , нажмите ⇧⌘B (Windows, Linux Ctrl + Shift + B) или в главном меню Terminal выберите Tasks: Run Build Task .

  3. При запуске задачи вы должны увидеть панель «Интегрированный терминал» под редактором исходного кода.После завершения задачи терминал показывает вывод компилятора, который указывает, успешно ли завершилась сборка. Для успешной сборки g ++ результат выглядит примерно так:

  4. Создайте новый терминал с помощью кнопки + , и у вас будет терминал bash, работающий в контексте WSL с папкой helloworld в качестве рабочего каталога. Запустите ls , и теперь вы должны увидеть исполняемый файл helloworld (без расширения файла).

  5. Вы можете запустить helloworld в терминале, набрав ./helloworld .

Изменение tasks.json

Вы можете изменить свой tasks.json для создания нескольких файлов C ++, используя аргумент типа "$ {workspaceFolder} / *. Cpp" вместо $ {file} . Вы также можете изменить имя выходного файла, заменив "$ {fileDirname} / $ {fileBasenameNoExtension}" жестко заданным именем файла (например, 'helloworld.из').

Отладка helloworld.cpp

Затем вы создадите файл launch.json , чтобы настроить VS Code для запуска отладчика GDB, когда вы нажимаете F5 для отладки программы. В главном меню выберите Выполнить > Добавить конфигурацию ... , а затем выберите C ++ (GDB / LLDB) .

Затем вы увидите раскрывающийся список для различных предопределенных конфигураций отладки. Выберите сборку g ++ и отладьте активный файл .

VS Code создает запуск .json , открывает его в редакторе, создает и запускает helloworld.

  {
  "версия": "0.2.0",
  "конфигурации": [
    {
      "name": "g ++ построить и отладить активный файл",
      "тип": "cppdbg",
      "запрос": "запуск",
      "program": "$ {fileDirname} / $ {fileBasenameNoExtension}",
      "аргументы": [],
      "stopAtEntry": ложь,
      "cwd": "$ {workspaceFolder}",
      "среда": [],
      "externalConsole": ложь,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "Включить красивую печать для gdb",
          "text": "-enable-pretty-Printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "g ++ построить активный файл",
      «miDebuggerPath»: «/ usr / bin / gdb»
    }
  ]
}  

Программа Параметр указывает программу, которую нужно отлаживать.Здесь установлена ​​активная файловая папка $ {fileDirname} и активное имя файла без расширения $ {fileBasenameNoExtension} , то есть, если helloworld.cpp является активным файлом, будет helloworld .

По умолчанию расширение C ++ не добавляет точки останова в исходный код, а значение stopAtEntry установлено на false . Измените значение stopAtEntry на true , чтобы отладчик останавливался на основном методе при запуске отладки.

Остальные шаги представлены как дополнительное упражнение, чтобы помочь вам познакомиться с редактированием и отладкой.

Запустить сеанс отладки

  1. Вернитесь к helloworld.cpp , чтобы он стал активным файлом.
  2. Нажмите F5 или в главном меню выберите Выполнить> Начать отладку . Прежде чем приступить к пошаговому выполнению кода, давайте заметим несколько изменений в пользовательском интерфейсе:
  • Интегрированный терминал появляется в нижней части редактора исходного кода.На вкладке Debug Output вы видите выходные данные, указывающие, что отладчик запущен и работает.

  • Редактор выделяет первый оператор в методе main . Это точка останова, которую расширение C ++ автоматически устанавливает для вас:

  • В представлении «Выполнить» слева отображается отладочная информация. Позже в руководстве вы увидите пример.

  • В верхней части редактора кода появляется панель управления отладкой.Вы можете перемещать его по экрану, хватая точки с левой стороны.

Введите код

Теперь вы готовы приступить к пошаговому выполнению кода.

  1. Щелкните или нажмите значок Step over на панели управления отладкой.

    Это продвинет выполнение программы до первой строки цикла for и пропустит все внутренние вызовы функций в классах vector и string , которые вызываются при создании и инициализации переменной msg .Обратите внимание на изменение в окне Variables слева.

    В этом случае ожидаются ошибки, потому что, хотя имена переменных для цикла теперь видны отладчику, оператор еще не выполнен, поэтому читать здесь нечего. Однако содержимое сообщения msg видно, поскольку этот оператор завершен.

  2. Нажмите Перейдите через еще раз, чтобы перейти к следующему оператору в этой программе (пропуская весь внутренний код, который выполняется для инициализации цикла).Теперь в окне Variables отображается информация о переменных цикла.

  3. Нажмите Перейдите по еще раз, чтобы выполнить инструкцию cout . (Обратите внимание, что в выпуске за март 2019 года расширение C ++ не выводит никаких результатов на консоль отладки , пока цикл не завершится.)

  4. Если хотите, можете продолжать нажимать Step over , пока все слова в векторе не будут напечатаны на консоли.Но если вам интересно, попробуйте нажать кнопку « Step Into », чтобы просмотреть исходный код в стандартной библиотеке C ++!

    Чтобы вернуться к своему собственному коду, один из способов - продолжать нажимать Шаг за . Другой способ - установить точку останова в коде, переключившись на вкладку helloworld.cpp в редакторе кода, поместив точку вставки где-нибудь в инструкции cout внутри цикла и нажав F9. Красная точка появляется в желобе слева, чтобы указать, что на этой строке установлена ​​точка останова.

    Затем нажмите F5, чтобы начать выполнение с текущей строки в заголовке стандартной библиотеки. Исполнение остановится на cout . Если хотите, вы можете снова нажать F9, чтобы выключить точку останова.

    Когда цикл завершен, вы можете увидеть вывод на вкладке Debug Console интегрированного терминала вместе с некоторой другой диагностической информацией, которую выводит GDB.

Набор часов

Иногда вам может понадобиться отслеживать значение переменной во время выполнения вашей программы.Вы можете сделать это, установив для переменной часы .

  1. Поместите точку вставки внутрь петли. В окне Watch щелкните знак «плюс» и в текстовом поле введите слово , которое является именем переменной цикла. Теперь просмотрите окно Watch по мере прохождения цикла.

  2. Добавьте еще одно наблюдение, добавив этот оператор перед циклом: int i = 0; . Затем внутри цикла добавьте этот оператор: ++ i; .Теперь добавьте часы для i , как вы это делали на предыдущем шаге.

  3. Чтобы быстро просмотреть значение любой переменной, когда выполнение приостановлено на точке останова, вы можете навести на нее указатель мыши.

Конфигурации C / C ++

Если вам нужен больший контроль над расширением C / C ++, вы можете создать файл c_cpp_properties.json , который позволит вам изменять такие настройки, как путь к компилятору, включать пути, стандарт C ++ (по умолчанию C ++ 17) и многое другое.

Пользовательский интерфейс конфигурации C / C ++ можно просмотреть, выполнив команду C / C ++: Edit Configurations (UI) из палитры команд (⇧⌘P (Windows, Linux Ctrl + Shift + P)).

Откроется страница C / C ++ Configurations . Когда вы вносите здесь изменения, VS Code записывает их в файл с именем c_cpp_properties.json в папке .vscode .

Вам нужно изменить настройку Include path только в том случае, если ваша программа включает файлы заголовков, которых нет в вашей рабочей области или в пути стандартной библиотеки.

Visual Studio Code помещает эти параметры в .vscode / c_cpp_properties.json . Если вы откроете этот файл напрямую, он должен выглядеть примерно так:

  {
  "конфигурации": [
    {
      "name": "Linux",
      "includePath": ["$ {workspaceFolder} / **"],
      "определяет": [],
      "compilerPath": "/ usr / bin / gcc",
      "cStandard": "c11",
      "cppStandard": "c ++ 17",
      "intelliSenseMode": "clang-x64"
    }
  ],
  «версия»: 4
}  

Закрытие сеанса WSL

Когда вы закончите работу в WSL, вы можете закрыть удаленный сеанс с помощью команды Close Remote Connection , доступной в главном меню File и палитре команд (⇧⌘P (Windows, Linux Ctrl + Shift + P)) .Это перезапустит VS Code, работающий локально. Вы можете легко повторно открыть сеанс WSL из списка File > Open Recent , выбрав папки с суффиксом [WSL] .

Следующие шаги

22.11.2019

GPU в подсистеме Windows для Linux (WSL)

Enable Developers

Поддержка GPU - это функция номер один, запрашиваемая пользователями WSL во всем мире, включая специалистов по данным, инженеров машинного обучения и даже начинающих разработчиков.

Access Advanced AI

Самые передовые и инновационные инфраструктуры и библиотеки ИИ уже интегрированы с поддержкой NVIDIA CUDA, включая ведущие в отрасли инфраструктуры, такие как PyTorch и TensorFlow.

Уменьшите препятствия

Накладные расходы и дублирование инвестиций в вычислительные платформы с несколькими ОС могут быть недопустимыми - пользователям ИИ, разработчикам и специалистам по данным нужен быстрый доступ для запуска программного обеспечения Linux на своих продуктивных платформах Windows.

Начать разработку быстро разрабатывать графические процессоры

CUDA Toolkit предоставляет разработчикам все необходимое для начала создания приложений с ускорением на основе графических процессоров, включая инструментальные средства компилятора, оптимизированные библиотеки и набор инструментов для разработчиков.Используйте CUDA в контейнерах WSL и CUDA, чтобы быстро приступить к работе. Функции и возможности будут добавлены в предварительную версию CUDA Toolkit в течение срока действия программы предварительного просмотра.

CUDA TOOLKIT ›

Упрощение глубокого обучения

NVIDIA предоставляет доступ к более чем десятку фреймворков и SDK для глубокого обучения, включая поддержку TensorFlow, PyTorch, MXNet и др.

Кроме того, вы даже можете запускать готовые контейнеры фреймворка с помощью Docker и NVIDIA Container Toolkit в WSL.Платформы, предварительно обученные модели и рабочие процессы доступны в NGC.

DL FRAMEWORKS ›
NVIDIA NGC CONTAINERS›

Accelerate Analytics and Data Science

RAPIDS - это набор программных библиотек NVIDIA с открытым исходным кодом для ускорения конвейеров обработки и анализа данных на графических процессорах.

Сократите время обучения и повысьте точность модели за счет более быстрого выполнения итераций с помощью проверенных, предварительно созданных библиотек.

RAPIDS ›

CUDA Everywhere

Существует множество платформ NVIDIA в различных форм-факторах и по разной цене для размещения вашей рабочей среды, включая видеокарты с поддержкой GPU, ноутбуки и многое другое.

GEFORCE ›
QUADRO›
TITAN ›

Docker Desktop WSL 2 backend

Расчетное время чтения: 7 минут

Подсистема Windows представляет для Linux (значительное изменение архитектуры) WSL 2 это полное ядро ​​Linux, созданное Microsoft, позволяющее контейнерам Linux работать без эмуляции. Благодаря Docker Desktop, работающему на WSL 2, пользователи могут использовать рабочие области Linux и избежать необходимости поддерживать сценарии сборки как Linux, так и Windows.Кроме того, WSL 2 улучшает совместное использование файловой системы, время загрузки и предоставляет пользователям Docker Desktop доступ к некоторым новым интересным функциям.

Docker Desktop использует функцию динамического выделения памяти в WSL 2, чтобы значительно снизить потребление ресурсов. Это означает, что Docker Desktop использует только необходимый объем ресурсов ЦП и памяти, в которых он нуждается, в то же время позволяя выполнять задачи с интенсивным использованием ЦП и памяти, такие как создание контейнера, намного быстрее.

Кроме того, с WSL 2 время, необходимое для запуска демона Docker после холодного запуска, значительно меньше.Для запуска демона Docker требуется менее 10 секунд по сравнению с почти минутой в предыдущей версии Docker Desktop.

Предварительные требования

Перед установкой серверной части Docker Desktop WSL 2 необходимо выполнить следующие шаги:

  1. Установите Windows 10 версии 1903 или более поздней.
  2. Включите функцию WSL 2 в Windows. Подробные инструкции см. В документации Microsoft.
  3. Загрузите и установите пакет обновления ядра Linux.

Лучшие практики

  • Чтобы получить максимальную отдачу от производительности файловой системы при монтировании файлов с привязкой, мы рекомендуем хранить исходный код и другие данные, смонтированные с привязкой, в контейнеры Linux (т. Е. С помощью команды docker run -v : ) в файловой системе Linux, а не в файловой системе Windows. Вы также можете обратиться к рекомендации Microsoft.

    • Контейнеры Linux получают события изменения файла («события inotify»), только если
      исходные файлы хранятся в файловой системе Linux.Например, некоторые рабочие процессы веб-разработки полагаются на события inotify для автоматической перезагрузки при изменении файлов.
    • Производительность намного выше, когда файлы монтируются с привязкой из Linux
      файловая система, а не удаленная от хоста Windows. Поэтому избегайте
      docker run -v / mnt / c / users: / users (где / mnt / c смонтирован из Windows).
    • Вместо этого из оболочки Linux используйте команду типа docker run -v ~ / my-project: / sources
      где ~ расширяется оболочкой Linux до $ HOME .
  • Если у вас есть сомнения по поводу размера VHDX для данных docker-desktop-data или вам необходимо его изменить, обратите внимание на инструменты WSL, встроенные в Windows.
  • Если у вас есть проблемы с использованием ЦП или памяти, вы можете настроить ограничения для памяти, ЦП и размера подкачки, выделенного служебной виртуальной машине WSL 2.
  • Чтобы избежать любых потенциальных конфликтов с использованием WSL 2 на Docker Desktop, перед установкой Docker Desktop необходимо удалить все предыдущие версии Docker Engine и CLI, установленные непосредственно через дистрибутивы Linux.

Загрузить

Загрузите Docker Desktop Stable 2.3.0.2 или более позднюю версию.

Установить

Убедитесь, что вы выполнили шаги, описанные в разделе «Предварительные требования» , перед установкой версии Docker Desktop Stable 2.3.0.2.

  1. Следуйте обычным инструкциям по установке, чтобы установить Docker Desktop. Если вы используете поддерживаемую систему, Docker Desktop предложит вам включить WSL 2 во время установки. Прочтите информацию, отображаемую на экране, и включите WSL 2, чтобы продолжить.
  2. Запустите рабочий стол Docker из меню «Пуск» Windows.
  3. В меню Docker выберите Настройки > Общие .

  4. Установите флажок Использовать механизм на основе WSL 2 .

    Если вы установили Docker Desktop в системе, поддерживающей WSL 2, этот параметр будет включен по умолчанию.

  5. Нажмите Применить и перезапустить .
  6. Убедитесь, что распространение работает в режиме WSL 2.WSL может запускать распространение как в режиме v1, так и в режиме v2.

    Чтобы проверить режим WSL, запустите:

    wsl.exe -l -v

    Чтобы обновить существующий дистрибутив Linux до версии 2, запустите:

    wsl.exe --set-version (название дистрибутива) 2

    Чтобы установить v2 в качестве версии по умолчанию для будущих установок, запустите:

    wsl.exe --set-default-version 2

  7. После перезапуска Docker Desktop перейдите в раздел Настройки > Ресурсы > Интеграция WSL .

    Интеграция Docker-WSL будет включена в вашем распространении WSL по умолчанию. Чтобы изменить дистрибутив WSL по умолчанию, запустите wsl --set-default <имя дистрибутива> .

    Например, чтобы установить Ubuntu в качестве дистрибутива WSL по умолчанию, запустите wsl --set-default ubuntu .

    При желании выберите любые дополнительные дистрибутивы, в которых вы хотите включить интеграцию Docker-WSL.

    Примечание

    Компоненты интеграции Docker-WSL, работающие в вашем дистрибутиве, зависят от glibc.Это может вызвать проблемы при запуске дистрибутивов на основе musl, таких как Alpine Linux. Пользователи Alpine могут использовать пакет alpine-pkg-glibc для развертывания glibc вместе с musl для запуска интеграции.

  8. Нажмите Применить и перезапустить .

Разработка с помощью Docker и WSL 2

В следующем разделе описывается, как начать разработку приложений с использованием Docker и WSL 2. Мы рекомендуем вам иметь свой код в вашем дистрибутиве Linux по умолчанию для наилучшего опыта разработки с использованием Docker и WSL 2.После того, как вы включили WSL 2 на Docker Desktop, вы можете начать работать со своим кодом внутри дистрибутива Linux и, в идеале, с вашей IDE, все еще находящейся в Windows. Этот рабочий процесс может быть довольно простым, если вы используете VSCode.

  1. Откройте VSCode и установите расширение Remote - WSL. Это расширение позволяет вам работать с удаленным сервером в дистрибутиве Linux и вашим IDE-клиентом по-прежнему в Windows.
  2. Теперь вы можете начать работу в VSCode удаленно. Для этого откройте свой терминал и введите:

    WSL

    код.

    Это открывает новый VSCode, удаленно подключенный к вашему дистрибутиву Linux по умолчанию, который вы можете проверить в нижнем углу экрана.

    Кроме того, вы можете ввести имя дистрибутива Linux по умолчанию в меню «Пуск», открыть его и затем запустить , код .

  3. Когда вы находитесь в VSCode, вы можете использовать терминал в VSCode, чтобы вытащить свой код и начать работать в исходном режиме с вашего компьютера Windows.

Поддержка графического процессора

Запуск с Docker Desktop 3.1.0, Docker Desktop поддерживает паравиртуализацию WSL 2 GPU (GPU-PV) на графических процессорах NVIDIA. Чтобы включить паравиртуализацию GPU WSL 2, вам необходимо:

  • Машина с графическим процессором NVIDIA
  • Последняя версия программы предварительной оценки Windows из группы Dev Preview
  • Бета-драйверы от NVIDIA с поддержкой WSL 2 GPU Paravirtualization
  • Обновите ядро ​​Linux WSL 2 до последней версии, используя wsl --update из командной строки с повышенными привилегиями
  • Убедитесь, что серверная часть WSL 2 включена в Docker Desktop

Чтобы убедиться, что все работает должным образом, выполните следующую команду, чтобы запустить короткий тест на своем графическом процессоре:

  $ docker run --rm -it --gpus = все nvcr.io / nvidia / k8s / cuda-sample: nbody nbody -gpu -benchmark
Запустите «nbody -benchmark [-numbodies = ]», чтобы измерить производительность.
        -fullscreen (запустить симуляцию n-body в полноэкранном режиме)
        -fp64 (использовать для моделирования значения с плавающей запятой двойной точности)
        -hostmem (сохраняет данные моделирования в памяти хоста)
        -benchmark (запустить тест для измерения производительности)
        -numbodies =  (количество тел (> = 1) для запуска в симуляции)
        -device =  (где d = 0,1,2.... для использования устройства CUDA)
        -numdevices =  (где i = (количество устройств CUDA> 0) для использования для моделирования)
        -compare (сравнивает результаты моделирования, запущенные один раз на графическом процессоре по умолчанию и один раз на процессоре)
        -cpu (запустить симуляцию n-body на CPU)
        -tipsy =  (загрузить файл подвыпившей модели для симуляции)
        
> ПРИМЕЧАНИЕ. Примеры CUDA не предназначены для измерения производительности. Результаты могут отличаться, если включен режим GPU Boost.

> Оконный режим
> Данные моделирования хранятся в видеопамяти
> Моделирование одинарной точности с плавающей запятой
> 1 Устройства, используемые для моделирования
MapSMtoCores для SM 7.5 не определено. По умолчанию используется 64 ядра / SM
Устройство GPU 0: «GeForce RTX 2060 с дизайном Max-Q» с вычислительной мощностью 7,5

> Устройство Compute 7.5 CUDA: [GeForce RTX 2060 с дизайном Max-Q]
30720 тел, общее время на 10 итераций: 69,280 мс
= 136,219 миллиарда взаимодействий в секунду
= 2724,379 GFLOP / с одинарной точности при 20 флопах на взаимодействие
  

Обратная связь

Ваш отзыв очень важен для нас. Сообщите нам свой отзыв, создав проблему в репозитории Docker Desktop для Windows на GitHub и добавив метку WSL 2 .

WSL, WSL 2 Tech Preview, подсистема Windows для Linux, WSL 2 backend Docker

Пошаговое руководство по включению подсистемы Windows 10 для Linux

Microsoft создала новую инфраструктуру в Windows - подсистему Windows для Linux (WSL) - на которой мы запускаем подлинную Образ пользовательского режима Ubuntu предоставлен великими партнерами Microsoft из Canonical, создателями Ubuntu Linux. В результате теперь вы можете запускать собственный Bash в Ubuntu в Windows.

Включить оболочку Ubuntu Bash в Windows 10

Прежде чем мы начнем, убедитесь, что вы установили юбилейное обновление Windows 10.Это работает только в 64-битной Windows 10.

Шаг 1. Включите режим разработчика

Чтобы включить режим разработчика, откройте приложение «Настройки» и перейдите к Обновление и безопасность > Для разработчиков . Нажмите переключатель Developer Mode .

Шаг 2. Включите подсистему Windows для Linux

Чтобы включить подсистему Windows для Linux (бета), откройте панель управления , щелкните Программы и компоненты и щелкните Включение или выключение компонентов Windows на левой боковой панели в разделе «Программы и компоненты».Включите опцию Windows Subsystem for Linux (Beta) в списке здесь и нажмите OK. После этого вам будет предложено перезагрузить компьютер. Нажмите Перезагрузить сейчас , чтобы перезагрузить компьютер, и Windows 10 установит новую функцию.

Шаг 3. Загрузите Bash в Ubuntu в Windows

После перезагрузки компьютера нажмите кнопку «Пуск» (или нажмите клавишу Windows), введите bash и нажмите Enter.

При первом запуске bash.exe, вам будет предложено принять условия обслуживания. Затем команда загрузит приложение Bash для Ubuntu в Windows из Магазина Windows. Вам будет предложено создать учетную запись пользователя и пароль для использования в среде Bash.

Если вместо этого вы хотите автоматизировать установку Bash, вы можете запустить следующую команду в окне командной строки. Это автоматически подтвердит все запросы и установит пользователя по умолчанию root без пароля:

  lxrun / install / y
  
Шаг 4. Используйте оболочку Bash Ubuntu в Windows

Теперь у вас есть полноценная оболочка командной строки bash на основе Ubuntu.Поскольку это одни и те же двоичные файлы, вы можете использовать команду Ubuntu apt-get для установки программного обеспечения из репозиториев Ubuntu. Чтобы открыть оболочку Bash, просто откройте меню «Пуск» и выполните поиск по запросу «bash» или «Ubuntu». Вы увидите приложение «Bash в Ubuntu в Windows».

Если у вас есть опыт использования оболочки Bash в Linux, Mac OS X или других платформах, вы будете как дома. Вам не нужно использовать sudo, так как вам предоставлена ​​оболочка root. Пользователь «root» на платформах UNIX имеет полный доступ к системе, как пользователь «Администратор» в Windows.Ваша файловая система Windows находится в / mnt / c в среде оболочки Bash.

Используйте те же команды терминала Linux, что и раньше. Если вы привыкли к стандартной командной строке Windows с ее командами DOS, вот несколько основных команд как для Bash, так и для Windows:

  • Изменить каталог: cd в Bash, cd или chdir в DOS
  • Список содержимого каталога: ls в Bash, каталог в DOS
  • Перемещение или переименование файла: mv в Bash, перемещение и переименование в DOS
  • Скопируйте файл: cp в Bash, скопируйте в DOS
  • Удалить файл: rm в Bash, удалить или стереть в DOS
  • Создание каталога: mkdir в Bash, mkdir в DOS
  • Используйте текстовый редактор: vi или nano в Bash, отредактируйте в DOS

Важно помнить, что, в отличие от Windows, оболочка Bash и ее среда, имитирующая Linux, чувствительны к регистру.Другими словами, File.txt с заглавной буквой отличается от file.txt без заглавной буквы.

Посмотрите это видео, чтобы узнать больше и увидеть, как Bash работает в Ubuntu в Windows!

Как включить Linux Shell в Windows 10

Введение

Подсистема Windows

для Linux позволяет запускать команды оболочки Linux с вашего Windows-ПК.

Это руководство предлагает 3 метода включения подсистемы Windows для Linux в Windows 10. В нем также показано, как загрузить и установить предпочитаемый вами дистрибутив Linux из Магазина Windows.

Есть 2 высокоуровневых шага, чтобы иметь возможность запускать команды Linux в Windows 10:

  1. Включение подсистемы Windows для Linux Дополнительные функции Windows
  2. Загрузите и установите дистрибутив Linux из магазина Windows

Параметры для включения подсистемы Windows для Linux в Windows 10

В этом руководстве рассматриваются 3 метода включения подсистемы Windows для Linux в Windows 10:

  1. Из панели управления
  2. Установить с помощью DISM
  3. Включение подсистемы Windows для Linux с помощью PowerShell

Включение подсистемы Windows для Linux в Windows 10 из панели управления

Вот первый способ включить подсистему Windows для Linux в Windows 10:

  • Введите панель управления в строке поиска Windows 10.Затем щелкните его в результатах поиска.
  • Когда откроется Панель управления, убедитесь, что для Просмотр по установлено значение Категория . Если нет, щелкните раскрывающийся список и выберите Категория .
  • В Программы и Компоненты щелкните Включение или отключение компонентов Windows . Откроется новое всплывающее окно. Если всплывающее окно Windows Features слишком мало, его можно развернуть (см. Второе изображение ниже).
  • Затем во всплывающем окне «Функции Windows» найдите Подсистема Windows для Linux и установите флажок рядом с ней.Чтобы включить эту функцию, нажмите «ОК».
  • Windows включит эту функцию…
  • Когда она будет завершена, нажмите Перезагрузить сейчас .

Включение подсистемы Windows для Linux в Windows 10 с помощью командной строки

Другой вариант - использовать командную строку DISM для включения этой функции.

Вот подробные шаги:

  • Введите cmd в строку поиска. Затем под Command Promp t щелкните Run as Administrator .
  • Чтобы отобразить имя дополнительной функции Windows, которую вы хотите включить, введите команду ниже. Затем нажмите Enter.
 DISM.exe / Online / Get-Features | найти "linux" 

Вот результат выполнения команды в командной строке.

  • Чтобы включить эту функцию, введите эту команду и нажмите клавишу ВВОД.
 Dism / Online / Enable-Feature / FeatureName: Microsoft-Windows-Subsystem-Linux / All 

DISM начнет включение функции ... Подождите, пока он достигнет 100%, и сообщит об успехе ...

  • Для установки компонента требуется перезапуск.Чтобы перезагрузить компьютер, в командной строке введите Y.
  • Ваш компьютер перезагрузится и начнет установку подсистемы Windows для Linux.

Включение подсистемы Windows для Linux в Windows 10 с помощью PowerShell

Последний вариант включения подсистемы Linux - через PowerShell.

Вот шаги…

  • Введите powershell в строке поиска. Затем под Windows PowerShell щелкните Запуск от имени администратора .
  • Чтобы отобразить имя подсистемы Linux, введите команду ниже.Затем нажмите Enter.
 Get-WindowsOptionalFeature -Online | Where-Object {$ _. FeatureName -like "* linux"} | Таблица форматов 

Вот результат выполнения команды в PowerShell со статусом функции «Отключено».

  • Чтобы включить эту функцию, введите эту команду и нажмите клавишу ВВОД.
 Enable-WindowsOptionalFeature -Online -FeatureName «Microsoft-Windows-Subsystem-Linux» -Все 
  • Начнется установка компонента…
  • Когда установка компонента будет завершена, вам будет предложено перезагрузить компьютер.В приглашении к перезапуску введите Y. Затем нажмите Enter.

Загрузите и установите дистрибутив Linux из магазина Windows

Теперь, когда вы включили подсистему Windows для Linux, последний шаг для включения оболочки Linux в Windows 10 - это загрузка предпочитаемого дистрибутива Linux из магазина Windows.

Вот подробные шаги:

  • Откройте страницу Microsoft Store с вашим любимым дистрибутивом Linux. Чтобы открыть страницу дистрибутива в магазине Microsoft, щелкните ссылку ниже (все ссылки открываются в новой вкладке браузера):
  1. Ubuntu 16.04 LTS
  2. Ubuntu 18.04 LTS
  3. OpenSUSE Leap 15
  4. OpenSUSE Leap 42
  5. SUSE Linux Enterprise Server 12
  6. SUSE Linux Enterprise Server 15
  7. Kali Linux
  8. Debian152 GNU / Linux
  9. Fedora
  10. Pengwin Enterprise
  11. Alpine WSL
  • Затем, если будет предложено, щелкните Открыть Microsoft Store .
  • Когда приложение откроется в Microsoft Store, щелкните Получить .
  • Если вы не вошли в учетную запись Microsoft, вам будет предложено войти в систему. Это необязательно. Чтобы использовать приложение только на устройстве, щелкните Нет, спасибо .
  • Дистрибутив Linux начнет загрузку…
  • Когда загрузка будет завершена, щелкните Запустить . Начнется установка Linux. (См. Второе изображение).
  • При появлении запроса введите имя пользователя. Затем нажмите Enter.

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

  • При запросе пароля введите пароль для предыдущего пользователя и нажмите клавишу ВВОД. Затем введите пароль еще раз и снова нажмите Enter. Ваша установка готова к работе!

Заключение

Для запуска команд Linux в Windows 10 необходимо выполнить 2 задачи:

  • Включить подсистему Windows для Linux Дополнительный компонент Windows
  • Загрузите и установите предпочитаемый дистрибутив Linux из магазина Windows.

Если вы выполнили эти два шага, вы сможете пользоваться Linux прямо со своего ПК с Windows 10.

Для вопросов, отзывов или комментариев используйте форму «Оставить ответ» в конце этой страницы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *