Графический интерфейс windows для linux

Запуск графической оболочки Linux Bash в Windows 10

В первую очередь необходимо установить Linux Bash в Windows 10. Инструкция по установке Linux Bash описана в следующей статье:

Для установки Ubuntu из Microsoft Store предлагаем выбрать версию Ubuntu 18.04 LTS в операционной системе Windows 10 May 2019 Update (версия 1903).

Параметры установленного дистрибутива Linux расположены в меню Windows Параметры > Приложения > Приложения и возможности. Из списка установленных программ выберите Ubuntu 18.04 и нажмите на Дополнительные параметры.

Так же открыть параметры Ubuntu 18.04 можно нажав правой кнопкой мыши по значку Ubuntu 18.04 в меню Пуск, в открывшемся меню выбираем Дополнительно > Параметры приложения.

Параметры установленного Линукс дистрибутива в Windows 10 (версия 1903):

Расположена файловая система Ubuntu на локальном диске С по следующему адресу:

Таким образом можно получить доступ к нужным файлам и папкам Linux.

После установки и первоначальной настройки системы нужно обновить систему и установить рабочее окружение.

Обновление системы и установленных пакетов:

Установка рабочего окружения и пакета программ Ubuntu (Gnome):

Меняем права доступа к папке кэша:

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

VcXsrv Windows X Server

Таких программ несколько. Предлагаем выбрать активно развивающуюся программу VcXsrv Windows X Server. Устанавливаем с настройками по умолчанию.

После запуска программы VcXsrv Windows X Server в окне Display Settings есть выбор отображения интерфейса оконной системы Linux. В нашем случае отлично работал вариант с большим оконным режимом (One large window). Там же в настройках Display number выставляем значение 0 (если возникнут проблем с запуском интерфейса, то значение нужно изменить, кроме того нужно будет изменить и значение в команде запуска).

Далее оставляем настройки по умолчанию. По окончанию настройки у нас запустится пустое окно.

Переходим в запущенную Linux систему, у нас она открыта в виде командной строки и вводим следующие команды:

Для дальнейших запусков графического окружения нужно вводить команду выше, при этом программа VcXsrv Windows X Server должна быть предварительно открыта.

Также создайте сценарий оболочки start-ubuntu (имя файла необязательно):

Сделайте скрипт оболочки исполняемым:

Запустить скрипт оболочки:

Известные проблемы и их решения

Из недостатков, с которыми столкнулись, отметим следующие: проблема с правами доступа различных приложений и системных функций. В качестве решения можно систему запустить с правами root. В целях безопасности не рекомендуется запускать систему с полными правами администратора, но если есть в этом необходимость, то запустить можно следующим образом: после того как открыли приложение VcXsrv и Linux систему, которая открылась в виде командной строки, нужно ввести команду: sudo su , затем вводим команду для запуска графического окружения:

Теперь нам будут доступны ранее неработающие функции системы, например, русификация и работа некоторых расширений Gnome.

Так же мы столкнулись с тем, что предустановленный браузер Firefox не устанавливает дополнения. Можно воспользоваться другим браузером, например, браузером Opera. В режиме суперпользователя запускать его нужно с помощью терминала командой: opera --no-sandbox.

Система установится на английском языке, установка другого языка доступна только под системой с правами администратора (sudo su). Установить русский язык в систему можно следующими командами:

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

Microsoft WSL или пингвин в окошке

Сайт KV.BY опубликовал статью о подсистеме Windows Subsystem for Linux (WSL), предназначенной для запуска Linux-программ в ОС Windows 10. Упор в статье сделан на последнюю версию этой подсистемы WSL2.

Windows – это Linux

Как говорили древние греки, всё меняется и ничто не остаётся на месте. Многие ещё помнят те времена, когда операционная система GNU/Linux была для «Майкрософт» чем-то вроде красной тряпки для быка. Бывший руководитель рэдмондского гиганта Стив Балмер называл всё, что связано с детищем Линуса Торвальдса, не иначе как «раковой опухолью». Однако прошло не так уж и много времени после таких заявлений, и вот уже как три года корпорация «Майкрософт» является платиновым участником консорциума Linux Foundation – организации, занимающейся развитием и стандартизацией ядра Linux.

Читайте также:  Установить беспроводной дисплей windows 10

Мало того, в операционной системе Windows 10 появилась специальная программная подсистема Windows Subsystem for Linux (WSL). Эта подсистема позволяет в Windows запускать программы GNU/Linux в двоичном исполняемом формате ELF-64. В результате пользователям десятых «Форточек» становятся доступно программное обеспечение Linux-дистрибутивов, начиная со скриптов Bash и заканчивая службами наподобие Docer.

Поводом для произошедших перемен в политике корпорации, без сомнения, стала популярность мобильной операционной системы Android, основанной на ядре Linux. Но причина, по которой в Рэдмонде произошёл поворот в сторону Linux-сообщества, лежит не только в области мобильных операционных систем.

«Developers, developers, developers!»

Существует два способа запускать Linux-приложения в Windows. Первый способ предполагает перекомпиляцию Linux-программ в исполняемый формат exe-файлов. Благо большая часть программ Open Source является кроссплатформенной и свободно собирается под разные операционные системы. Примером первого способа можно назвать проекты Cygwin или MinGW – коллекции специально скомпилированных для Windows приложений UNIX.

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

Но, прежде чем мы рассмотрим особенности второго способа, отметим, что в Windows 10 присутствует и первый способ. С недавнего времени тихо и незаметно в штатный состав «Десятки» входят три классические консольные UNIX-утилиты curl.exe, tar.exe, openssh.exe.

Выбор этих консольные утилит явно указывает на тот класс пользователей, ради которых «Майкрософт» и затеяла всю эту эпопею с запуском в «Форточках» программ Linux. Программы Curl, tar и openssh – популярные инструменты у веб-разработчиков. Именно для них и для веб-разработки создают в Рэдмонде подсистему Windows Subsystem for Linux.

Как правило, веб-разработчики используют для своей работы Windows. Однако их клиенты и заказчики в основном пользуются хостингом на Linux. И для веб-разработчики в среде Windows приходится использовать что-то вроде Denver и XAMP, или же запускать программы виртуализации VMware и VirtualBox, или же использовать на компьютере двойную загрузку с системами Linux. Или уже наметилась устойчивая тенденция для веб-разработки переходить на Mac OS, в которой имеется полноценное POSIX-ядро, позволяющее без лишних телодвижений запустить все консольные скрипты и программы, необходимых для современных веб-кодеров.

Поэтому основная цель WSL – удержать веб-разработчиков на Windows, предоставив им удобную и комфортную среду запуска всех консольных скриптов, программ и примеров с GitHub и StackOwerflow. (Кстати GitHub с недавних пор тоже под контролем Microsoft).

Главная особенность WSL

Технологиями виртуализации давно никого не удивишь. Если подсистема WSL основана на технологиях виртуализации, то возникает основной вопрос: чем Windows Subsystem for Linux лучше того же VirtualBox?

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

Ниже рассмотрим эту бесшовность и прозрачность более детально. Все инструкции в этой статье для работы с WSL актуальны для сборки Windows 10 18917 и более поздних версий. Проверить номер своей сборки Windows 10 можно командой «ver» в приложении «Командная строка».

Настройка WSL

Настраивать подсистему WSL практически не нужно. Виртуальная среда WSL в процессе работы настроится автоматически и незаметно для пользователя.

Единственное, нужно проверить включение компонентов «Подсистема Windows для Linux» и «Платформа виртуальной машины» через «Панель управления -> Программы и компоненты -> Включение или отключение компонента Windows».

WSL работает только в 64-разрядных версии Windows 10, начиная с редакции «Домашняя» для процессоров x64 и ARM. Подсистема не работает в безопасном S-режиме Windows 10.

Загрузка дистрибутива

Как известно программы для Linux распространяются в составе дистрибутивов, наиболее популярными из которых можно назвать Fedora, Debian, Ubuntu, OpenSUSE. Поэтому чтобы начать работу с WSL следует загрузить и установить базовый набор приложений какого-либо дистрибутива и затем штатным менеджером пакетов установить нужные программы.

Читайте также:  Windows on external hdd

Дистрибутивы Linux для WSL устанавливаются прямо из магазина приложений Windows Store так же, как и программы Windows. По поисковому запросу «linux» в магазине появится список дистрибутивов для выбора. На текущий момент в магазине представлено уже около дюжины дистрибутивов. Выбираем нужный дистрибутив, – например Ubuntu-18.04, – и нажимаем кнопку «Получить».

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

Удаление дистрибутива происходит также как и удаление Windows-программ – через контекстное меню «плитки» дистрибутива в меню «Пуск».

Отметим, что в редакциях Windows 10 для предприятий, в которых нет Windows Store, дистрибутивы Linux для WSL можно скачать и установить посредством специальных команд Power Shell. В этой статье для краткости мы данный метод рассматривать не станем.

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

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

При первом запуске установленного дистрибутив откроется приложение «Командная строка», в котором запустится командный интерпретатор установленного дистрибутива – обычно это bash. Будет предложено подождать одну или две минуты для завершения установки. На последнем этапе после завершения установки необходимо создать новую учетную запись пользователя Linux-системы, который будет использоваться по умолчанию подсистемой WSL, и задать пароль. После чего с установленной системой Linux можно работать.

Запустить установленную систему Linux можно в приложении «Командная строка» с помощью команд «bash.exe», «wsl.exe» или « .exe» (не во всех дистрибутивах работает). Самой продвинутой является команда «wsl.exe», так как с её помощью доступны все возможные операции с подсистемой WSL.

Список установленных дистрибутивов задаётся командой «wsl» с помощью опции «-l» или «—list»:

Установка дистрибутива по умолчанию, который будет запускаться командами «bash.exe», «wsl.exe» без параметров, происходит с помощью опций «-s» («—setdefault»):

Если для дистрибутива задано несколько учётных записей, то для запуска от имени определенного пользователя имеются опции «-u» («—user»):

Запуск определенного дистрибутива по названию с помощью опций «-d» («—distribution»):

WSL1 и WSL2

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

В первых версиях WSL пользователи столкнулись с неприятным фактом, что это обновление происходило очень медленно. Операция замены пары сотен мегабайт могла затянуться на долгое время. Резкое снижение производительности было характерно также и для других приложений, требующих большого числа файловых операций – Git, Node.js и других.

Такая низкая скорость файловых операций объяснялась тем, что первая версия WSL использовала эмуляцию ядра Linux на уровне API Windows. Также подсистема WSL эмулировала метаданные файловой системы дистрибутива Linux.

На практике оказалось, что такая эмуляция не обеспечивает высокую скорость файловых операций для систем Linux. Поэтому, начиная со сборки Windows 10 18917, используется новая архитектура WSL2, которая основана на технологиях виртуализации Microsoft Hyper-V. Другими словами теперь для каждого установленного дистрибутива Linux подсистема WSL запускает отдельную легковесную виртуальную машину и отдельный виртуальный диск. При этом для этой виртуальной машины используется настоящее ядро Linux, а не эмуляция на уровне системных вызовов Windows. В результате для WSL2 удалось повысить производительность файловых операций по сравнению с WSL1 на порядок.

На текущий момент в Windows 10 присутствуют обе версии подсистемы – и WSL1, и WSL2. Рекомендуется использовать WSL2.

Чтобы проверить, какие версии WSL использует каждый дистрибутив, используйте для команды «wsl.exe» опции «-l -v» («—list —verbose»):

Установить WSL 2 для отдельного дистрибутива можно опцией «—set-version»:

Чтобы задать WSL 2 по умолчанию для всех устанавливаемых в дальнейшем дистрибутивов Linux, используйте опцию «—set-default-version»:

Одиночное и смешанное выполнение программ

Самое важное и интересное в WSL – это одиночное и смешанное выполнение программ Linux из среды Windows и наоборот.

Чтобы выполнить какую-либо программу из установленного дистрибутива Linux, совсем не обязательно запускать терминальную сессию Linux. Можно просто передать имя Linux-программы в качестве аргумента для wsl.exe и она будет выполнена прямо в контексте командной строки Windows.

Читайте также:  Где лежат файлы журналов windows

При этом программа для Linux выполнится в том же каталоге, в котором находится интерпретатор «Командная строка», от имени пользователя WSL по умолчанию с правами вызывавшего её интерпретатора. То есть если «Командная строка» запущена с правами Администратора Windows, то и запущенная здесь программа для Linux будет иметь права Администратора.

Возможно и обратное – вызов двоичных файлов Windows из консоли Linux. Поэтому из командного интерпретатора Linux, например, набрав команду «notepad.exe» можно запустить «Блокнот», который будет запущен с правами активного пользователя Windows.

Мало того, можно объединять программы Linux и программы Windows через механизм конвейера pipe. То есть можно соединять выход Linux-программы с входом Windows-программы и наоборот.

Пример 1, cmd. Выход Windows-программы «dir» направляем на вход Linux-утилиты «grep»:

Пример 2, bash. Выход Linux-программы «cat» направляем на вход Windows-утилиты «findstr»:

Такая тесная интеграция программ Windows и Linux с помощью WSL позволяет, например, писать смешанные скрипты BASH и Power Shell. Или интегрировать инструменты Linux в средства разработки Windows.

Доступ к файлам

WSL предоставляет доступ из оболочки bash Linux ко всем дискам и всей файловой системе Windows. Локальные диски автоматически монтируются в каталог «/mnt». Например, диск «C:» монтируется как «/mnt/c».

USB-флэшки не монтируются автоматически в каталог «/mnt». Их нужно монтировать с помощью плагина drvfs. Например, монтирование флэш-диска H:

Файлы WSL-дистрибутивов Linux можно найти в папке «C:\Users\имя_пользователя\AppData\Local\Packages\». Они будут находиться в папках с названиями вида «CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc». Если используется версия WSL1, то файлы Linux-системы там будут находиться как есть в прямом доступе из Windows. Но категорически не рекомендуется их трогать в обход WSL, так как Windows не обработает специфические метаданные этих файлов.

В случае версии WSL2 в папке дистрибутива будет расположен файл образа виртуального жёсткого диска. Если в командном интерпретаторе запустить команду «explorer.exe .» с точкой в качестве аргумента, то откроется «Обозреватель» Windows, в котором отобразится файловая система текущего дистрибутива Linux как сетевой ресурс вида «\wsl$\ ».

Другими словами, передать приложению Windows какой-либо файл из WSL-дистрибутива можно по сетевому пути к этому файлу.

Сеть и сетевые приложения

Версия WSL1 использует IP-адрес Windows. Сетевой стек у подсистемы WSL1 общий с Windows. Сервер, поднятый в Linux, будет доступен на localhost в Windows и наоборот.

Если дистрибутив использует версию WSL2, то уже потребуется найти IP-адрес виртуальной машины, чтобы подключить дистрибутив по этому IP-адресу. Это можно сделать, выполнив в Linux-системе команду «ip addr» и через поиск строки «eth0» найти адрес по значению «inet».

Дальше можно в Linux запустить, для примера, http-сервер Python командой «python3 -m http.server» и обратиться к нему из браузера Windows по полученному IP.

WSL и программы с графическим интерфейсом

WSL — это средство, предназначенное для пользователей, которым требуется запускать программы командной строки Bash и Core Linux в Windows. WSL не имеет штатных средств для запуска приложений Linux с графическим интерфейсом GNOME, KDE и т. д.

Тем не менее, энтузиасты вполне успешно запускают графические программы в WSL, устанавливая и запуская сторонние порты X-сервера для Linux – например VcXsrv.

В сети Интернет немало инструкций по запуску в WSL графических Linux-программ. Большая часть этих инструкций написана для WSL1, но с появлением второй версии подсистемы они устарели. Ниже последовательность действий для настройки X-сервера VcXsrv для подсистемы WSL2.

  1. Находим в Сети, скачиваем и устанавливаем X-сервер VcXsrv.
  2. В WSL-дистрибутиве через пакетный менеджер устанавливаем какую-нибудь программу с графическим интерфейсом – например, Nautilus GNOME.
  3. В настройках брандмауэра Защитника Windows «Пуск > Параметры > Обновление и безопасность > Безопасность Windows > Брандмауэр и защита сети» отключаем брандмауэр для опции «Общедоступная сеть».
  4. В Linux находим IP-адрес сервера имен nameserver, прописанный в «/etc/reslv.conf».
  1. Экспортируем переменную DISPLAY со значением nameserver из reslv.conf и номером экрана «0».
  1. Запускаем в Windows VcXsrv. Устанавливаем «0» для «Display number» и галочку для «Disable access control».
  2. В Linux из командной строки запускаем графическую программу.

Само собой, приведенный способ в запуска программ Linux с графическим интерфейсом в скором времени тоже устареет. Хотя бы потому, что подобный способ не соответствует главной задумке Windows Subsystem for Linux: использовать только штатные компоненты Windows и не требовать их сложной настройки.

Оцените статью