Как превратить linux в windows

Обновлено: 07.07.2024

Установка kali-undercover

Xfce Win 10

Стоит оговориться, что вполне возможно вам нужно будет установить пакет git. Сделать это можно следующей командой:

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

Xfce Win 10 2

Xfce Win 10 4
Xfce Win 10 5
Xfce Win 10 3

Теперь можно спустить панель вниз экрана, скачать и установить фоновое изображения Windows 10. В результате получиться примерно следующее:

Так же можно установить и темную тему. Для этого нужно скачать и выполнить следующие команды:

Xfce Win 10 9
Xfce Win 10 10

Xfce Win 10 11
Xfce Win 10 12

Удаление kali-undercover

Согласитесь, сходство довольно таки сильное. Да и в общественных местах не кто не усомниться что вы пользуетесь именно Windows а не Linux. Что собственно авторы и хотели сделать. А теперь давайте удалим все это. Делается это тоже довольно таки просто. Для удаления достаточно выполнить следующие команды:

На случай установки темной темы:

Xfce Win 10 13
Xfce Win 10 14

А на этом сегодня все. Как видите, не чего сложного. Да и сама тема довольно таки сильно напоминает нам Windows. Разработчики сделали большую работу над этой темой. Что в свою очередь заслуживает внимания.


Ubuntu является одной из наиболее стилизованных систем, которая имеет очень мощный набор визуальных эффектов, по своим свойствам превосходящим визуальные эффекты Windows 7 и Vista вместе взятым. Но если вам нравиться Windows 7 Aero или вы только приступили к изучению Linux и привыкли к меню Windows, то это не проблема. В этой статье будет рассмотрено способ как превратить интерфейс Ubuntu в интерфейс Windows 7.

Конечно-же линуксовый интерфейс Windows 7 не будет на 100% совпадать с его оригиналом в Windows, но зато он максимально к нему приближен.

Установка темы Win7.

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

sudo chmod 0755


Далее всплывет следующее окно, где вас будут спрашивать о том, хотите ли вы продолжать. Ответьте Yes. После этого терминал начнет загружать и устанавливать компоненты темы. Это может занять некоторое время, в зависимости от вашего интернет соединения. Затем вы увидите следующее окно:


Нажмите здесь ОК, затем вернитесь в терминал и введите следующую команду:

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


Теперь ваша Ubuntu выглядит как Windows. Правой кнопкой мышки сможете настроить свойства меню Пуск.

Для большей схожести вы можете установить на ваш Firefox тему Internet Explorer и изменить фон рабочего стола.

Удаление темы Win7.

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


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

Принудительное удаление темы Win7.

rm -rf .gnome .gnome2 .gconf .gconfd .metacity

Эта процедура восстановит все настройки Gnome по-умолчанию при следующем входе в систему.

Linuxfx 10 Review

После выпуска в Ubuntu 20.04 LTS, многие из его производных, таких как UMIX, Voyager, UbuntuDDE и Pop!_OS пришли в центр внимания, переключая свою базу до последней v20.04. Но одним из дистрибутивов, которому удалось привлечь мое особое внимание, был Linuxfx 10, который также основан на Ubuntu 20.04.

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

Linuxfx 10: двойник Windows

Как обычно, я начал с загрузки ISO-образа Linuxfx с официального сайта здесь. Затем, вместо двойной загрузки, я решил установить его на свой VirtualBox, чтобы безопасно поиграть с ним.

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

Linuxfx 10: двойник Windows

Войдя в меню загрузки

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

Здесь идет домашний рабочий стол

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

Установка Linuxfx 10

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

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

Установка Linuxfx 10

Следовательно, прежде чем приступить к установке Linuxfx, установите минимальные требования с минимум 4 ГБ ОЗУ и 16 ГБ свободного дискового пространства.

Теперь, когда установка начинается, она заканчивается в обычное время, примерно от 4 до 5 минут. До этого вы можете просматривать слайд-шоу, в котором описана цель Linuxfx.

когда установка начинается

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

Linuxfx был создан с целью поставки собственного программного обеспечения Linuxfx. Если вы посмотрите на мастера Helloa, вы заметите, что он позволяет вам установить платформу Sentinela для компьютерного наблюдения. Эта платформа содержит системы компьютерного наблюдения для контроля доступа людей, транспортных средств, обнаружения объектов и комплексного анализа данных.

Теперь, когда процесс завершен, вы можете войти в систему.

вы можете войти в систему

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

медиаплеером Kodi

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

Helloa - личный помощник

Хотя я ожидаю большего от Helloa, который проведет меня через систему, на данный момент она имеет очень ограниченные функции. Как говорит Рафаэль:

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

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

Как уже упоминалось в целях Linuxfx, он имеет собственное программное обеспечение для компьютерного наблюдения Sentinela, которое представляет собой систему управления видео с полным пакетом инструментов для компьютерного наблюдения.

Sentinela

Sentinela с головой окунет вас в мир компьютерного наблюдения, позволяя вам контролировать свое окружение с помощью лицевого считывания и ALPR (считывание с планшета), обнаружения объектов, пол, возраст и многого другого.

Даже отвечая на один из своих постов в FB, Рафаэль поделился картиной, которая уже распознает все модели камер и использует их в современных системах безопасности в Бразилии (происхождение Linuxfx).

системах безопасности

Тем не менее, вам может быть трудно использовать Sentinela, поскольку он доступен не для всех языков. Но Рафаэль также подтвердил, что вся языковая поддержка будет запущена в ближайшее время.

Приложение для Windows на Linuxfx

Не из коробки, но, безусловно, облегчает некоторые шаги для начинающего пользователя, который хочет запускать файлы Windows (.exe) в Linux. Вы можете запустить все поддерживаемые приложения или игры в WINE, просто щелкнув правой кнопкой мыши значок приложения и открыв его с помощью WINE.

с помощью WINE

с помощью WINE

Кроме того, на нем также предустановлены другие приложения для Linux, такие как GIMP, VLC, Inkscape, Simplescreenrecorder и Balena etcher.

приложения для Linux

Если вы хотите больше приложений, у вас есть магазин Ubuntu Software вместо магазина Windows. Поскольку Linuxfx основан на Ubuntu, стабильность, поддержка и безопасность приложений находятся на уровне.

магазин Ubuntu Software

Благодаря собственной универсальной системе управления пакетами Snap в Ubuntu вы также можете устанавливать любые версии приложений, используя пакет Snap.

системе управления пакетами Snap

Почему вы должны использовать Linuxfx?

Подходя к концу, возникает вопрос, что уже есть несколько популярных и мощных дистрибутивов Linux, тогда зачем мне использовать Linuxfx? Некоторые из вас могут подумать, что это Ubuntu Clone с темой Windows и WINE, установленной по умолчанию.

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

Идея Linuxfx заключается в том, чтобы облегчить переход людей с Windows 7. Люди, которые недовольны отсутствием безопасности и стабильности Windows 10, также подходят для Linuxfx.

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

настроив различные темы

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


По сравнению со сборкой Windows 10 14316, в которой впервые появилась подсистема Linux, в Windows 10 Anniversary Update подсистема выглядит вполне работоспособной и применимой на практике (настолько, насколько это возможно на данном этапе). Стабильность работы не вызывает нареканий. Забегая вперед, отмечу самое главное — в WSL появилась возможность запуска графического окружения и других GUI-программ (из числа DE это пока что Unity и Xfce), чего не было в предыдущих сборках Windows 10. Пока это было сделано неофициально, отдельными энтузиастами-линуксоидами, а не разработчиками WSL, но есть надежда, что официальная поддержка запуска полноценного Linux GUI в WSL лишь дело времени.

Unity поверх Windows 10. И это не эмулятор

Unity поверх Windows 10. И это не эмулятор

WARNING

Помни: сначала WSL необходимо установить. Из коробки подсистема не заработает.

WSL. Полгода спустя

Как я уже сказал, за последние полгода разработчики WSL успели основательно доработать эту подсистему, что упростило ее установку и настройку. А сама Microsoft успела стать «платиновым» членом Linux Foundation. Лет пятнадцать назад о таком нельзя было даже мечтать. В своем новом качестве Microsoft обязалась поддерживать все инициативы Linux Foundation в области открытого ПО и Linux и ежегодно перечислять в фонд 500 тысяч долларов США. Это, безусловно, большое достижение. В первую очередь для всего сообщества FOSS (free/libre and open-source software — бесплатное/свободное и открытое программное обеспечение). Через пятнадцать лет после того, как Стив Балмер назвал Linux раковой опухолью, новое руководство Microsoft оказалось куда более дальновидным и разумным.

Но вернемся к Windows Subsystem for Linux. Установка собственно Windows 10 проходит быстро и просто (почти как установка Ubuntu), и нет нужды описывать ее нашему читателю. Ты можешь выбрать либо обновление из предыдущей версии Windows 10, что займет в разы больше времени и сил, либо удалить предыдущую версию и установить систему с нуля (что я и сделал, и не из лени, а чистоты эксперимента для, чтобы система была, что называется, девственно-чистой). Автор этих строк вот уже больше года является бета-тестером Windows 10, и новые версии доступны ему бесплатно (от слова совсем). Если ты тоже бета-тестер, то у тебя должна быть лицензия на новые бета-релизы Windows 10.

В последнюю версию Windows, Anniversary Update 1607 — «юбилейное обновление» (непонятно, правда, что за юбилей у MS), WSL включается по умолчанию. Надо лишь активировать «Режим разработчика» в разделе «Обновление и безопасность», дождаться, пока система загрузит так называемый пакет разработчика, и перезагрузить компьютер. После чего запустить инструмент «Включение и отключение компонентов Windows», где выбрать пункт «Подсистема Linux для Windows. ». И снова перезагрузить компьютер.

В русской версии Windows 10 все немного иначе, но общий смысл такой же

В русской версии Windows 10 все немного иначе, но общий смысл такой же

Установка bash в WSL проходит без проблем (хотя и не так быстро, как хотелось бы). Мне не удалось с первого раза установить Unity: инсталлятор постоянно ругался на битые пакеты. Как оказалось, сначала нужно было обновить систему через штатный менеджер пакетов Ubuntu — APT. После получения обновлений установка пошла как по маслу и. продлилась на моем тестовом Dell Inspiron (не самый старый ноутбук, хотя и не топовый) около девяти с половиной часов. Почему — тайна сия мне неведома. Однако я заметил, что каждый Ubuntu-пакет устанавливался раза в три-четыре дольше, чем в «чистой» Ubuntu.

Инсталляция bash сводится к одной команде в консоли Windows 10

Инсталляция bash сводится к одной команде в консоли Windows 10

Перед установкой и включением WSL обязательно установи ВСЕ обновления Windows 10. Иначе могут возникнуть проблемы!

X Window, Unity и все-все-все

Установка bash — это лишь полдела. Дальше начинается самое интересное — установка и настройка X-сервера в Windows и запуск графических приложений, в том числе и Unity.

Задача эта нетривиальная, и то, что в итоге получится, трудно назвать полноценным рабочим столом Linux, но это только начало. Если ты хочешь использовать рабочий стол Ubuntu в Windows 10 в практических целях, то лучше воспользуйся любой из доступных в данный момент виртуальных машин, например VirtualBox от Oracle. А вот если ты просто хочешь повеселиться и прокачать свои навыки программирования для рабочих столов, то можешь попробовать запустить «нативный» Linux прямо в Windows 10. Для запуска Unity в WSL тебе для начала нужно установить (любым доступным способом, желательно легальным!) версию Windows 10 Anniversary Update за номером 1607. Причем не «домашнюю» версию, а самую что ни на есть «профессиональную», а то и вовсе «корпоративную». После установки обязательно обнови систему и двигайся дальше.

После двух (иногда трех) перезагрузок в процессе обновления, чтобы установить bash, необходимо запустить командную строку Windows (Win + R, ввести cmd — и будет тебе счастье в виде «консоли» Windows) и ввести. да, именно так: bash. Будет предложено согласиться с условиями обслуживания (обязательно прими их, выбора у тебя нет!) и загрузить Ubuntu. На этом этапе тебе нужно просто нажать клавишу Y. Объем загружаемых файлов будет не многим более одного гигабайта. Так что, если у тебя медленный интернет (да, бывает и такое), приготовься ждать. Затем начнется установка, которая, в свою очередь, тоже займет некоторое время, зависящее от производительности компьютера. И в конце всего этого ты попадешь в пространство пользователя (пользовательское окружение) Ubuntu 14.04, работающее поверх WSL.

Технически ты запустишь не Linux. Оно может выглядеть как Linux, но это не Linux. Дело в том, что пользовательское окружение (тот самый bash и прочие) работает не поверх ядра Linux, а внутри прослойки WSL. WSL использует специальный API и набор инструкций, для того чтобы все выглядело как в Linux, но все же это не то же самое. В основе всего этого все еще стоит ядро Windows NT. Это важно понимать, чтобы разобраться в том, как запускается и работает Unity в WSL.

После установки Ubuntu обязательно обнови ее, введя стандартные для этого команды:

VcXsrv — X-сервер для Windows

VcXsrv — X-сервер для Windows

Далее нужно снова вернуться в Windows 10 и установить совместимый с ней X-сервер. Для нашего эксперимента идеально подойдет VcXsrv. Его собрата Xming лучше не использовать, так как с ним, по неизвестной мне причине, возникает проблема: при попытке запустить любое графическое приложение для Linux все просто вылетает, в том числе и консоль Windows. Но это не все. Нужно сказать Ubuntu о том, что следует использовать именно X-сервер VcXsrv. Для этого введи в bash команду

Теперь любое графическое приложение Linux будет работать в Windows 10. Но только до закрытия bash. Чтобы WSL работала с графикой Linux все время, автоматически выбирая нужный для работы X-сервер, просто добавь указанную строку в конец конфигурационного файла bash (

VcXsrv — X-clock в Windows. Магия!

Firefox для Ubutnu работает отлично, почти не тормозит!

После этого ты сможешь запускать любые графические приложения Linux, например Firefox или любое DE. Однако они будут работать не так, как в Linux, падая каждую минуту, а некоторые, например Unity, и вовсе не запустятся. Проблема тут в том, что WSL не содержит в себе кода поддержки сокетов (универсальная концепция обмена данными между процессами в UNIX-подобных системах, подробности тут).

Самое главное — правильно указать дисплей!

Самое главное — правильно указать дисплей!

Этой командой ты изменишь конфигурационный файл D-bus так, чтобы отныне он использовал TCP вместо сокетов. В этом тебе поможет старый добрый потоковый редактор sed. Что в итоге? Приложения, требующие для своей работы D-bus, теперь запускаются и в WSL.
Следующий шаг — установка графических приложений Linux. Для начала сделай в консоли WSL вот это:

Долгая установка Unity.

Долгая установка Unity.

Первая команда установит основные графические компоненты Ubuntu, в том числе программы для конечного пользователя, такие как LibreOffice. Следующая команда устанавливает рабочий стол Unity. Две остальные команды поставят композитный оконный менеджер Compiz, использующий OpenGL, и графический фронтенд к нему. Именно его и нужно будет правильно настроить на следующем этапе.

Перед тем как начать пользоваться окружением рабочего стола Unity в Windows 10, тебе необходимо правильно настроить CompizConfig Settings Manager (CCSM). После установки всех этих приложений запусти из интерфейса bash CCSM и активируй в нем следующие плагины (все должно быть ИМЕННО так, как на скриншоте!):

В секции General (Общие):

  • Commands (Команды)
  • Composite
  • Copy to texture
  • OpenGL

В секции Desktop (Рабочий стол):

В секции Utility (Утилиты):

В секции Window Management (Управление окнами):

  • Place Windows (Переместить окно)
  • Resize Window (Изменение размеров окна)
  • Scale (Масштабировать)
  • Snapping Windows
  • PNG

Далее, чтобы все наконец заработало, закрой CCSM и запусти Compiz из bash командой

Примерно через минуту ты увидишь запущенную оболочку Unity.

Unity во всей красе

Unity во всей красе

Отмечу несколько ключевых моментов:

  1. Если ты и правда хочешь запускать иксовые приложения в WSL, устанавливай в качестве X-сервера VcXsrv, а не Xming. Опытным путем доказано, что Xming не желает нормально работать с WSL.
  2. После установки CCSM необходимо настроить его именно так, как показано на картинке (то есть включить то, что отмечено галочками, и выключить все остальное). Только тогда Unity со скрипом, не с первой попытки, но запустится.
  3. Лучше не устанавливать проприетарные драйверы ATI для Ubuntu внутри WSL. Это приводит к полному зависанию всей системы (в том числе и Windows 10) и влечет за собой тотальную переустановку WSL со всеми вытекающими.
  4. Огорчу тебя: не стоит возлагать на получившийся костыль большие надежды. Нормально ЭТО работать не будет. Но на моей тестовой машине Unity внутри WSL работала вполне сносно. Субъективно — чуть медленнее, чем в нативном Linux. Быть может, в будущем кто-нибудь доведет все это дело до ума. И от Unity в WSL таки будет польза.

Что же получится в итоге, после стольких мучений? А в итоге (теоретически, так как на практике выходит пока просто интересный экспериментальный способ запуска Unity и прочих DE внутри WSL) мы получим среду для тестирования Linux-приложений прямо внутри Windows. И Unity, работающую поверх Windows. Конечно, скорость работы и отзывчивость ее не такие, как на реальном железе, но все же быстрее, чем в виртуальной машине. Многие приложения, например Google Chrome или Pidgin, просто не запускаются. А вот Firefox, файловый менеджер, магазин приложений и прочие системные утилиты Ubuntu работают на ура (чуть медленней, чем в «настоящей» Ubuntu, но работают!).

WARNING

Установить WSL можно только в версиях Windows 10 «Профессиональная» и «Корпоративная». «Домашняя» не годится.

История ненависти и любви

Издавна Microsoft питала особые чувства к Linux в частности и ко всему миру FOSS в целом. И чувства эти, надо сказать, как правило, были не самыми теплыми — начиная со знаменитого «Открытого письма любителям» Билла Гейтса, написанного в далеком 1976 году (подробности в Вики), где автор обвинял пользователей персональных компьютеров (которые в те доисторические времена были и пользователями, и программистами, и хакерами!) чуть ли не в воровстве его интеллектуальной собственности (того самого бейсика), и заканчивая гневными высказываниями Стива Балмера в 2001 году по поводу Linux: «Linux — это раковая опухоль, которая пожирает всю интеллектуальную собственность, к которой прикасается. Согласно правилам лицензии, если вы используете какие-либо компоненты программного обеспечения с открытым исходным кодом, вы должны открыть код всего имеющегося у вас программного обеспечения».

Спустя пятнадцать лет, однако, Стив смягчил свою позицию: в марте 2016 года бывший генеральный директор Microsoft заявил, что рад видеть, что новый глава компании Сатья Наделла принял решение активнее поддерживать сообщество разработчиков открытого ПО, и «с удовольствием» (loved) наблюдал за анонсом MS SQL Sever для Linux. Во многом такой разворот бывшего гиганта софтверной индустрии — это заслуга сообщества FOSS. Тех тысяч и тысяч программистов, дизайнеров, майнтейнеров, FOSS-активистов и просто неравнодушных людей, которые годами «точили камень, аки вода».

Еще в середине 2000-х годов MS начала менять свою позицию в отношении FOSS. И это не пустые слова, а дела. Даром что ли не так давно Microsoft получила статус «платинового» участника Linux Foundation — главной организации, курирующей разработку Linux, высказала приверженность идеям разработки FOSS-сообщества. Ну и само существование WSL тому подтверждение. Спустя сорок с небольшим лет мы наблюдем, как некогда непримиримые идеологические (и не только идеологические) противники начали работать бок о бок, сообща делая мир лучше. Ну или хотя бы пытаться.

Спустя пятнадцать лет Стив Балмер, по сути, признал свою неправоту

То самое письмо Билла Гейтса в защиту копирайта

На данный момент апогеем такого симбиоза можно считать Windows Subsystem for Linux. Да, прослойка пока далека от совершенства. Но направление выбрано верное. И той и другой стороной.

«Дайте ей шанс!»

«Дайте Windows Subsystem for Linux шанс, и вы будете поражены», — говорят в Microsoft. Microsoft наконец-то признала потенциал мира FOSS в целом и Linux в частности. И каждое событие становится для Microsoft уроком, позволяющим оценить свои возможности и расширить свою деятельность в этой области программирования.

Совсем недавно, 16 ноября прошлого года, на сайте Microsoft для разработчиков появился пост с видеороликом под названием «Улучшения в bash на Windows и консоли Windows», в котором старший программист Microsoft Рич Тёрнер призывает Linux-разработчиков взглянуть на то, что Windows 10 может им предложить. «Установите экземпляр сборки Windows 10 для разработчиков (Windows 10 Insider Preview Build) и исполняйте свой код, используйте привычные вам инструменты, размещайте свои сайты на Apache, получайте доступ к своим базам данных MySQL непосредственно из вашего Java-кода», — говорит Тёрнер.

Новое, дружелюбное лицо Microsoft — Рич Тёрнер

Новое, дружелюбное лицо Microsoft — Рич Тёрнер

Тёрнер особо отметил, что WSL была создана специально для разработчиков с целью предоставить последним все необходимые инструменты разработки для Linux. И все это, по его словам, без потери новшеств и преимуществ Windows 10. «Независимо от того, какие инструменты вы обычно используете в Linux для создания приложений, будь то Go, Erlang или C, дайте шанс WSL, а самое главное, отправляйте нам отчеты об ошибках. Эти отчеты действительно делают нашу жизнь намного проще, позволяя нам создавать продукт, который мы все можем использовать, чтобы работать более плодотворно», — продолжил он.

Разумеется, Microsoft сама заинтересована в улучшении WSL, и Тёрнер утверждает, что конечная цель всего этого состоит в том, чтобы сделать эту подсистему полностью совместимой со всеми инструментами разработки для Linux. И, по их словам, любой, кто перейдет на Windows 10, будет чувствовать себя так же комфортно, как и в Linux. А это, в свою очередь, обеспечит Microsoft приток новых пользователей. «Пока мы только в самом начале. Нам предстоит долгий путь. В данный момент нельзя сказать, что эта штука действительно полностью совместима с Linux-инструментами и готова к полноценному использованию вами», — сказал он. Это заявление стало для многих людей сюрпризом. Однако, как уже говорилось, Сатья Наделла, нынешний глава софтверного гиганта, применит в отношении FOSS и Linux иной подход, рассматривая открытый и свободный код в качестве источника дохода и новых возможностей.

Отдельно отмечу, что Рич Тёрнер в своей речи не призывает разработчиков отказаться от Linux и нисколько не умаляет преимущества этой ОС, а лишь просит дать WSL шанс.

Промежуточные итоги

Что хотелось бы сказать в связи со всем этим? Во-первых, Microsoft уже не та. Не та монструозная корпорация зла. С каждым годом прибыли компании от продажи ПО падают, рынок мобильных устройств, по сути, отдан на откуп Google и Apple, а пользователи (как корпоративные, так и домашние) всё чаще стараются сэкономить на покупке софта. И компании приходится адаптироваться к новым условиям. Даже «заклятый друг» MS — Apple открывает исходники своих продуктов один за другим. Во-вторых, это все очень хорошо. В первую очередь для нас, простых пользователей.

В следующей статье про Windows Subsystem for Linux мы проведем несколько тестов на производительность и попробуем наконец WSL на практике, установив на нее веб-сервер Apache и запустив локальный хостинг сайта. А пока можно промежуточно резюмировать, что эксперимент удался.

К написанию данной статьи меня побудил вопрос на Тостере, связанный с 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, поэтому буду пробовать ставить.

Читайте также: