Пользователи экспериментальной прослойки WSL (“Windows Subsystem for Linux”), намеченной для включения в основной состав Windows 10 в августовском обновлении, обнаружили, что её возможности значительно шире заявленных функций. Напомним, что прослойка WSL обеспечивает трансляцию системных вызовов Linux в системные вызовы Windows и позиционируется как средства для запуска консольных приложений Linux в Windows. Энтузиасты выяснили, что возможностей WSL уже вполне достаточно для запуска графических приложений, оконных менеджеров и целых рабочих столов.
В частности, продемонстрирован успешный запуск рабочих столов Unity и Xfce в Windows 10 с установленной прослойкой WSL. В качестве X-сервера использован проект VcXsrv, в рамках которого развивается сборка сервера X.Org для Windows. Вместо VcXsrv также можно использовать Xming. Запускаемое окружение пока не лишено недоработок – имеются проблемы с работой DBus, временами возникают крахи и отсутствует возможность корректного завершения сеанса (для выхода используется принудительное завершение compiz). Программы запускаются только через панель. Для запуска терминала внутри рабочего стола Linux приходится открывать новый сеанс bash в Windows, экспортировать экран X-сервера и запускать gnome-terminal.
Для запуска рабочего стола Unity предложена следующая инструкция:
- Установить VcXsrv и открыть XLaunch:
- Оставить настройки по умолчанию и завершить конфигурацию, после чего открыть bash и в режиме командной строки при помощи штатной утилиты apt-get установить пакеты ubuntu-desktop, unity и compizconfig-settings-manager (ccsm). Затем экспортировать экран (export DISPLAY=localhost:0) и запустить ccsm.
- В ccsm следует активировать плагины, отмеченные на скриншотах (могут быть проблемы с отображением указателя мыши):
- Закрываем ccsm и запускаем compiz.
- Наблюдаем рабочий стол Unity (для Xfce следует установить и запустить xfce4-session вместо unity).
- Для решения проблем с DBus (крахи при обращении к DBus из приложения), вызванных отсутствием поддержки unix-сокетов, необходимо настроить в DBus использование TCP. В /etc/dbus-1/session.conf следует заменить строку “unix:tmpdir=/tmp” на “tcp:host=localhost,port=0”.