- Опыт настройки и использования WSL (подсистемы Linux в Windows 10)
- Установка WSL и дистрибутива
- Установка X-сервера, Xfce и прочих GUI’шных приложений
- Взаимодействие окружения Windows и окружения подсистемы Linux
- Особенности, ограничения и подводные камни
- Итоги
- Сравнение операционных систем Windows 10 и Linux
- Сравнение Windows 10 и Linux
- Требования к аппаратным мощностям компьютера
- Возможности настройки
- Безопасность использования
- Программное обеспечение
- Кастомизация внешнего вида
- Что выбрать, Windows 10 или Linux
Опыт настройки и использования WSL (подсистемы Linux в Windows 10)
К написанию данной статьи меня побудил вопрос на Тостере, связанный с 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, поэтому буду пробовать ставить.
Источник
Сравнение операционных систем Windows 10 и Linux
Сравнение Windows 10 и Linux
Для начала отметим важный момент – не существует ОС с названием Linux: этим словом (а ещё точнее, сочетанием слов GNU/Linux) называется ядро, базовый компонент, тогда как надстройки над ним зависят от дистрибутива или даже желания пользователя. Windows 10 же является полноценной операционной системой, которая работает на ядре Windows NT. Поэтому в дальнейшем под словом Linux в настоящей статье следует понимать именно продукт на базе ядра GNU/Linux.
Требования к аппаратным мощностям компьютера
Первый критерий, по которому мы сравним эти две ОС – системные требования.
Windows 10:
- Процессор: архитектура x86 с частотой не менее 1 Ггц;
- RAM: 1-2 Гб (зависит от разрядности);
- Видеокарта: любая с поддержкой технологии DirectX 9.0c;
- Место на жестком диске: 20 Гб.
Linux:
Системные требования ОС на ядре Linux зависят от надстроек и окружения – например, самый известный дружелюбный к пользователям дистрибутив Ubuntu в состоянии «из коробки» имеет следующие требования:
- Процессор: двухъядерный с тактовой частотой не менее 2 Ггц;
- ОЗУ: 2 Гб или более;
- Видеокарта: любая с поддержкой OpenGL;
- Место на HDD: 25 Гб.
Как видим, почти не отличается от «десятки». Однако если использовать то же ядро, но уже с оболочкой xfce (такой вариант называется xubuntu), то получаем следующие требования:
- CPU: любой архитектуры с частотой 300 МГц и выше;
- Оперативная память: 192 Мб, но желательно 256 Мб и выше;
- Видеокарта: 64 Мб памяти и поддержка OpenGL;
- Пространство на жестком диске: не менее 2 Гб.
Уже сильнее отличается от Виндовс, при этом xubuntu остаётся современной user-friendly OS, и подходит для использования даже на старых машинах возрастом больше 10 лет.
Возможности настройки
Многие критикуют подход Microsoft к кардинальному пересмотру интерфейса и настроек системы в каждом мажорном обновлении «десятки» – часть пользователей, особенно неопытных, путается и не понимает, куда подевались те или иные параметры. Делается это, по заверениям разработчиков, ради упрощения работы, но на деле часто получается противоположный эффект.
В отношении же систем на ядре Линукс закрепился стереотип, что эти ОС «не для всех», в том числе и вследствие сложности настройки. Да, некоторая избыточность в количестве конфигурируемых параметров присутствует, однако после короткого периода знакомства они позволяют гибко подстроить систему под нужды пользователя.
В этой категории однозначного победителя нет – в Windows 10 настройки расположены несколько бестолково, но их количество не слишком большое, и запутаться сложно, тогда как в Linux-based системах неопытный пользователь может надолго зависнуть в «Диспетчере настроек», но расположены они в одном месте и позволяют тонко подстроить систему под свои нужды.
Безопасность использования
Для некоторых категорий юзеров вопросы безопасности той или иной ОС являются ключевыми – в частности, в корпоративном секторе. Да, безопасность «десятки» выросла в сравнении с предыдущими версиями главного продукта Microsoft, но эта ОС всё равно требует наличие хотя бы антивирусной утилиты для периодического сканирования. Кроме того, некоторых пользователей смущает политика разработчиков по сбору пользовательских данных.
Со свободным ПО совсем другая ситуация. Во-первых, шутка о 3,5 вирусах под Линукс недалека от истины: зловредных приложений под дистрибутивы на этом ядре в сотни раз меньше. Во-вторых, у таких приложений для Linux намного меньше возможностей навредить системе: если не используется доступ в корневой каталог, также известный как root-права, вирус практически ничего не сможет сделать в системе. Кроме того, в этих системах не работают приложения, написанные под Виндовс, так что вирусы с «десятки» для Линукс не страшны. Одним из принципов выпуска ПО под свободной лицензией является отказ от сбора пользовательских данных, так что и с этой точки зрения безопасность Linux-based великолепная.
Таким образом в плане безопасности как самой системы, так и пользовательских данных, ОС на ядре GNU/Linux намного опережают Windows 10, и это без учёта специфических Live-дистрибутивов вроде Tails, который позволяет работать, почти не оставляя следов.
Программное обеспечение
Самая важная категория сравнения двух операционных систем – наличие софта, без которого сама ОС почти не имеет ценности. Все версии Windows любимы пользователями в первую очередь за обширный набор прикладных программ: подавляющее большинство приложений в первую очередь пишется именно для «окон», и только потом под альтернативные системы. Конечно, есть и специфические программы, которые существуют, например, только в Linux, но Виндовс предоставляет им те или иные альтернативы.
Впрочем, жаловаться на отсутствие софта для Линукс не стоит: на эти ОС пишется множество полезных и, что немаловажно, совершенно бесплатных программ под практически любые нужды, начиная от видеоредакторов и заканчивая системами для управления научным оборудованием. Стоит, однако, заметить, что интерфейс у таких приложений порой оставляет желать лучшего, и аналогичная программа на Виндовс банально удобнее, пусть и более ограничена.
Сравнивая программную составляющую двух систем, мы не можем не обойти вопрос об играх. Не секрет, что Windows 10 сейчас является приоритетной для выпуска видеоигр для платформы PC; многие из них даже ограничены именно «десяткой» и не заработают на Виндовс 7 и даже 8.1. Обычно запуск игрушек не вызывает никаких проблем, при условии соответствия характеристик компьютера хотя бы минимальным системным требованиям продукта. Также под Виндовс «заточена» платформа Steam и аналогичные решения от других разработчиков.
На Linux дела обстоят несколько хуже. Да, выпускается игровое ПО, портированное под эту платформу или даже с нуля для неё написанное, но количество продукции не идёт ни в какое сравнение с системами Windows. Также существует интерпретатор Wine, который позволяет запускать на Линукс программы, написанные для Виндовс, но если с большинством прикладного софта он справляется, то с играми, особенно тяжелыми или пиратскими, могут возникать проблемы с производительностью даже на мощном железе, или же они не будут запускаться вовсе. Альтернативой Вайну является оболочка Proton, встроенная в Linux-версию Стима, но и она далеко не панацея.
Таким образом, мы можем сделать вывод, что в плане игр Windows 10 имеет преимущество над ОС на базе ядра Linux.
Кастомизация внешнего вида
Последний как по важности, так и популярности критерий – возможности персонализации внешнего вида операционной системы. Настройки Windows в этом смысле ограничиваются установкой темы, которая меняет цветовую и звуковую схемы, а также обои «Рабочего стола» и «Экрана блокировки». Кроме того, существует возможность заменить каждый из этих компонентов по отдельности. Дополнительные возможности кастомизации интерфейса достигаются сторонним программным обеспечением.
ОС на базе Linux более гибкие, и персонализировать можно буквально всё, вплоть до замены окружения, которое здесь исполняет роль «Рабочего стола». Самые опытные и продвинутые пользователи могут вообще отключить все красивости для экономии ресурсов, и пользоваться командным интерфейсом для взаимодействия с системой.
По этому критерию нельзя определить однозначного фаворита между Windows 10 и Linux: последний более гибок, и позволяет обходиться системными средствами, тогда как для дополнительной кастомизации «десятки» не обойтись без установки сторонних решений.
Что выбрать, Windows 10 или Linux
По большей части параметров ОС GNU/Linux выглядят предпочтительнее: они более безопасны, менее требовательны к аппаратным характеристикам, под эту платформу существует множество программ, которыми можно заменить аналоги, существующие только на Windows, в том числе и альтернативные драйвера для тех или иных устройств, а также возможность запуска компьютерных игр. Нетребовательный дистрибутив на этом ядре может вдохнуть вторую жизнь в старый компьютер или ноутбук, который уже не подходит для новейшей Виндовс.
Но важно понимать, что окончательный выбор стоит делать, исходя из поставленных задач. Например, мощный компьютер с хорошими характеристиками, который планируется использовать в том числе и для игр, под управлением Linux вряд ли в полной мере раскроет свой потенциал. Также без Виндовс не обойтись, если критически важная для работы программа существует только под эту платформу, и не работает в том или ином трансляторе. Кроме того, для многих пользователей ОС от Майкрософт более привычна, пусть переход на Линукс сейчас менее болезненный, чем 10 лет назад.
Как видим, пусть Linux и выглядит лучше Windows 10 по некоторым критериям, выбор операционной системы для компьютера зависит от целей, для которых он будет использоваться.
Помимо этой статьи, на сайте еще 12315 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник