Сообщение корпорации Microsoft о нативной поддержке Bash on Ubuntu в среде Windows 10 наделало много шума. При этом компания решила не растягивать удовольствие ожидания для пользователей своей ОС, и выпустила Windows 10 Insider Preview Build 14316 с интегрированным Ubuntu спустя всего несколько дней после анонса. Полноценное крупное обновление Windows 10 с новой возможностью будет выпущено летом, а пока можно изучить возможности системы в превью билде.
Пользователи, которые опробовали новинку, сообщают, что все действительно работает. При этом возник вопрос — можно работать только в командной строке, или же есть какой-то способ запустить десктопное приложение с графическим интерфейсом? После проверки у ряда пользователей получилось запустить кое-какие десктопные Linux приложения. Официально заявляется, что такой возможности нет, но пользователь Reddit с ником w2qw нашел способ запуска «иксов» в Windows 10, что открывает возможность установки и работы с VIM и Firefox.
Конечно, тот же Firefox работает и под Windows (ну еще бы он не работал), но если есть необходимость запуска приложений, работающих только в Linux, этот способ может помочь. Так, нужно использовать Xming X Server для Windows, это позволит запустить «иксы» вне bash. А затем просто запускаем приложение:
DISPLAY=:0 firefox
Работать все это будет чуть медленнее, чем нативное приложение, но производительность все равно остается приемлемой.
Еще один пользователь Reddit, starlig-ht заявил, что ему удалось запустить Xfce.
Напомню, что для включения Bash on Ubuntu в среде Windows 10 Insider Preview Build 14316 необходимо включить Developer Mode в настройках Update & Security. Как только пользователь это сделает, можно вызвать командную строку Windows, прописать «bash», и выполнить загрузку Ubuntu (этот процесс изображен на скриншоте в анонсе).
Комментарии (90)
Abiboss
13.04.2016 12:01+3Хм, после окончательного релиза через Windows Update будут распространяться обновления, в том числе, для встроенного Linux
radiolok
13.04.2016 15:20+16… одно из которых предложет обновить встроенный Linux до Windows 10…
Abiboss
14.04.2016 10:19Однажды, хотя, быть может, такой день и никогда не настанет, кто-нибудь в Microsoft по ошибке выпустит какой-нибудь первоапрельский пакет обновления, собранный исключительно для внутренних нужд, который заместит Windows 10 встроенным Linux
Shished
13.04.2016 12:13+7Запуск xfce не относится к новости. пользователь Reddit пересобрал все компоненты под cygwin.
mwambanatanga
13.04.2016 12:15+15Еще один пользователь Reddit, starlig-ht заявил, что ему удалось запустить Xfce.
По-моему, то, что он сделал:
# uname -a
CYGWIN_NT-10.0 BETELGEUSE 2.4.1(0.293/5/3) 2016-01-24 11:26 x86_64 Cygwin
отличается от того, о чём говорит Микрософт.
Andrusha
13.04.2016 12:25+7"… но пользователь Reddit с ником w2qw нашел способ запуска «иксов» в Windows 10, что открывает возможность установки и работы с VIM и Firefox"
Обычный vim запускается безо всяких иксов, а на первом скриншот GVim.TsukinoMai
13.04.2016 13:49+3Который вполне существует и под Windows. Так что запускать его таким изощрённым способом — занятие весьма странное.
Andrusha
13.04.2016 15:32Да вообще сложно представить пример ПО с графическим интерфейсом, для которого пригодится эта схема — сейчас почти все популярное на GTK и Qt под Windows собирается. Единственное, что заманчиво выглядит — форвардинг иксов через SSH.
Lsh
13.04.2016 15:44+4Единственное, что заманчиво выглядит — форвардинг иксов через SSH
Так это и так давно можно. Putty+X-сервер-под-винду.Andrusha
13.04.2016 18:11Заманчиво как нативное решение: либо сразу поставил, либо чуть позже набрал что-то вроде pkgmgr /iu:«UbuntuLinuxEnvironment». Так-то я себе раньше cygwin на рабочую windows-машину ставил.
ainu
13.04.2016 13:37+2Запустить X-сервер (который Xming) можно уже сейчас, а само приложение будет крутиться например в coLinux.
Другое дело, X-клиент (понятия сервер-клиент немного перепутаны, да), то есть тот самый X org, от которого например зависим gde и firefox, должен работать в ubuntu окружении. И пока подтверждения тому, что в ubuntu-в-windows будет X (не сервер, который XMing, рисующий графику а именно иксы) — не было. На скриншотах Цугвин, как правильно выше заметили. Для запуска ssh или mc или ruby иксы не нужны.
Отвечая на вопрос, а откуда у него иксы (коммент с реддита):
Just that the display isn't available.
I have a Cygwin X-server running on :0.0 according to Cygwin. I must admit that I don't know if I need to configure or launch x-org any differently than using the XWin init script.
По сути как я понял приложение использует дисплей :0 из цугвина. Ну и X server оттуда же или Xming.
Кроме того, регулярно крашится frefox, не работают такие вещи, как nautilus и gedit. О том, что будут запускаться десктопные приложения, говорить рано. А если это будет ещё и через Xming, это будет ооочень медленно (для терминалов не заметно, а для игрушек-браузеров уже критично).Lsh
13.04.2016 13:58Вроде как, Х-сервер из Cygwin поддерживает MIT-SHM (для этого в Cygwin есть специальный сервис). Но память у подсистем раздельная. Если это изменится в будущем, то вполне может заработать с нормальной скоростью при использовании обычного Х11 сервера в винде.
Radjah
14.04.2016 14:02Зачем собирать X-сервер в Cygwin, когда есть тот же VcXsrv, который от Cygwin никак не зависит?
ainu
14.04.2016 17:08Может, тот умеет больше, чем альтернативы, или стабильнее подключается.
Идеально конечно, если каноникл специально под этот проект напишет и отладит свой сервер (который не эльф-файл будет, а windows-сервис) или форкнет существующий. Идеально если напишут транслирование команд X сервера в directX, хотя в это не сильно верится.
Lsh
13.04.2016 13:54+5ШОК! Сенсация! Реализация Х11 сервера есть и под Windows!
Мне кажется, что ЦА этой подсистемы по умолчанию в курсе таких вещей.
Лучше бы кто сказал, почему многие приложения падают с жалобами на Х-ы.
см. выхлоп в терминалеainu
13.04.2016 14:48Для того, чтобы X сервер работал, нужен X.org клиент в системе, который не факт что в убунте есть.
Lsh
13.04.2016 15:12o_O Шо? Какой клиент?
Клиентов там полно — все графические приложения.ainu
13.04.2016 15:24Терминология немного страдает у иксов. X сервер — это Xming, который подключается к Xorg. Я Xorg клиентом назвал, не знаю как назвать, как не клиентом. Ну, подсистема, не знаю. Не суть в этом.
Lsh
13.04.2016 15:43+2Да, терминология страдает. =)
Есть Х сервер, который работает по протоколу Х11. У него есть много реализаций: Xorg, Xming, X/Cygwin и т.д. (есть даже коммерческие за деньги).
К серверу подключается клиент по протоколу Х11. Это любое приложение: калькулятор, файловый менеджер, почтовый клиент, т.п.
X сервер — это Xming, который подключается к Xorg.
Наоборот, клиент подключается к серверу, именно он выступает инициатором. Xorg и Xming, оба являются серверами. Поэтому тут написано вообще чего-то непонятное.
нужен X.org клиент в системе, который не факт что в убунте есть.
Клиентов в системе полно. Это любое приложение с графическим интерфейсом.
Никакого сервера со стороны Ubuntu не надо. Это не RDP и не VNC.ainu
13.04.2016 16:36+4Всё правильно пишете, но я не совсем про это говорю. Попробую по другому.
Допустим, имеем голую убунту, без иксов. Например, ubuntu server. Хотим поставить, например, htop, mc или vim — без проблем, apt-get и пошёл. Однако когда мы пытаемся сделать apt-get install firefox, мы получим зависимость от libxcursor1, который зависит от http://packages.ubuntu.com/ru/precise/libx11-6, которая так и называется — X Client Library, которая суть клиент X, имплантированное в приложение, которое подключится к X серверу на другом конце планеты чтобы нарисовать кнопочку.
И этот самый libx11-6 (который я называю клиентом а не сервером, так как он и есть клиент, и именно его я назвал термином xorg, что не совсем верно, т.к. это только часть xorg) надо устанавливать в систему в виде пакета. И вот теперь о чем я и говорил — не факт, что этот пакет нормально встанет в систему. Например, если я на виртуальном или выделенном сервере поставлю firefox, я смогу через Windows по SSH соединяться и этот firefox смотреть. Но некоторые виртуальные серверы (не выделенные) на попытку установить firefox, спотыкаются на пакете libx по разным причинам, которые крутятся около «братан, извини, видеокарты нет у меня» или около того (хотя видеокарта ему не нужна). И не факт, что apt-get install libx11-6, запущенная на Windows 10 сработает нормально, запустит и установит всё что надо.
Мою фразу «нужен X.org клиент в системе» прошу читать так:
«в системе должен быть установлен пакет X Client Library, он же libX11, являющийся частью x.org (не путать с x.org Server). Это необходимо для запуска программ, которые при компиляции использовали встроенный внутрь этих программ клиент X (#include <X11/Xlib.h>). и используют для запуска соответствующую библиотеку. Это не нужно для запуска программ, которые используют альтернативные реализации X клиента».
Все мои упоминания xorg прошу читать как «xlib». Хотя мне кажется, xorg клиент — это xorg клиент (обычно библиотека), xorg сервер — это xorg сервер и тут путаницы быть не должно.ainu
13.04.2016 16:40И судя по выхлопу в консоли и ошибкам в самом первом комментарии, эта самая libX и вызывает X window system error.
Lsh
13.04.2016 17:11Теперь понятно. Просто как-то мудрено было написано. И слова «библиотека» не было. Да и я не соглашусь всё равно с такой терминологией. Именно потому, что клиенту не обязательно использовать эту конкретную библиотеку, тут никакой привязки нет. Например, есть XCB. Ну ладно, фиг с терминологией.
Т.е. вы хотите сказать, что за libX11 не подтянулись какие-то зависимости, поэтому оно работает криво? Не очень похоже на это. Оно работает через раз. А так, оно бы не работало вообще из-за отсутствия какой-либо библиотеки. При установке пакетный менеджер не ругался. И видеокарта тут никакая не нужна. Вот есть же Xvfb, работает без видеовыхода, соответственно и клиенты никакой карты не требуют. Кроме того, я пробовал запуск графических приложений на Ubuntu Server с выводом через SSH на Х-сервер (сейчас не помню, какой именно стоял), который работал на винде. Всё при этом работало без проблем.
Лично мне кажется, что криво реализован какой-нибудь вызов ядра, связанный с работой с памятью или сокетами. Поэтому приложения запускаются через раз.
Тут, конечно, надо углубиться в отладку. Но у меня нет достаточного скила, да и долго это.
oWeRQ
13.04.2016 16:35X11 сервер должен быть в Windows, в Ubuntu он есть, но работать не будет, по крайней мере пока ядро/прослойка не научится работать с видео. X11 клиент в Ubuntu будет работать и спокойно выводить на удаленный сервер, который запущен в Windows.
Lungo
13.04.2016 13:57Напомню, что для включения Bash on Ubuntu в среде Windows 10 Insider Preview Build 14316 необходимо включить Developer Mode в настройках Update & Security. Как только пользователь это сделает, можно вызвать командную строку Windows, прописать «bash», и выполнить загрузку Ubuntu (этот процесс изображен на скриншоте в анонсе).
Кроме этого, нужно еще установить компонент Linux через соответствующий пункт панели управления
ZaDOOMchiviy
13.04.2016 14:07Теперь можно будет запустить компилятор Crystal под Windows не дожидаясь официальной поддержки))
hdfan2
13.04.2016 14:11+24У нас был bash, grep, awk и целое множество других утилит всех сортов и расцветок, а также vim с emacs'ом. Не то что бы это был необходимый запас для работы в Windows. Но если начал использовать в нём Linux, становится трудно остановиться. Единственное что вызывало у меня опасение — это иксы. Нет ничего более беспомощного, безответственного и испорченного, чем GUI-шные программы. Я знал, что рано или поздно мы перейдем и на эту дрянь.
potan
13.04.2016 14:20-1Самое то главное — apt-get работает?
ainu
13.04.2016 14:49+1Да. Но не всё из apt-get-а запускается «из коробки».
ruikarikun
13.04.2016 17:37-1А что не работает? И какие зеркала используются?
ainu
14.04.2016 07:38+1Зеркала любые — система запускает родные линуксовые эльфы. Это не цугвин потому что.
Наутилус и gedit например не работают — в том же реддите отписывались. Ну и часть программ, использующие специфично линуксовые вызовы ядра. Рискну предположить, что docker не запустится. Вне зависимости то зеркал.
iassasin
13.04.2016 15:35+1Вроде как да, в статье с новостью о конференции даже скриношты были с запущенным apt-get.
wOvAN
13.04.2016 17:57Ставил Midnight Commander, запускается работает, но не распознает многие клавиши и тупит при листинге каталогов.
Lsh
13.04.2016 18:37Да, терминал-то убогий.
3al
14.04.2016 13:59А в console2 или, скажем, mintty из cygwin работает?
Lsh
14.04.2016 14:56Нет, bash подсистемы не запускается. Пишет Error: 0x80070057.
Aller2TeaM
16.04.2016 23:45+1Где-то в соседней теме было: Дабы не вылезала ошибка: переключаешь (!)системный(!) язык на английский. Запускаешь bash. После установки Ubuntu ставишь обратно системный язык на русский.
ainu
14.04.2016 17:11+1Да это вылечится если например появится работающий ssh и подключаться через putty к localhost — не страшно.
RicoX
13.04.2016 14:38Интересно получится ли загнать vlan внутрь и распаковать на linux, на win это часто все еще проблема на многих сетевых без специального драйвера.
ainu
13.04.2016 14:53+6Сеть используется не в линуксе. Сеть используется та же самая, что и в Windows. Просто вместо ядра linux используется ядро Windows. Это не запуск ядра linux. Это запуск linux программ в ядре Windows, через трансляцию системных вызовов. Как в Wine — у него нет отдельного виртуального диска, он использует обычный.
Если подключить Windows к сети, то ping 8.8.8.8 в этой же сети заработает. Само соединение будет делать Windows. Если IP компьютера 192.168.0.33, и в ubuntu установить apache на порт 80, то по адресу http://192.168.0.33:80/ откроется apache.LexS007
16.04.2016 00:22>Это запуск linux программ в ядре Windows
Cледом за Debian GNU/kFreeBSD и Debian GNU/Hurd теперь ждем Debian GNU/NT?
camelos
13.04.2016 15:05+4открывает возможность установки и работы с Firefox
Крутяк! Наконец-то смогу поставить лисичку на виндовую машинку.
По теме. Лучше бы наоборот. Мне катастрофически не хватает некоторых win-приложений на linux и под wine они не взлетают =( Использовать виртуалку не всегда удобно.
burivuh26
13.04.2016 15:08Насчет активации режима убунты — когда в командной строке пишется bash — должен быть английский язык по-умолчанию в системе. С русским убунта не загружается. Потом, после перевода системы обратно на русский все работает
viru0
13.04.2016 18:41-3Ключевой вопрос — зачем?
Используешь утилиты которые только в linux, ставь linux (иль купи Mac)
Используешь windows софт, нафег тебе linux.
Но с другой стороны чем больше возможностей тем лучше.
saboteur_kiev
13.04.2016 18:48+2Люто жду, когда в windows появится родной штатный cron и sshd сразу в bash, вместо этого таск шедулера и plain text telnet в cmd
lostmsu
13.04.2016 18:58WinRM
saboteur_kiev
14.04.2016 01:07и зачем? почему бы не одним скриптом через баш опрашивать и win и linux и mac и unix машины?
keysi
13.04.2016 21:30-2Для полного счастья осталось выяснить, что приложения скомпилированные под nix, запущенные таким образом, работают быстрее чем эти же приложения под win.
robert_ayrapetyan
13.04.2016 23:15+4Лет через 5, ждем Windows на ядре Linux. Эппл сразу не стал выпендриваться
rPman
14.04.2016 00:32-4Лет через 5, ждем Windows на ядре Linux
Откройте для себя ReactOS, здравствовать и процветать этому проекту.
sweetbrick
14.04.2016 00:07Я так понимаю, что о запуске .xzm модулей и установке линуксовых драйверов речь не идет?
ainu
14.04.2016 07:45Драйвера как часть ядра не используются (т.к. ядра нет). Используются драйвера из Windows. Да и смысла нет — в целом для Windows драйверов больше. Когда в этом линуксе запускается, например, mc, не используется: виртуальная память, ядро, CHROOT, init, драйвер диска, драйвер сети, сетевая подсистема. Запускается только mc + транслятор вызовов, и всё.
Lsh
14.04.2016 15:09Смысл очень даже есть. Например, файловые системы.
ainu
14.04.2016 17:14Ну это (согласно идеологии получившейся) надо для Windows сделать драйвер для альтернативных файловых систем, и из bash они станут доступными. Иначе (если модули и драйверы из линукса городить) тот же colinux/andLinux гораздо удобнее выйдет (и кстати, в них производительность тоже не проседает согласно бенчмаркам, так как это не совсем виртуалка, только оперативку много ест).
Samogonshik
14.04.2016 12:45+1А KDE встанет?
Lsh
14.04.2016 15:10Сейчас проблема с запуском Х-приложений. Некоторые падают. Как перестанут, то должно более или менее. Какие-то системные части, связанные с оборудованием, естественно отвалятся.
SunX
14.04.2016 16:01+1Кде есть (ну так скажем 4я версия, про 5ю не знаю) и нативная под Винду. Правда на мой вкус гадость редкостная оказалась.
rPman
14.04.2016 15:46+1User Mode Linux запускается? Это фактически будет coLinux только с другой тсороны, и ч64 поддержка появится :)
Lsh
14.04.2016 17:45И чем эта куча наслоений будет лучше виртуалки?
rPman
14.04.2016 19:59UserModeLinux (как и CoLinux или Jail, Chroot, LXC, OpenVZ,..) это не виртуалка в обычном смысле а прослойка к системным вызовам, т.е. если у вас числодробилка, использующая процессор в user space то у вас не будет накладных расходов за использование виртуальной машины (в отличии от виртуализации, даже с использованием аппаратной поддержки) или они будут минимальны.
Но самое главное, UML виртуалка умеет блочные устройства, т.е. есть возможность смонтировать раздел с шифрованием, и хост система не будет иметь к нему доступа.
BUSHA
15.04.2016 14:26Немного не в ту степь, но вспомнился старый анекдот из одной строки:
apt-get install windows
VBKesha
Теперь Wine можно будет запустить под Win
EminH
ага, и из под Wine запустить Internet Explorer :)
adm_88
Кстати, развивая мысль — Майкрософт тоже должен поделиться с убунтой чем-то. Ждем Internet Explorer в 16.10 из коробки и без wine?
KvanTTT
Wine под Win — это Win.
JuniorIL
Встроенный эмулятор для старых игрушек? Вот это Win!
qw1
Где-то мне встречались нативные сборки WINE под Windows, так что можно запускать их без лишнего слоя.
nadayop
А кто-нибудь вообще это пробовал?
Эта нативная сборка выглядит, как набор библиотек, которые якобы нужно положить в папку с программой.
У меня так и не получилось ничего запустить.
Хочу с помощью wine под win запустить несколько копий одного приложения, которое не умеет несколько копий, но имеет поддержку wine
В ubuntu очень удобно это делать в PlayOnLinux.
Хотя м.б. мне стоит копать в сторону песочниц под win, но тут тоже немного рабочих вариантов.
JuniorIL
Del