начните новый сеанс терминала для вашей операционной системы wsl2 linux

О смерти двойной загрузки и о единстве Windows и Linux

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

Я начал собирать рабочую станцию под задачи машинного обучения. Поставил в неё, кроме прочего, отличный процессор, много памяти, достойную видеокарту. Практически все мои задачи я решал в Ubuntu. Правда, для работы с текстами мне нужен был Microsoft Office. Онлайновый Office тогда ещё не появился, и, давайте называть вещи своими именами, LibreOffice — это просто ужас какой-то. Для меня решением стала двойная загрузка в конфигурации Ubuntu — Windows 10. Мне невероятно понравилось то ощущение свободы, которое испытываешь, переходя с ОС от Apple на Ubuntu. А возможности, которые открываются перед тем, кто сам собирает свой компьютер, практически бесконечны.

Двойная загрузка в течение долгого времени полностью меня устраивала. А когда я миллион раз ей воспользовался, появилась технология WSL (Windows Subsystem for Linux, подсистема Windows для Linux). Когда это случилось, я начал решать некоторые свои Linux-задачи в Windows. Правда, даже так, многого для полноценной работы мне ещё не хватало. Но теперь, с выходом WSL 2, у меня возникает такое ощущение, что новая версия WSL способна кардинальным образом изменить ситуацию. Сегодня я предлагаю поговорить о том, как, с помощью WSL 2, перенести задачи по разработке программ из Linux в Windows 10. Я расскажу о новых возможностях WSL 2, и о том, что можно ожидать от этой подсистемы в будущем.

Обзор WSL 2

WSL 2 — это новая версия подсистемы Windows для Linux. В этой версии имеются некоторые изменения, определяющие то, как Linux-дистрибутивы взаимодействуют с Windows.

Microsoft любит Linux

В этом релизе WSL в распоряжении пользователя оказывается улучшенная производительность файловой системы и полная совместимость с системными вызовами. Конечно, у нас есть возможность запускать Linux либо на WSL 1, либо на WSL 2, и, более того, переключаться между разными версиями WSL можно в любое время. WSL 2 — это результат серьёзного усовершенствования базовой архитектуры системы, её новые возможности основаны на технологии виртуализации и на функционале ядра Linux. При этом Microsoft берёт на себя заботу о мелких деталях, поэтому пользователь WSL может просто заниматься своими делами, ни на что не отвлекаясь.

Установка

Microsoft обещает, что в ближайшем будущем установка WSL 2 будет выполняться очень просто, и что Linux можно будет обновлять с использованием механизма обновлений Windows. Пока же процесс установки WSL 2 требует некоторых усилий, но, на самом деле, ничего страшного тут нет.

В этом примере мы установим на Windows 10 Ubuntu 20.04. Надо отметить, что процесс установки будет одним и тем же для всех дистрибутивов Linux, доступных в Microsoft Store. Для начала нужно включить компонент Windows Subsystem for Linux. Для этого надо открыть PowerShell от имени администратора и выполнить следующую команду:

Далее, нужно обновить WSL до WSL 2. Для этого Windows 10 должна быть обновлена до версии 2004. В BIOS должна быть включена технология виртуализации Intel. Снова воспользуемся PowerShell с административными привилегиями и выполним такую команду:

Для завершения установки WSL и обновления до WSL 2 перезагрузите компьютер. Затем нужно установить WSL 2 в качестве версии WSL, используемой по умолчанию при установке новых дистрибутивов Linux. Для этого, всё так же, пользуясь PowerShell с правами администратора, выполним эту команду:

После того, как вы выполните эту команду, может появиться такое сообщение:

Сообщение, выдаваемое при попытке установки WSL 2 как подсистемы Windows для Linux, используемой по умолчанию

Перейдите по указанной ссылке и установите соответствующий MSI-файл, благодаря которому на вашу машину будет установлено ядро Linux для WSL 2. После того, как ядро будет установлено, выполните вышеприведённую команду снова. Теперь она должна завершиться успешно, не выдавая подобного сообщения.

Теперь осталось лишь установить нужный дистрибутив Linux. Для этого надо открыть Microsoft Store и поискать там Ubuntu 20.04 LTS. После установки дистрибутива в меню Пуск должен появиться ярлык для запуска Ubuntu. Запустите систему и следуйте инструкциям для завершения установки (в целом, завершение установки заключается в создании нового пользователя).

Для того чтобы проверить, действительно ли дистрибутив установлен на WSL 2, выполните такую команду:

Если оказалось, что используется WSL 1, то переключиться на WSL 2 можно, воспользовавшись командой такого вида:

Вот и всё. Теперь в вашем распоряжении имеется полноценный дистрибутив Ubuntu, работающий в Windows 10.

Настройка рабочей среды для программиста

Теперь, когда в вашем распоряжении оказалась рабочая Ubuntu, вы можете устанавливать всё, что вам может понадобиться. Например, если вы — дата-сайентист, вы можете установить самый свежий дистрибутив Anaconda. Если вы — фронтенд-разработчик, то вас, например, могут заинтересовать Angular, npm и многое другое. Здесь же мне хотелось бы сосредоточиться на двух инструментах. Это — Visual Studio Code и связка Docker + Kubernetes.

▍Visual Studio Code

VS Code — это редактор кода, которому отдаёт предпочтение множество разработчиков. Одна из сильных сторон этого редактора заключается в поддержке бесконечного множества расширений. А теперь, когда мы включили WSL 2, совершенно необходимым расширением для VS Code можно назвать Remote Development.

Это расширение позволяет удалённо работать над кодом, который имеется в среде, создаваемой средствами WSL 2, в контейнере, или даже на удалённой виртуальной машине, доступ к которой осуществляется по SSH. Данное расширение позволяет, например, создать проект в ОС Linux, работающей в WSL 2, и использовать для работы над этим проектом редактор VS Code, установленный в Windows 10.

Собственно говоря, VS Code отличается огромными возможностями. Это и интеллектуальная система IntelliSense, и интеграция с git, и отладчик, и терминал, и очень много чего ещё. Полагаю, с настройкой VS Code вы справитесь и очень скоро сможете сделать из этого редактора именно то, что нужно вам.

▍Docker + Kubernetes

Docker для Windows сделан на «хорошо», но не на «отлично». На самом деле, именно Docker заставлял меня постоянно «прыгать» между Windows и Ubuntu. Например, мне приходилось делать это тогда, когда нужно было создать новый образ Docker. А вот WSL 2 отличается полной поддержкой Docker. Это, полагаю, такая возможность новой подсистемы, которая делает работу с Docker даже удобнее, чем в Linux.

Включение поддержки Docker для WSL 2

Более того, перейдя в раздел настроек Kubernetes, можно включить возможность запуска локального кластера Kubernetes, просто установив соответствующий флажок.

Теперь можно перезапустить Ubuntu в WSL 2 и выполнить следующие команды:

Результаты выполнения подобных команд покажут, что в вашем распоряжении теперь есть Docker и Kubernetes.

Docker и Kubernetes работают в среде WSL 2

Бонус: новый терминал Windows

В качестве дополнительной полезной программы вы можете установить из Microsoft Store новый терминал Windows. В описании к нему сказано, что перед нами новое современное приложение — быстрое, эффективное и мощное. Оно предназначено для пользователей, работающих с инструментами командной строки и с соответствующими средами, наподобие PowerShell. Среди его главных возможностей можно отметить следующие: поддержка вкладок и панелей, поддержка Unicode и UTF-8, ускорение вывода текста средствами GPU, поддержка пользовательских тем, стилей и настроек.

Читайте также:  я превратилась в змею в майнкрафт

Вот видео про новый терминал Windows.

Более того, новый терминал очень хорошо выглядит, а его внешний вид поддаётся настройке. Настройки можно выполнять, пользуясь особым JSON-файлом. Здесь можно найти темы для терминала. Вот материал, в котором можно почитать подробности о терминале.

Планы развития WSL

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

Кроме того, WSL 2 будет той версией подсистемы, которая, при первой установке WSL, устанавливается по умолчанию.

Надо отметить, что разработчики очень ждут от WSL следующих возможностей: поддержка видеокарт и поддержка приложений с графическим интерфейсом.

С момента выхода WSL 1 команду разработчиков этой подсистемы чаще всего просили о внедрении в WSL поддержки CUDA или GPU Compute. В последний код команды разработчиков WSL, систем виртуализации, DirectX, Windows Driver работают над этой возможностью. Поэтому — следите за новостями.

Обучение модели, использующей технологии глубокого обучения, в WSL 2 (с использованием CUDA)

Более того, на подходе и поддержка графических приложений для Linux. Например, в Linux-системах, установленных на WSL, можно будет пользоваться текстовыми редакторами или IDE. На Windows-машине можно будет даже разрабатывать GUI-приложения для Linux!

Поддержка графического интерфейса Linux в WSL 2

Итоги

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

Источник

Как установить WSL 2 в Windows 10

Это безумие пока не ослабевает, поскольку Microsoft планирует разрешить пользователям запускать настольные приложения Linux в Windows 10 и запускать задачи с интенсивным использованием графического процессора. Это также позволит установить WSL с помощью всего одной команды.

На данный момент, если только вы не опытный юзер инсайдерских сборок, WSL 2 – это тот инструмент, который не требует каких-то особых усилий для своей настройки и предоставляет в ваше полное распоряжение самую полную версию Linux непосредственно внутри Windows. По-моему, оно того стоит!

Установите WSL 2 в Windows 10

Требования

Для установки WSL 2 в Windows 10 вам понадобятся следующие вещи:

Обновление Windows 10 за май 2020 года было выпущено в мае 2020 года (почувствуй себя капитаном очевидность), но не все устройства могут обновиться сразу. Чтобы узнать, доступно ли обновление Windows 10 May 2020 на вашем компьютере, перейдите в Настройки > Обновление и безопасность > Центр обновления Windows.

В августе Microsoft перенесла WSL 2 на старые версии Windows 10. Любой пользователь сборок 19.03 или 19.09 также может установить WSL 2, но сначала придется обновиться по вот этой ссылке Windows KB4566116.

Технически вы можете установить WSL 2 на «инсайдерскую» сборку Windows 10 build 18917 или новее. Я не слишком знаком с тем, как работает «инсайдерская» система сборки, поэтому просто имейте в виду, что остальная часть этого сообщения основана на использовании стабильной версии Windows.

Ваш компьютер также должен поддерживать виртуализацию Hyper-V для запуска WSL 2. Чтобы убедиться, вы можете проверить поддержку Hyper-V.

Для этого вам понадобиться нажмите Win + R и набрать в открывшемся диалоговом окошке команду msinfo32. Открывшийся список прокрутите до конца и найдите четыре пункта про Hiper V:

Если все они имеют значение «Да», поздравляю, у вас все хорошо и ваша ось поддерживает технологию Hiper V.

Если же ваша машинка не соответствует обоим требованиям, штош, вы не сможете установить или включить WSL 2, но вы можете использовать WSL 1.

Процесс установки WSL 2 в Windows 10 таков:

Я шаг за шагом пройду по каждому из этих пунктов с помощью приложения PowerShell, которое вам нужно запустить от имени администратора. PowerShell легко найти в меню «Пуск» Windows.

Примечание: WSL 1 можно установить и с помощью графического интерфейса, но гораздо быстрее использовать командную строку, но, поскольку WSL — это инструмент командной строки, имеет смысл и устанавливать его с помощью нее!

Шаг 1. Включите WSL

Независимо от того, какую версию WSL вы хотите использовать, вам сначала нужно включить ее. Для этого откройте инструмент PowerShell от имени администратора и выполните команду ниже. Будьте осторожны, чтобы не набрать и не пропустить какой-либо символ в команде:

Если по каким-то причинам вы хотите использовать т WSL 1 – переходите к пункту 4.

Шаг 2. Включите «Платформу виртуальных машин»

WSL 2 требует, чтобы была включена функция «Платформа виртуальных машин» в Windows 10. Она отделена от Hyper-V и предоставляет некоторые из наиболее интересных интеграций платформ, доступных в новой версии подсистемы Windows для Linux.

Чтобы включить платформу виртуальных машин в Windows 10 (20.04), откройте PowerShell от имени администратора и выполните команду:

Чтобы включить платформу виртуальных машин в Windows 10 (19.03, 19.09), откройте PowerShell от имени администратора и выполните:

На этом этапе вам стоит перезагрузить систему, чтобы убедиться, что все компоненты встали как надо и все работает так как задумано.

Шаг 3. Установите WSL 2 по умолчанию

Откройте PowerShell от имени администратора и выполните эту команду, чтобы установить WSL 2 в качестве версии WSL по умолчанию:

Вы можете (в любое время) настроить дистрибутив для работы в режиме WSL 1, если вам нужно.

Шаг 4. Установите дистрибутив

С WSL и необходимой технологией виртуализации все, что вам остается сделать, это выбрать и установить дистрибутив Linux из Microsoft Store.

Чтобы установить Ubuntu в Windows 10, откройте приложение Microsoft Store, найдите «Ubuntu 20.04» и нажмите кнопку «Получить»:

Пока вы находитесь в Microsoft Store, я настоятельно рекомендую вам также установить приложение Windows Terminal с открытым исходным кодом. Этот инструмент разработан, чтобы предоставить вам наилучшие возможности WSL:

5. Используйте WSL 2

Когда вы устанавливали Ubuntu (или другой дистрибутив Linux), в меню «Пуск» был добавлен ярлык. Используйте его, чтобы «открыть» Ubuntu (или любой другой дистрибутив, который вы выбрали). В первый раз, когда вы запустите дистрибутив, все будет казаться ужасно медленным. Все в порядке, это норма; дистрибутив должен распаковаться и распаковать все свое содержимое – заварите чайку, подождите, только не прерывайте процесс.

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

Преобразование Ubuntu на WSL 1 в WSL 2

Если вы используете WSL 1, вы можете обновить существующую версию до WSL 2. Чтобы преобразовать существующий дистрибутив WSL 1 в WSL 2, выполните в PowerShell следующее команду:

Только замените «Ubuntu» в вышеприведённой команде названием того дистрибутива, который вы запускаете при запуске WSL 1.

Расскажите в камментах не возникло ли у вас трудностей при установке и использовании WSL2 по инструкции из этого гайда.

Источник

Читайте также:  чем облицевать дровяную печь

Рекомендации по настройке среды разработки WSL

пошаговое руководство по настройке среды разработки WSL с помощью Ubuntu, Visual Studio Code или Visual Studio, Git, Windows диспетчера учетных данных, а также рекомендуемых учебников по всем, что вам может потребоваться.

Установка WSL

подсистема Windows для Linux поставляется с Windows операционной системой, но ее необходимо включить и установить дистрибутив Linux перед началом использования.

чтобы использовать упрощенную команду-install, необходимо запустить последнюю сборку Windows (сборка 20262 +). Чтобы проверить версию и номер сборки, нажмите клавиши Windows+R, введите winver и нажмите кнопку ОК. обновить можно с помощью меню Параметры или помощника Центр обновления Windows.

откройте PowerShell (или Windows командной строки) и введите:

В процессе установки потребуется перезагрузить компьютер.

Настройка сведений о пользователе Linux

после завершения процесса установки дистрибутива Linux с WSL откройте дистрибутив (Ubuntu по умолчанию) с помощью меню. Вам будет предложено создать имя пользователя и пароль для дистрибутива Linux.

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

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

Эта учетная запись будет считаться администратором Linux с возможностью запуска административных команд sudo (команд суперпользователя).

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

Дистрибутивы Linux, установленные с помощью WSL, устанавливаются для отдельных пользователей и не могут использоваться совместно с другими учетными записями пользователей Windows. Возникла ошибка имени пользователя? StackExchange: какие символы следует использовать или не использовать в именах пользователей в Linux?

Если вы забыли пароль для дистрибутива Linux, сделайте следующее.

После открытия WSLного распространения на корневом уровне в PowerShell можно использовать эту команду для обновления пароля: passwd где — это имя пользователя учетной записи в дистрибутиве, чей пароль забыт.

Обновление и модификация пакетов

Рекомендуется регулярно обновлять и обновлять пакеты с помощью предпочтительного диспетчера пакетов для распространения. Для Ubuntu или Debian используйте команду:

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

Добавление дополнительных распределений

Настройка Windows Terminal

Windows Terminal может запускать любое приложение с помощью интерфейса командной строки. К его основным функциям относится поддержка нескольких вкладок, панелей, символов Юникода и UTF-8, а также модуль отрисовки текста с ускорением GPU, возможность создания собственных тем и настройки текста, цвета, фона и сочетаний клавиш.

Terminal снимок экрана «Data-ссылок =» относительный путь «/>

Хранилище файлов

Храните файлы проекта в той же операционной системе, что и средства, которые планируется использовать.
Для ускорения производительности Храните файлы в файловой системе WSL, если вы работаете с ними с помощью средств Linux в командной строке Linux (Ubuntu, OpenSUSE и т. д.). если вы работаете в Windows командной строке (PowerShell, командной строке) с инструментами Windows, храните файлы в Windows файловой системе. К файлам можно обращаться по операционным системам, но это может значительно замедлить производительность.

Например, при хранении файлов проекта WSL:

Настройка предпочтительного редактора кода

рекомендуется использовать Visual Studio Code или Visual Studio, так как они напрямую поддерживают удаленную разработку и отладку с помощью WSL. Visual Studio Code позволяет использовать WSL в качестве полнофункциональной среды разработки. Visual Studio предлагает встроенную поддержку WSL для кросс-платформенной разработки C++.

Использование Visual Studio Code

следуйте этому пошаговому руководству, чтобы приступить к использованию Visual Studio Code с WSL, включающей установку удаленного пакета расширений разработки. это расширение позволяет запускать WSL, SSH или удаленный контейнер для редактирования и отладки с полным набором Visual Studio Code компонентов. Быстро переключаться между разными средами разработки и вносить обновления, не беспокоясь о влиянии на локальный компьютер.

Не забудьте добавить точку в конце команды, чтобы открыть текущий каталог.

Использование Visual Studio

следуйте этому пошаговому руководству, чтобы приступить к использованию Visual Studio с WSL для разработки кросс-платформенного программирования на C++. Visual Studio 2022 позволяет создавать и отлаживать проекты cmak в Windows, WSL распределениях и SSH-подключениях из одного и того же экземпляра Visual Studio.

Настройка управления версиями с помощью Git

Следуйте этому пошаговому руководству, чтобы приступить к работе с Git на WSL и подключить проект к системе управления версиями Git, а также с помощью диспетчера учетных данных для проверки подлинности, использования Git ignore files, понимания завершения строк Git и использования встроенных команд git для VS Code.

Настройка контейнеров удаленной разработки с помощью DOCKER

Следуйте этому пошаговому руководству, чтобы приступить к работе с удаленными контейнерами DOCKER на WSL 2 и подключить проект к удаленному контейнеру разработки с помощью DOCKER Desktop для Windows.

Настройка базы данных

Следуйте этому пошаговому руководству, чтобы приступить к работе с базами данных на WSL и подключить проект к базе данных в среде WSL. приступая к работе с MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server или SQLite.

Настройка ускорения GPU для повышения производительности

Следуйте этому пошаговому руководству, чтобы настроить обучение GPU с ускорением машинного обучения в WSL и использовать GPU компьютера (графический процессор) для ускорения интенсивных рабочих нагрузок с высокой производительностью.

Основные команды WSL

кроме того, многие команды поддерживают взаимодействие между Windows и Linux. Вот несколько примеров.

запустите средство Windows ipconfig.exe с помощью средства Linux Grep. в этом примере демонстрируется средство ipconfig в Windowsной файловой системе, используемой для вывода текущих значений конфигурации сети TCP/IP, а затем фильтруется только в результате IPv4 с помощью grep, средства Linux.

Подключение внешнего диска или USB

Следуйте этому пошаговому руководству, чтобы приступить к подключению диска Linux в WSL 2.

Источник

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

К написанию данной статьи меня побудил вопрос на Тостере, связанный с WSL. Я, после нескольких лет использования систем на ядре Linux, около полугода назад перешел к использованию Windows 10 на домашнем ПК. Зависимость от терминала и Linux окружения в моей работе практически сразу привели меня к вопросу: или ставить виртуалку или попробовать WSL. Я выбрал второе, и остался вполне доволен.

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

Никогда не думал, что однажды вернусь на Windows, но повод попробовать мне дали стечения обстоятельств: жена, далекая от IT, дергала почти каждый раз, когда у нее возникала необходимость воспользоваться компом; проснулась ностальгия по одной игре, но она никак не хотела адекватно работать под wine; а тут еще мне подарили коробочную Windows 10 Pro. WSL я поставил чуть ли не сразу после установки системы, поигрался несколько вечеров, понял, что продукт для моих задач годный, но хочется более привычный терминал и вообще некоторых удобств.

Читайте также:  5 мотков интернет магазин пряжи промокод

Установка 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 файла для запуска:

x-run.vbs — WSL всегда запускается со своим эмулятором терминала, если его закрыть — завершатся все его дочерние процессы. Чтоб данное окно не мозолило глаза, неплохо его запускать скрытым. К счастью в Windows встроен интерпретатор VBScript, который позволяет это сделать в одну строчку:

Далее можем запустить наш start.bat и настроить панель Xfce под себя. Замечу, что здесь я наткнулся на еще одну проблему — панель прекрасно отображается поверх всех окон, но вот выделить себе место, как панель на рабочем столе Windows она не может. Если кто знает решение данной проблемы, поделитесь в комментариях.

Ну и под конец данной части, скриншот моего рабочего стола:

Взаимодействие окружения Windows и окружения подсистемы Linux

Из Linux так же можно запускать Windows приложения. Просто запускаем exe-шник и он выполнится в основной системе.

Сетевой стек у подсистемы общий с 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, поэтому буду пробовать ставить.

Источник

Компьютерный онлайн портал