Как запустить приложение линукс на windows 10
В Windows 10, теперь вы можете устанавливать и запускать приложения Linux с графическим интерфейсом с помощью подсистемы Windows для Linux (WSL) , и эта инструкция покажет вам, как это сделать.
В Windows 10 начиная со сборки 21364 и более поздних версиях, Microsoft наконец-то добавила поддержку графического интерфейса пользователя (GUI). Теперь вы можете запускать ваши любимые приложения Linux с помощью мыши и клавиатуры.
Новая функция предназначена для разработки и тестирования ваших приложений Linux без использования виртуальной машины, но вы можете использовать ее для всего, что вам нужно. Реализация включает поддержку переферии, например — динамиков и микрофона, поэтому, если вы установите мультимедийное приложение, периферийные устройства будут работать. 3D графика также поддерживаются для запуска любого приложения, которое должно выполнять сложный 3D-рендеринг с использованием OpenGL.
Не обязательно: Если у вас хороший графический процессор, вы можете запускать WSLg в системе с виртуальным графическим процессором (vGPU), включенным для WSL, чтобы воспользоваться преимуществами аппаратного ускорения рендеринга OpenGL. Вы можете найти нужный драйвер, поддерживающий WSL, по ссылкам ниже.
При использовании этой функции нет необходимости запускать X-сервер вручную, поскольку WSL автоматически запускает «сопутствующий системный дистрибутив», который включает Wayland, X-сервер, аудио сервер и все необходимые компоненты. После того, как вы закроете приложение и сеанс WSL, системный дистрибутив завершится автоматически.
В этом руководстве вы узнаете, как в Windows 10 установить приложения Linux с графическим интерфейсом с помощью WSL.
Выполните следующие действия, чтобы установить и запустить приложение Linux GUI в Windows 10:
Шаг 1: Откройте «Пуск» в Windows 10.
Шаг 2: Найдите Ubuntu (или другой дистрибутив) и кликните верхний результат, чтобы открыть дистрибутив Linux.
Если Вы ранее не установили WSL, ознакомьтесь с нашей инструкцией: Как установить WSL 2 подсистему Windows для Linux 2 в Windows 10
Шаг 3: Желательно обновить список доступных пакетов Linux, вы должны использовать команду:
Шаг 4: Введите следующую команду, чтобы установить приложение Linux с графический интерфейсом и нажмите Enter :
В данной команде замените APP-NAME названием приложения, которое вы хотите установить.
Установка и запуск графического редактора Gimp в Windows 10
GIMP («Гимп») — свободно распространяемый растровый графический редактор, программа для создания и обработки растровой графики и частичной поддержкой работы с векторной графикой.
Шаг 5: В командной строке введите sudo apt-get install gimp - это установит программу GIMP.
Шаг 6: Подтвердите пароль своей учетной записи Linux и нажмите Enter (если применимо).
После выполнения этих шагов приложение установится и зарегистрируется в меню «Пуск», что означает, что вы можете запустить приложение, запустив имя приложения в консоли подсистемы Windows для Linux (WSL) или из меню «Пуск».
В приведенных выше инструкциях описаны шаги по установке простого приложения из известных репозиториев, но в зависимости от нужного приложения шаги могут отличатся. Хорошей новостью является то, что процесс установки такой же, как и для любого другого приложения Linux, поэтому вы можете следовать инструкциям разработчика, чтобы установить практически любое приложение, такое как gedit, VLC, Audacity, web admin и т. Д.
Шаг 7: Если вы хотите запустить приложение Linux GUI из меню «Пуск» Windows 10, вы найдете записи в списке «Недавно добавленные», или вы также можете найти их в папке (имя дистрибутива) под записью дистрибутива Linux.
Когда вы запускаете приложение, виртуальная машина запускается (через несколько секунд) без необходимости открывать консоль WSL. Вы также заметите, что на панели задач будет отображаться значок с логотипом Linux, указывающий, что вы не запускаете приложение Windows 10.
Опыт использования графического приложения Linux в Windows 10 кажется естественным, но это не так. Приложение выполняет рендеринг со всеми визуальными стилями Linux для фрейма, меню и других элементов, и есть даже тень вокруг фрейма, и каждое окно работает независимо.
Однако это подключение к удаленному рабочему столу, которое Microsoft, вероятно, использует с функцией RemoteApp, встроенной в операционную систему.
Ниже представлен небольшой список приложений и команд для установки и запуска программ linux в Windows 10.
Gedit
Gedit это текстовый редактор для среды GNOME. Редактор поддерживает подсветку синтаксиса, автоматическую проверку орфографии, вкладки с разными документами, есть инструмент поиска и замены текста, подсветку текущей строки и их нумерацию, удобную навигацию, и многие другие функции.
Установка:
Матрица — cmatrix
Установка:
Firefox
Установка:
Как удалить приложение Linux GUI в Windows 10
Если вам необходимо удалить одно из установленных приложений, вы должны использовать команду:
В данной команде замените APP-NAME названием приложения, которое вы хотите удалить. Для удаления текстового редактора Gedit используйте команду
На запрос — Do you want to continue? [Y/n] ответьте Y и нажмите клавишу Enter
Приложение будет удалено с вашего устройства и больше не будет отображаться в меню «Пуск»
Все!
Какие приложения или игры Linux запустили вы в операционной системе Windows 10, поделитесь пожалуйста в комментариях ниже.
Поскольку сейчас в Linux разрабатывается больше приложений, чем когда-либо прежде, компания Microsoft осознала, что ей необходимо предоставить разработчикам простой способ создания, тестирования и запуска приложений Linux, не покидая рабочего стола Windows. Подсистема Windows для Linux (WSL) изначально была разработана для предоставления интегрированной терминальной среды Linux в Windows без необходимости настройки и управления виртуальной машины. Но что, если вы хотите запустить редактор графического интерфейса Linux или другое приложение с графическим интерфейсом, используя WSL?
Microsoft объявила 21 апреля что WSL, начиная с Windows 10 Insider Preview Build 21364, теперь поддерживает запуск графических приложений Linux. Таким образом, используя сборку 21364 и выше, разработчики могут запускать свои предпочтительные редакторы графического интерфейса и инструменты для тестирования и создания приложений Linux без необходимости в установке дополнительных программ и установки X-сервера. В этой статье мы опишем, как обновить WSL для поддержки приложений с графическим интерфейсом, как установить приложение с графическим интерфейсом в Ubuntu и, наконец, посмотреть, как приложения Linux с графическим интерфейсом интегрируются с пользовательским интерфейсом Windows 10.
Windows 10, версия 21H2 и поддержка графического интерфейса Linux приложений
Windows 10, версия 21H2 появится не раньше второй половины 2021 года, но Microsoft занята разработкой предварительных версий для инсайдеров. До недавнего времени WSL официально поддерживал только терминальные приложения Linux. Но компания Microsoft недавно выполнила обещание, данное в прошлом году, по обеспечению поддержки приложений с графическим интерфейсом для подсистемы Windows для Linux (WSL). Если вы не знаете, WSL 2 – это функция в Windows 10, которая позволяет разработчикам добавлять ядро Linux в Windows, а затем загружать поддержку терминала для нескольких дистрибутивов Linux, включая Ubuntu и SUSE.
Для чего нужна поддержка графического интерфейса Linux приложений в WSL?
Основным вариантом использования поддержки приложений Linux с графическим интерфейсом является запуск IDE (интегрированная среда разработки), которые поддерживаются только в Linux. Хотя многие разработчики используют Visual Studio Code в Windows для подключения к своим экземплярам Linux в WSL, некоторые разработчики предпочитают использовать такие инструменты Linux, как gedit, JetBrains и gvim.
Есть и другие приложения, которые работают только в Linux. WSL теперь позволяет разработчикам запускать эти приложения без необходимости в виртуальной машине Linux. Поддержка нового приложения с графическим интерфейсом пользователя в WSL, иногда называемого WSLg, также позволяет разработчикам тестировать кроссплатформенные приложения с графическим интерфейсом. Присутствует даже поддержка звука и микрофона.
Для ресурсоемких графических приложений WSLg поддерживает 3D-ускорение через OpenGL. Аппаратное ускорение GPU может принести пользу разработчикам, запускающим сложные приложения, использующие преимущества виртуального GPU WSL. Microsoft заявляет, что если вы хотите поэкспериментировать с 3D-ускоренной графикой в WSL, вам необходимо вручную загрузить драйвер WDDMv3.0 для графических процессоров AMD, Intel и NVIDIA соответственно. В конечном итоге эти драйвера будут автоматически развернуты с помощью Центра обновления Windows.
Как обеспечивается поддержка графических приложений в WSL?
Когда вы запускаете приложение Linux с графическим интерфейсом, Windows автоматически запускает сопутствующий дистрибутив Linux, который включает XWayland, звуковой сервер PulseAudio и всё необходимое для работы приложений с графическим интерфейсом Linux в Windows. Linux приложения с графическим интерфейсом интегрированы с пользовательским интерфейсом Windows, и когда вы завершаете приложение, сеанс сопутствующего дистрибутива Linux также завершается, чтобы уменьшить использование системных ресурсов.
WSLg поддерживает графические приложения в Wayland и X11. Microsoft разработала WSLg как приложение с открытым исходным кодом. WSLg изолирован от пользовательского дистрибутива Linux, поэтому WSLg можно использовать независимо. Дистрибутив-компаньон WSLg использует CBL-Mariner, легкий и настраиваемый дистрибутив Linux, поддерживаемый Microsoft Linux System Group. CBL-Mariner изначально был разработан для автономных контейнерных рабочих нагрузок, выполняемых в Azure и других сервисах Microsoft.
Как обновить WSL для поддержки приложений Linux с графическим интерфейсом
Если у вас уже установлен WSL в Windows и вы используете инсайдерскую сборку Windows 10 не ниже версии 21364 Insider Preview, то вам необходимо так же обновить существующую установку WSL для поддержки WSLg.
Обновление установленного WSL
Есть два простых шага для обновления WSL. Сначала выключите все запущенные дистрибутивы, а затем обновите WSL с помощью инструмента командной строки wsl.exe.
- Откройте командную строку (cmd.exe) от имени Администратора.
- В окне командной строки выполните следующие команды:
WSLg поддерживает только WSL 2, поэтому вам необходимо убедиться, что все существующие и будущие дистрибутивы Linux настроены для работы в WSL 2. Вы можете настроить существующие дистрибутивы на использование WSL 2, используя переключатель –set -version и заменив имя Ubuntu на название дистрибутива Linux, установленного на вашем ПК. Используйте wsl –list -v, чтобы отобразить список дистрибутивов Linux, установленных в системе.
Затем перезапустите WSL, чтобы завершить процесс:
Установка WSL с поддержкой приложений Linux с графическим интерфейсом
Если вы хотите установить WSL в первый раз в Windows 10 Build 21364 или выше, вам просто нужно установить WSL с помощью командной строки. Поддержка WSLg встроена. Приведенная ниже команда устанавливает WSL, а затем устанавливает дистрибутив Ubuntu. Вам будет предложено перезагрузить компьютер.
Для установки WSL с поддержкой графического интерфейса Linux приложений выполните следующую команду в командной строке (cmd.exe) от имени Администратора:
После перезагрузки системы вас встретит открытое окно командной строки WSL, в котором нужно будет создать имя пользователя и задать пароль root.
Установка Linux приложений с графическим интерфейсом в Ubuntu WSL
Теперь запустите свой дистрибутив Linux из меню «Пуск» Windows. В этом примере я использую Ubuntu, поэтому я найду значок Ubuntu в списке приложений в меню «Пуск». Щелчок по значку Ubuntu запускает окно терминала Ubuntu. Теперь установите приложения Linux с графическим интерфейсом так же, как и в любом другом дистрибутиве Ubuntu.
Например, поскольку Ubuntu основан на Debian, используйте команду apt для установки приложений. Вам нужно будет выполнить команду sudo, чтобы запустить ее с повышенными привилегиями в Linux. Первый шаг – обновить все существующие пакеты в Ubuntu:
Здесь я использую apt для установки Nautilus, файлового менеджера с графическим интерфейсом для Linux:
Другой пример – установка предварительной версии Microsoft Edge для Linux. Здесь мне нужно загрузить пакет с веб-сайта Microsoft, а затем установить его с помощью apt.
sudo apt install /tmp/edge.deb -y
Запуск приложений Linux с графическим интерфейсом и интеграция с пользовательским интерфейсом Windows 10
После того, как выбранные вами приложения будут установлены, вы найдете их в списке приложений в меню «Пуск» Windows. Запускайте приложения с графическим интерфейсом для Linux, как любое приложение для Windows.
Кроме того, вы можете запускать приложения с графическим интерфейсом из окна терминала Linux. Например, чтобы запустить Nautilus из терминала, я бы просто набрал nautilus и нажал ENTER. Или microsoft-edge и нажмите ENTER, чтобы запустить Microsoft Edge.
Браузер Edge даже идентифицируется как отличная от версии, установленной в Windows, по пингвину в правом нижнем углу значка приложения.
Приложения Linux с графическим интерфейсом в Windows 10
WSLg все еще находится в стадии разработки, но, похоже, на этом этапе они далеко продвинулись. Microsoft будет настраивать его в следующих сборках Insider до того, как Windows 10 21H2 выйдет позже в 2021 году. За время тестирования, WSLg, похоже, работал так, как ожидалось. Я не устанавливал графические драйверы виртуального графического процессора, как рекомендовали Microsoft. Но и без них вроде все нормально работало.
Если вам не терпится получить официальную поддержку графических приложений Linux GUI в WSL, вы можете переключиться на канал предварительной оценки. Имейте ввиду, эти обновления для WSL в настоящее время доступны только инсайдерам на канале Dev, который считается наиболее нестабильным. Итак, вы можете подождать либо до официального релиза 21H2, либо, по крайней мере, до тех пор, пока WSLg не перейдет на бета-версию или канал Release Preview.
теперь можно предварительно просмотреть подсистема Windows для Linux поддержку для запуска приложений с графическим пользовательским интерфейсом Linux (X11 и вайланд) на Windows в полностью интегрированном рабочем столе.
WSL 2 позволяет приложениям с графическим интерфейсом Linux работать в собственном и естественном виде для Windows.
- запуск приложений Linux из Windows меню
- закрепление приложений Linux на панели задач Windows
- используйте alt-tab для переключения между приложениями Linux и Windows
- вырезать и вставить в приложениях Windows и Linux
теперь вы можете интегрировать как Windows, так и приложения Linux в рабочий процесс для удобства работы с рабочим столом.
Установка поддержки для приложений с графическим интерфейсом Linux
Предварительные требования
чтобы получить доступ к этой функции, необходимо включить Windows 11 сборки 22000 или более поздней версии . вы можете присоединиться к программе "предварительные оценки" Windows , чтобы получить последние предварительные сборки.
Установленный драйвер для GPU
Чтобы запустить приложения для графического пользовательского интерфейса Linux, сначала необходимо установить драйвер предварительной версии, соответствующий вашей системе. Это позволит использовать виртуальный графический процессор (GPU), чтобы можно было воспользоваться преимуществами визуализации OpenGL с аппаратным ускорением.
Новая установка — нет предыдущей установки WSL
Установите WSL и настройте имя пользователя и пароль для дистрибутива Linux, если вы еще этого не сделали.
Откройте окно командной строки с правами администратора.
нажмите кнопку пуск, введите PowerShell, щелкните правой кнопкой мыши Windows PowerShell, а затем выберите запуск от имени администратора.
Выполните эту команду и перезагрузите компьютер при появлении запроса:
После завершения перезагрузки компьютера установка продолжится, и вам будет предложено ввести имя пользователя и пароль. Это будут учетные данные Linux для дистрибутива Ubuntu.
Теперь вы готовы приступить к использованию приложений с графическим интерфейсом Linux на WSL!
Существующая установка WSL
Если на компьютере уже установлен WSL, можно выполнить обновление до последней версии, которая включает поддержку графического пользовательского интерфейса Linux, выполнив команду Update из командной строки с повышенными привилегиями.
нажмите кнопку пуск, введите PowerShell, щелкните правой кнопкой мыши Windows PowerShell, а затем выберите запуск от имени администратора.
Введите команду WSL Update:
Чтобы обновление вступило в силу, необходимо перезапустить WSL. Вы можете перезапустить WSL, выполнив команду shutdown в PowerShell.
Приложения с графическим интерфейсом Linux поддерживаются только с WSL 2 и не будут работать с дистрибутивом Linux, настроенным для WSL 1. Узнайте , как изменить дистрибутив с WSL 1 на WSL 2.
Запуск приложений с графическим пользовательским интерфейсом Linux
Для загрузки и установки популярных приложений Linux можно выполнить следующие команды в терминале Linux. При использовании другого дистрибутива, отличного от Ubuntu, он может использовать диспетчер пакетов, отличный от apt. После установки приложения Linux его можно найти в меню " Пуск " под именем распространения. Например: Ubuntu -> Microsoft Edge .
Обновление пакетов в дистрибутиве
Установка Gedit
Gedit является текстовым редактором по умолчанию среды GNOME Desktop.
Чтобы запустить файл bashrc в редакторе, введите: gedit
Установка ГИМП
ГИМП — это свободный графический редактор с открытым исходным кодом, который используется для обработки изображений и редактирования изображений, рисования произвольной формы, перекодирования между различными форматами файлов изображений и более специализированных задач.
Для запуска введите: gimp
Установка Наутилус
Наутилус, также известные как файлы GNOME, — это диспетчер файлов для рабочего стола GNOME. (аналогично Windows проводнике).
Для запуска введите: nautilus
Установка Влк
Влк — это бесплатный мультимедийный проигрыватель и платформа с открытым исходным кодом, который воспроизводит большинство мультимедийных файлов.
Для запуска введите: vlc
Установка приложений X11
Для запуска введите имя инструмента, который вы хотите использовать. Например:
Установка Google Chrome для Linux
Чтобы установить Google Chrome для Linux, выполните следующие действия.
Для запуска введите: google-chrome
установка Microsoft Teams для Linux
установка Microsoft Teams для Linux:
Для запуска введите: teams
установка обозревателя Microsoft Edge для Linux
сведения о том, как установить браузер Microsoft Edge для Linux, можно найти с помощью командной строки на сайте предварительнойверсии. Выберите получить инструкции в разделе Установка командной строки на странице.
К написанию данной статьи меня побудил вопрос на Тостере, связанный с WSL. Я, после нескольких лет использования систем на ядре Linux, около полугода назад перешел к использованию Windows 10 на домашнем ПК. Зависимость от терминала и Linux окружения в моей работе практически сразу привели меня к вопросу: или ставить виртуалку или попробовать WSL. Я выбрал второе, и остался вполне доволен.
Под катом я расскажу как установить и настроить WSL, на какие я наткнулся проблемы и ограничения, как запускать Linux приложения из Windows и наоборот, а так же как интегрировать элементы окружения Xfce в окружение рабочего стола Windows.
Никогда не думал, что однажды вернусь на Windows, но повод попробовать мне дали стечения обстоятельств: жена, далекая от IT, дергала почти каждый раз, когда у нее возникала необходимость воспользоваться компом; проснулась ностальгия по одной игре, но она никак не хотела адекватно работать под wine; а тут еще мне подарили коробочную Windows 10 Pro. WSL я поставил чуть ли не сразу после установки системы, поигрался несколько вечеров, понял, что продукт для моих задач годный, но хочется более привычный терминал и вообще некоторых удобств.
Установка WSL и дистрибутива
Сразу оговорюсь, в интернете можно найти описание установки с помощью выполнения команды lxrun /install в командной строке или консоли PowerShell. Данный способ больше не работает (после выхода WSL в стабильный релиз). Насколько мне известно, сейчас WSL можно установить только из Microsoft Store вместе с предпочитаемым дистрибутивом.
Так же отмечу, что когда установку производил я, на выбор были доступны дистрибутивы OpenSUSE, SUSE Linux Enterprise и Ubuntu 16.04 — последний я и установил. Сейчас также доступны Ubuntu 18.04, Debian 9 и Kali Linux, возможно появятся и другие дистрибутивы. Действия по установке могут отличаться. Так же, часть проблем описанных в статье может быть уже исправлена.
Находим в магазине желаемый дистрибутив и устанавливаем. Установка пройдет быстро, так как скачает только эмулятор ядра Linux и утилиту для запуска подсистемы, которая окажется в системной папке в трех экземплярах: wsl.exe, bash.exe и ubuntu.exe (вместо ubuntu будет имя Вашего дистрибутива). Все они равнозначны и делают одно и то же — запускают собственный эмулятор терминала, в нем linux'овый bash работающий под эмулятором ядра. При первом же запуске нас попросят придумать логин и пароль для пользователя по умолчанию, а после произойдет непосредственно установка дистрибутива. В качестве пользователя по умолчанию указываем root без пароля — это потребуется для дальнейших шагов. Безопасность не пострадает, кроме того при подготовке материалов к статье, в англоязычном туториале, я наткнулся на информацию, что новые версии WSL теперь делают пользователем по умолчанию root без пароля без лишних вопросов.
Дожидаемся установки. Далее первым делом стоит обновить зеркала apt на ближайшие. Для этого понадобится CLI текстовый редактор. В комплекте только vi, я же больше предпочитаю nano, поэтому ставлю его:
sudo вводить не требуется, так как мы уже под root'ом. Отредактируем файл /etc/apt/sources.list:
У меня лучше всего работают зеркала Яндекса, поэтому мой файл выглядит так:
Нажимаем Ctrl+O для сохранения и Ctrl+X для выхода. Теперь можно обновить систему до актуального состояния:
После обновления можно создать нашего основного пользователя. В данной статье я назову его user1, Вы же можете задать привычное имя:
Далее переходим в папку юзера, зайдем под ним, установим пароль и отредактируем файл
Все, подсистема готова к использованию… почти.
Установка X-сервера, Xfce и прочих GUI'шных приложений
Первая же проблема, на которую я натолкнулся — bash-completion в предлагаемом эмуляторе терминала работал, мягко говоря, некорректно. Кроме того, данный эмулятор не умеет вкладки, а каждый его экземпляр запускает все в новом пространстве процессов, с отдельным init'ом (который кстати не заменить). Мне захотелось нормальный эмулятор терминала, некоторых других GUI приложений, а так же панельку, чтоб это все быстро запускать.
Когда я гуглил этот вопрос, я наткнулся на множество проблем, вроде необходимости перевода dbus на tcp протокол. На данный момент всех этих проблем нет. В подсистеме нормально работают unix-domain-socket'ы и все спокойно общается через них.
Первым делом нам понадобится X-сервер, притом установленный в основную систему (в Windows). Лично я использую для этих целей VcXsrv — порт X11 на Windows. Официальный сайт указанный в about самой утилиты его сейчас не предоставляет, поэтому гуглим установщик и устанавливаем все по умолчанию.
Пока идет установка возвращаемся в терминал WSL, командой exit выходим обратно в root'а. Первым делом настроим русские локали:
Далее установим некоторые компоненты Xfce. Можно конечно установить его целиком из мета-пакета, но большинство компонентов нам не понадобится, а модульная архитектура Xfce позволяет нам поставить только необходимое:
Запускать каждый раз окружение руками не очень удобно, поэтому я автоматизировал данный процесс. Для этого в основной системе создадим в удобном для нас месте папку, а в ней 3 файла для запуска:
-
config.xlaunch — файл настроек для VcXsrv
x-run.vbs — WSL всегда запускается со своим эмулятором терминала, если его закрыть — завершатся все его дочерние процессы. Чтоб данное окно не мозолило глаза, неплохо его запускать скрытым. К счастью в Windows встроен интерпретатор VBScript, который позволяет это сделать в одну строчку:
Поясню, что здесь происходит. Мы говорим VBscript выполнить приложение wsl с параметром cd /home/user1; DISPLAY=:0 LANG=ru_RU.UTF-8 su user1 -c xfce4-session , папка запуска нам не важна, поэтому пустая строка, действие open — запуск, 0 — скрытый режим. Самому wsl мы отдаем команду на выполнение: переход в папку пользователя, затем с установкой переменных окружения DISPLAY (дисплей X-сервера) и LANG (используемая локаль) мы запускаем xfce4-session от имени нашего пользователя user1 (благодаря команде su)
Далее можем запустить наш start.bat и настроить панель Xfce под себя. Замечу, что здесь я наткнулся на еще одну проблему — панель прекрасно отображается поверх всех окон, но вот выделить себе место, как панель на рабочем столе Windows она не может. Если кто знает решение данной проблемы, поделитесь в комментариях.
Ну и под конец данной части, скриншот моего рабочего стола:
Взаимодействие окружения Windows и окружения подсистемы Linux
Запускать Linux приложения напрямую из Windows можно через те же 3 команды — bash, wsl или ubuntu. Не забываем, что по умолчанию запуск идет от root, поэтому стоит понижать привилегии через su , так же нужно не забывать передавать переменную окружения DISPLAY=:0 если приложению требуется X-сервер. Так же нужно менять папку, из которой должно работать приложение, через cd внутри WSL. Пример, посчитаем md5 для file.txt на диске D средствами Linux'овой md5sum:
Доступ к файловой системе Linux так же имеется, лежит она в %localappdata%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs . Читать таким образом файлы можно, а вот писать — не желательно, можно поломать файловую систему. Думаю проблема в том, что Windows не умеет работать с правами и владельцами файловой системы Linux.
Из Linux так же можно запускать Windows приложения. Просто запускаем exe-шник и он выполнится в основной системе.
Диски Windows монтируются в /mnt в соответствии со своими буквами в нижнем регистре. Например диск D будет смонтирован в /mnt/d . Из Linux можно свободно читать и писать файлы Windows. Можно делать на них симлинки. Права у таких файлов всегда будут 0777, а владельцем будет root.
Сетевой стек у подсистемы общий с Windows. Сервер поднятый в Linux будет доступен на localhost в Windows и наоборот. Однако unix-domain-socket для Windows будет просто пустым файлом, работать с этим можно только внутри Linux. Выход во внешнюю сеть у Linux так же есть, в том числе можно слушать порты, если этого не запрещает фаервол.
ifconfig в Linux и ipconfig в Windows выдают одинаковую информацию о сетевых интерфейсах.
Из диспетчера задач Windows можно спокойно прибить процесс внутри подсистемы Linux. Однако Linux увидит только свои процессы.
Особенности, ограничения и подводные камни
Ядро Linux в WSL не настоящее. Это всего лишь прослойка-эмулятор, которая часть Linux-специфичных задач выполняет сама, а часть проксирует напрямую в ядро winNT. Большая часть api в нем реализована, но не все. Свое ядро собрать не получится, как и не получится подключить модули ядра (.ko, Kernel Object).
Init процесс у WSL тоже свой и заменить его, например, на system.d не выйдет. У меня давно есть желание написать менеджер демонов на go, который бы работал с файлами юнитов system.d и предоставлял бы схожий интерфейс, да все руки не доходят.
Нет поддержки openFUSE, соответственно примонтировать виртуальную или удаленную файловую систему не получится. Так же нельзя сделать mount из файла, mount вообще ничего кроме bind здесь, похоже, не умеет.
Так же нет никакой возможности разбить файловую систему Linux на несколько разделов/дисков.
Прямой доступ к железу практически отсутствует. Все таки мы находимся в песочнице Windows, а не в полноценном Linux. /dev и /sys заметно пустуют, в них лишь проц да виртуальные устройства. Доступ к GPU — только через X-сервер, напрямую — никак, так что нейросети обучать придется в Windows.
В JS разработке столкнулся с тем, что electron.js отказался запускаться в WSL, пришлось дублировать окружение node.js в Windows.
Итоги
Статья получилась довольно длинной, надеюсь, что она окажется еще и полезной.
WSL для меня лично оказался инструментом вполне юзабельным, решающим мои задачи fullstack backend разработчика. Виртуалка с Linux за полгода так и не понадобилась. По общим ощущениям Windows+WSL намного функциональнее, чем Linux+Wine.
Пока писал статью, обнаружил, что в Microsoft Store появилась сборка WSL с Debian 9.3, данный дистрибутив мне более симпатичен, чем Ubuntu, поэтому буду пробовать ставить.
Читайте также: