Wsl: как установить и использовать подсистему ubuntu в windows 10

Введение и доступность

Бета-версия WSL была представлена ​​в Windows 10 версии 1607 (юбилейное обновление) 2 августа 2016 года. Поддерживалась только Ubuntu (с Bash в качестве оболочки по умолчанию). Бета-версия WSL также называлась «Bash в Ubuntu в Windows» или «Bash в Windows».

WSL больше не был бета-версией Windows 10 версии 1709 (Fall Creators Update), выпущенной 17 октября 2017 года. Можно было установить несколько дистрибутивов Linux, которые были доступны для установки в Магазине Windows .

WSL доступен только в 64-битных версиях Windows 10 начиная с версии 1607. Он также доступен в Windows Server 2019.

6 мая 2019 года Microsoft анонсировала WSL 2, который включает полностью новый бэкэнд на основе виртуальных машин (на основе подмножества функций Hyper-V) вместо предыдущего уровня адаптации системных вызовов. WSL 2 поставлялся с Windows 10 версии 2004, а также был перенесен на Windows 10 версий 1903 и 1909.

Поддержка WSL 2 графическим процессором была представлена ​​в сборке Windows 20150. Поддержка графического интерфейса для WSL 2 была представлена ​​в сборке Windows 21364. Оба они поставляются в Windows 11.

Microsoft представила версию WSL для Магазина Windows 11 октября 2021 года для Windows 11.

3: Установка и настройка новой командной строки Windows

Ubuntu предоставляет стандартный терминал для общих задач, но Microsoft открыла исходный код и повторно реализовала свой инструмент Terminal и представила его как Windows Terminal. Этот терминал предлагает гораздо больше возможностей настройки и гораздо проще в использовании, чем терминал Ubuntu по умолчанию, поэтому мы должны его установить.

Давайте установим этот терминал на свою рабочую станцию. Вернитесь к строке поиска в Microsoft Store и выполните поиск по запросу Terminal.

Установить Windows Terminal можно так же, как мы уже установили Ubuntu – нажав Get и Install. Запустите терминал с помощью кнопки Launch или через меню «Пуск».

По умолчанию Windows Terminal открывает консоль PowerShell.

Если вы хотите открыть другую консоль, нажмите кнопку со стрелкой вниз, чтобы увидеть доступные варианты. По умолчанию у вас есть доступ к PowerShell, Command Prompt и Azure Cloud Shell. Когда вы устанавливаете любой дистрибутив Linux на WSL, он будет добавлен в этот же список; в нашем случае здесь будет установка Ubuntu. Нажмите на Ubuntu, чтобы открыть оболочку Ubuntu в новой вкладке.

Если вы хотите изменить некоторые параметры терминала по умолчанию, нажмите кнопку со стрелкой вниз и выберите Settings.

Затем установите Ubuntu в качестве консоли по умолчанию. Для этого в разделе Default Profile выберите свой образ Ubuntu WSL и нажмите Save.

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

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

Как пользоваться Linux в WSL

Чтобы открыть установленную вами среду Linux, просто откройте меню «Пуск» и найдите установленный вами дистрибутив. Например, если вы установили Kali Linux, запустите ярлык Kali Linux.

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

При первом запуске среды Linux вам будет предложено ввести имя пользователя и пароль UNIX. Они необязательно должны совпадать с вашим именем пользователя и паролем Windows, но будут использоваться в среде Linux.

Например, если вы введёте «alex» и «hackware» в качестве учётных данных, ваше имя пользователя в среде Linux будет «alex», а пароль, который вы используете в среде Linux, будет «hackware» — независимо от вашего имени пользователя Windows и его пароля.

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

Если у вас установлена Kali Linux, вы также можете запустить команду kali, чтобы установить её. Для openSUSE Leap 15 SP1 используйте opensuse-15-sp1. Для SUSE Linux Enterprise Server 15 SP1 используйте SLES-15-SP1. Эти команды перечислены на странице каждого дистрибутива Linux в Магазине Windows.

Вы по-прежнему можете запустить среду Linux по умолчанию, выполнив команду bash, но Microsoft утверждает, что это устарело. Это означает, что команда bash может перестать работать в будущем.

Если у вас есть опыт использования оболочки Bash в Linux, Mac OS X или других платформах, вы будете как дома.

В Kali Linux и Ubuntu вам нужно добавить к команде префикс sudo, чтобы запустить её с правами root. Пользователь «root» на платформах UNIX имеет полный доступ к системе, как пользователь «Администратор» в Windows. Ваша файловая система Windows в среде оболочки Bash находится в /mnt/c.

Ещё одна важная особенность дистрибутивов Linux, запущенных этим образом, в том, что прямо в консоли Linux вы можете выполнять команды Windows.

Связанная статья: Что такое sudo

Используйте те же команды терминала Linux, которые вы используете в этой операционной системе. Если вы привыкли к стандартной командной строке Windows с её командами DOS, вот несколько основных команд, общих для Bash и Windows:

  • Изменить каталог: cd в Bash, cd или chdir в DOS
  • Список содержимого каталога: ls в Bash, dir в DOS
  • Перемещение или переименование файла: mv в Bash, move и rename в DOS
  • Скопировать файл: cp в Bash, copy в DOS
  • Удалить файл: rm в Bash, del или erase в DOS
  • Создайте каталог: mkdir в Bash, mkdir в DOS
  • Используйте текстовый редактор: vi или nano в Bash, edit в DOS

Связанная статья: Азы работы в командной строке Linux (часть 1), а также последующе части

Важно помнить, что, в отличие от Windows, оболочка Bash и её среда, имитирующая Linux, чувствительны к регистру. Другими словами, «File.txt» с большой буквы отличается от «file.txt» без заглавной буквы.. Дополнительные инструкции смотрите в серии наших руководств Азы работы в командной строке Linux для начинающих.

Дополнительные инструкции смотрите в серии наших руководств Азы работы в командной строке Linux для начинающих.

Вам нужно будет использовать команду apt для установки и обновления программного обеспечения среды Debian, Kali Linux, Ubuntu. Не забудьте указать перед этими командами префикс sudo, чтобы они запускались от имени пользователя root — Linux-эквивалента Администратора. Вот команды apt, которые вам нужно знать:

Загрузить обновлённую информацию о доступных пакетах:

sudo apt update

Установить пакет приложения (замените «ИМЯ-ПАКЕТА» на имя пакета):

sudo apt install ИМЯ-ПАКЕТА

Удаление пакета приложения (замените «ИМЯ-ПАКЕТА» на имя пакета):

sudo apt remove ИМЯ-ПАКЕТА

Поиск доступных пакетов (замените СЛОВО словом, по которому нужно искать пакеты в именах и описаниях):

sudo apt search СЛОВО

Загрузите и установите последние версии установленных пакетов:

sudo apt full-upgrade

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

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

Программное обеспечение, устанавливаемое в оболочке Bash, ограничено оболочкой Bash. Вы можете получить доступ к этим программам из командной строки, PowerShell или где-либо ещё в Windows, но только если вы запустите команду вида

bash -c КОМАНДА

Разработка

Первый набег Microsoft на достижение Unix-подобной совместимости в Windows начался с подсистемы Microsoft POSIX , замененной службами Windows для UNIX через MKS / Interix , которая в конечном итоге была устарела с выпуском Windows 8.1 . Технология, лежащая в основе подсистемы Windows для Linux, возникла в еще не выпущенном Project Astoria , который позволил некоторым приложениям Android работать в Windows 10 Mobile . Впервые он был доступен в сборке 14316 Windows 10 Insider Preview .

В то время как предыдущие проекты Microsoft и стороннего Cygwin были сосредоточены на создании своих собственных уникальных Unix-подобных сред на основе стандарта POSIX , WSL нацелен на совместимость с Linux. Вместо того, чтобы заключать неродные функции в системные вызовы Win32, как это было в предыдущих системах, в первоначальной конструкции WSL (WSL 1) использовалась исполнительная часть ядра NT для обслуживания программ Linux в качестве особых изолированных минимальных процессов (известных как «пико-процессы» ), подключенных к ядру. режим «поставщики пико» в качестве выделенных обработчиков системных вызовов и исключений, отличных от таковых в обычном процессе NT, с возможностью повторного использования существующих реализаций NT везде, где это возможно.

Хотя WSL (благодаря этой первоначальной конструкции) был намного быстрее и, возможно, намного более популярным, чем его собратья из проектов UNIX-on-Windows, инженеры ядра Windows столкнулись с трудностями при попытке повысить производительность WSL и совместимость с системными вызовами, пытаясь изменить существующее ядро ​​NT для распознавания и правильно работать с API Linux . На конференции Microsoft Ignite в 2018 году инженеры Microsoft представили общий обзор новой «облегченной» технологии виртуальных машин Hyper-V для контейнеризации, где виртуализированное ядро ​​может напрямую использовать примитивы NT на хосте. В 2019 году Microsoft анонсировала полностью переработанную архитектуру WSL (WSL 2) с использованием этой облегченной технологии виртуальных машин, в которой размещены реальные (настроенные) образы ядра Linux, заявив о полной совместимости с системными вызовами.

Microsoft рассматривает WSL как «в первую очередь инструмент для разработчиков, особенно веб-разработчиков и тех, кто работает над проектами с открытым исходным кодом или с ними». В сентябре 2018 года Microsoft заявила, что «WSL требует меньше ресурсов (ЦП, памяти и хранилища), чем полноценная виртуальная машина» (что до WSL было наиболее прямым способом запуска программного обеспечения Linux в среде Windows), при этом позволяя пользователям использовать приложения Windows и инструменты Linux с одним и тем же набором файлов.

В апреле 2021 года Microsoft выпустила тестовую сборку Windows 10, которая также включает в себя возможность запускать приложения с графическим пользовательским интерфейсом (GUI) Linux с использованием WSL 2 и CBL-Mariner . Подсистема Windows для графического интерфейса Linux (WSLg) была официально представлена ​​на конференции Microsoft Build 2021 . Он включен в сборку Windows 10 Insider 21364 или более позднюю.

Как включить WSL2 (подсистему Windows для Linux второй версии) и установить последнюю версию ядра

Microsoft работала с Canonical, чтобы предложить полную среду оболочки Bash на основе Ubuntu, которая работает поверх этой подсистемы, а в настоящее время теперь можно запускать полноценные дистрибутивы Linux. Технически это вообще не Linux. Linux — это базовое ядро операционной системы, которое здесь недоступно. Вместо этого она позволяет запускать оболочку Bash и те же двоичные файлы, которые вы обычно запускаете в Ubuntu Linux. Сторонники свободного программного обеспечения часто утверждают, что среднюю операционную систему Linux следует называть «GNU/Linux», потому что на самом деле на ядре Linux работает множество программ GNU. Оболочка Bash, которую вы получите, на самом деле представляет собой все эти утилиты GNU и другое программное обеспечение.

Эта функция изначально называлась «Bash в Ubuntu в Windows», но она также позволяла запускать Zsh и другие оболочки командной строки. Теперь же она поддерживает и другие дистрибутивы Linux. Вы можете выбрать openSUSE Leap или SUSE Enterprise Server, Fedora или Kali Linux вместо Ubuntu.

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

По умолчанию WSL2 отключена в Windows. Чтобы её включить можно воспользоваться графическим интерфейсом или командной строкой. Чтобы включить WSL2 в командной строке, нажмите Win+x и в открывшемся меню выберите «Windows PowerShell (администратор)»:

Важно открыть PowerShell с повышенными правами.

Выполните в нём:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Дождитесь окончания загрузки и выполнения.

Перезагрузите компьютер, для этого нажмите Enter.

Теперь опять откройте PowerShell от администратора и выполните:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

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

Скачайте и установите последнее ядро WSL2 Linux Kernel отсюда: https://aka.ms/wsl2kernel (прямая ссылка).

Опять откройте PowerShell как администратор и выполните:

wsl --set-default-version 2

Если у вас уже установлен дистрибутив (например, Kali Linux) в WSL1, то для обновления выполните команду:

wsl --set-version kali-linux 2

Установить рабочий стол Linux в Windows

Шаг 1. Как только вы проделали выше шаги, установили и включили подсиситему Linux для Windows 10, то следующим шагом будем установка графической оболочки, чтобы появился рабочий стол Linux. В окне bash Linux введите ниже команды по 1 -ой, чтобы обновить:

Шаг 2. Теперь перейдите в Sourceforge, чтобы загрузить и установить утилиту VcXsrv Windows X Server. Это нужно для того, чтобы рабочий стол Ubuntu, в моем случае, отображался, как графическая оболочка.

Шаг 3. Прежде чем продолжить, убедитесь, что сервер X Window установлен, как описано в шаге 2. Следующим шагом является установка вашего рабочего стола Linux. Доступны многие окружения рабочего стола linux, такие как GNOME, Cinnamon, Xfce, LXDE. Я буду устанавливать облегченную среду под названием LXDE. Для установки вводим следующее:

После установки LXDE введите эту команду, которая заставит Linux отображать рабочий стол через X-сервер:

Шаг 3. Когда вы запустите программу X Server, которую вы скачали выше, вы увидите среду рабочего стола Linux. При запуске VcXsrv, вам будет выдан лаунчер, который предлагает запустить в окне, на весь экран и т.п. Поставьте значение в графе Display number. Нажмите «Далее» и в следующем окне выберите Start no client. Далее жмите все время Next. Все готова, можете приступать к работе.

Шаг 4. Запуск рабочего стола Linux в Windows через командную строку bash ubuntu. Запустите сам VcXsrv (шаг 3), дойдите до черно окна и не закрывайте его, запустите bash командную строку ubuntu, если вы её закрыли, и введите следующее:

Таким образам отобразится графическая оболочка и появится рабочий стол Linux в Windows 10. Теперь вы можете запускать любое из предустановленного программного обеспечения Linux и даже устанавливать новые приложения и утилиты.

Смотрите еще:

  • Загрузочная флешка для установки windows 7/8.1/10
  • Как переустановить браузер EDGE в Windows 10
  • Как переустановить windows 10 Без потери лицензии
  • Как установить любые обновления Windows без Интернета
  • Как исправить ошибку ISDone.dll при установке игр в Windows 10 


Канал
Чат

Настройка консоли Ubuntu

Цвета

Увы, сразу после установки консоль (особенно вывод команды ) выглядит «бородато» и «носит свитер».

Можно добавить файл с настройками цветового оформления ( для создания файла) с этим содержимым.

Содержимое удобно добавлять из Windows, но тогда после сохранения файла в bash-терминале выполните и перезапустите терминал.

Переход к нужной директории при старте

Если при запуске терминала хочется попадать в директорию проектов, можно вписать в самом верху команду (укажите путь к нужной директории).

Алиасы

Добавим файл ( ) c этим содержимым и перезапустим bash-терминал.

Теперь по команде откроется Sublime Text (текущая папка будет показана как проект), а по команде наподобие можно быстро открывать файлы.

Странная проблема с алиасами

Я настраивал bash-терминал на двух домашних компьютерах с Windows 10 и на одном из них после добавления файла терминал при рестарте выводил 4 сообщения . Из-за чего — я так и не понял (права доступа были и владелец файла — я), но нашел строки в , которые к этому приводили. Это было подключение файла с алиасами:

Решил проблему, закомментировав эти строки и вписав алиасы прямо в  (в самом низу).

Показ git-ветки в командной строке

Шаг 1: добавим в начале функцию для показа ветки:

Шаг 2: определим переменную, отвечающую за приглашение командной строки, добавим в неё показ результата работы этой функции (см. ). Получится что-то вроде:

Мелкие улучшения

Есть довольно много действий в bash-терминале, на которые Windows 10 отреагирует звуковым сигналом (нажатие , когда уже нечего стирать, например). Чтобы это отключить, создайте со строкой .

Vim по умолчанию показывает довольно тёмный текст, что на тёмном фоне смотрится плохо. Можно создать со строкой , чтобы текст стал более читаемым.

Убедитесь, что Windows 10 совместима

Прежде чем продолжить есть один важный момент: у вас должна быть установлена 64-разрядная версия Windows.

Вы можете проверить это в Настройки> Система> О программе, где вы найдете запись Тип системы. Если вы не используете 64-разрядную систему то, вам необходимо обновить Windows 10 с 32-разрядной до 64-разрядной.

Еще одним обязательным условием является то, что вам необходимо использовать Windows 10, сборка 14393 или более поздняя. Вы можете проверить это на том же экране «О программе», который указан в разделе «Технические характеристики Windows». Ищите сборку ОС — если она выше 14393, вы можете использовать подсистему Windows для Linux. Если нет, просто запустите Центр обновления Windows.

После того, как Windows 10 станет совместимой, можно перейти к установке подсистемы Windows для Linux.

Функциональность

Пользователю доступны apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, redis, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch и большинство бинарных пакетов из архива Ubuntu, содержащих консольные и серверные приложения. При этом некоторые приложения пока остаются неработоспособны, например, из-за неполной эмуляции терминала VT100 невозможно использовать byobu, screen и tmux.

Приложения Ubuntu выполняются в отдельном представлении файловой системы, повторяющей организацию файловой иерархии в Linux. Файловые системы Windows доступны на запись в форме разделов, примонтированных в директории /mnt. Например, директория доступна как . А для Windows-приложений корневая ФС Ubuntu видна как . Для установки дополнительных пакетов и обновления системы применяется инструментарий apt с загрузкой штатных пакетов и обновлений из репозиториев Ubuntu.

В WSL подготовлена новая инфраструктура ядра Windows, которая предоставляет слой совместимости с Linux syscall API и специальный загрузчик, что позволяет напрямую запускать уже поставляемые в Ubuntu немодифицированные исполняемые файлы, так же как запускаются обычные программы для Windows. Для WSL в ядре Windows была специально реализована поддержка fork() и некоторых других специфичных системных вызовов POSIX и Linux, что позволило добиться реализации, более эффективной, чем при использовании эмуляции.

Система может запускать серверные приложения (поддержка графических приложений не планируется), но рассчитана скорее на их тестирование, чем на развёртывание замены Linux-серверов для промышленного применения. Однако утилита sysbench демонстрирует практически эквивалентные показатели работы процессора, оперативки и операций ввода-вывода. Система прошла подавляющее большинство LTP-тестов на производительность и работает хорошо. Проект нацелен только на предоставление инструментария командной строки для разработчиков.

Ошибка «unable to connect to socket: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. (10061)»

При использовании команды kex в Kali Linux (Win-KeX) может возникнуть ошибка:

unable to connect to socket: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. (10061)

В командной строке выводится:

TigerVNC Viewer 32-bit v1.10.80
Built on: 2020-06-15 22:33
Copyright (C) 1999-2020 TigerVNC Team and many others (see README.rst)
See https://www.tigervnc.org for information on TigerVNC.

Fri Sep 11 06:41:39 2020
 DecodeManager: Detected 12 CPU core(s)
 DecodeManager: Creating 4 decoder thread(s)

Fri Sep 11 06:41:41 2020
 CConn:       unable to connect to socket: Подключение не
              установлено, т.к. конечный
              компьютер отверг запрос на
              подключение. (10061)

Для исправления этой ошибки нажмите Ctrl+c.

Затем введите команду

kex stop

Эта команда может вывести что-то вроде следующего:

Killing Win-KeX process ID 1618... which was already dead
Cleaning stale pidfile '/home/mial/.vnc/HackWare-MiAl.localdomain:1.pid'!
Cleaning stale x11 lock '/tmp/.X1-lock'!
Cleaning stale x11 lock '/tmp/.X11-unix/X1'!

Вновь попробуйте открыть графический интерфейс:

kex

На этот раз всё должно заработать:

Причина ошибки до конца не ясна — возможно, дело в неудачном старте VNC сервера или процесса Win-KeX, на это указывает строка «Win-KeX process ID 1618… which was already dead», то есть процесс уже мёртвый.

Командой kex stop мы принудительно останавливаем Win-KeX, который при следующем запуске работает нормально.

Как скачать и установить дистрибутивы Linux на Windows 10, из Microsoft Store

Независимо от того, как вы решили установить Подсистему Windows для Linux (WSL) , теперь вы можете продолжить и установить один из доступных дистрибутивов Linux. Для тех, кто предпочитает щелчки и касания, самый простой способ установить дистрибутив Linux — это сделать это из Магазина Microsoft. Откройте его и выполните поиск «linux», или нажмите на эту прямую ссылку, чтобы увидеть, какие дистрибутивы Linux вы можете получить.

Когда мы опубликовали это руководство, это был список дистрибутивов Linux, доступных в Windows 10: Ubuntu, openSUSE, Kali Linux, Debian, Fedora, Pengwin, Alpine и SUSE Linux Enterprise Server.

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

В зависимости от размера дистрибутива Linux и скорости вашего интернет-соединения его загрузка может занять некоторое время. Когда загрузка закончится, Windows 10 автоматически установит дистрибутив Linux.

После завершения установки вы можете запустить новый дистрибутив Linux, нажав кнопку «Запустить» на его странице в Магазине Microsoft.

Кроме того, Windows 10 также создает удобный ярлык для дистрибутива Linux в меню «Пуск», которое можно использовать для запуска в любое время.

Установка

По умолчанию подсистемы WSL в Windows нет. Для того чтобы ее установить, необходимо включить режим разработчика Developer Mode в секции «For developers» раздела «Update & security» системных настроек Windows. Затем необходимо найти «Windows Features», выбрать пункт «Turn Windows features on or off» и включить «Windows Subsystem for Linux (Beta)». После этого нужно запустить командную строку Windows cmd.exe и ввести в ней , затем согласиться с установкой Ubuntu, когда появится соответствующий запрос. Пользователь будет уведомлен об окончании процесса установки и запуска новой среды.

Системные вызовы

WSL выполняет немодифицированные бинарные файлы Linux ELF64, виртуализуя интерфейс ядра Linux поверх ядра Windows NT. Один из интерфейсов ядра, который он предоставляет, — это системные вызовы (syscalls). Системный вызов — это сервис, предоставляемый ядром, который может вызываться из пользовательского режима. И ядро ​​Linux, и ядро ​​Windows NT предоставляют несколько сотен системных вызовов пользовательскому режиму, но они имеют разную семантику и, как правило, несовместимы напрямую. Например, ядро ​​Linux включает в себя такие системные вызовы, как fork, open и kill, а ядро ​​Windows NT имеет сопоставимые NtCreateProcess, NtOpenFile и NtTerminateProcess.

Подсистема Windows для Linux включает драйверы режима ядра (lxss.sys и lxcore.sys), которые отвечают за обработку запросов системного вызова Linux в координации с ядром Windows NT. Драйверы не содержат код из ядра Linux, но вместо этого представляют собой чистую реализацию Linux-совместимых интерфейсов ядра. В native Linux, когда системный вызов сделан из исполняемого файла пользовательского режима, он обрабатывается ядром Linux. В WSL, когда системный вызов сделан из одного и того же исполняемого файла, ядро ​​Windows NT перенаправляет запрос lxcore.sys. Где это возможно, lxcore.sys переводит системный вызов Linux на эквивалентный вызов Windows NT, который, в свою очередь, выполняет тяжелую работу. При отсутствии разумного сопоставления драйвер режима ядра Windows должен обслуживать запрос напрямую.

Например, системный вызов Linux fork () не имеет прямого эквивалентного вызова, документированного для Windows. Когда системный вызов fork выполняется в подсистеме Windows для Linux, lxcore.sys выполняет некоторые из первоначальных работ по подготовке к копированию процесса. Затем он вызывает внутренние API-интерфейсы ядра Windows NT для создания процесса с правильной семантикой и завершает копирование дополнительных данных для нового процесса.

Как смонтировать съёмные диски в подсистеме Windows для Linux

Подсистема Windows для Linux автоматически монтирует постоянные диски с файловой системой NTFS в дистрибутив Linux. То есть, если у вас есть внутренний диск C: и диск D:, то в среде Linux вы увидите их в /mnt/c и /mnt/d.

DrvFs теперь позволяет монтировать внешние диски, такие как USB-накопители, компакт-диски и DVD-диски. Эти устройства должны использовать файловую систему Windows, такую как NTFS, ReFS или FAT. Вы по-прежнему не можете подключать устройства, отформатированные в файловой системе Linux, например ext3 или ext4.

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

Допустим, у вас есть внешний носитель M: это либо USB-накопитель, либо оптический дисковод. Чтобы смонтировать его, вы должны выполнить следующие команды:

sudo mkdir /mnt/m
sudo mount -t drvfs M: /mnt/m

Конечно, вам необязательно монтировать диск в /mnt/m. Вы можете смонтировать его куда угодно. Просто замените оба экземпляра строки /mnt/m в приведённых командах на желаемый путь.

Посмотрим из Linux содержимое USB диска, который мы только что смонтировали:

ls -l /mnt/m

Чтобы позже отключить диск и безопасно удалить его, выполните стандартную команду umount:

sudo umount /mnt/m/

При работе с внешним устройством, отформатированным в файловой системе FAT или любой сетевой файловой системе, существуют некоторые ограничения. В файловой системе не учитывается регистр, и вы не можете создавать на ней символьные или жёсткие ссылки.

A Note On Filesystems

Your Linux filesystem is mounted at , as per usual. Windows is located at , or whichever drive letter is your default (additional drives are mounted as well).

Since this is all virtual, your Linux files are of course stored on the drive itself. For WSL 1, these are stored with a simple folder. WSL 2 changes things though, and stores files as a virtual hard disk image, or VHDX.

Advertisement

You can find these images at the following path, and while they can be mounted while the distro is unregistered, we don’t recommend messing with them from the Windows side.

%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState

Как получить доступ к службам Windows из Linux на WSL

Рассмотрим другой вариант — на Windows запущен сервер (веб, FTP и пр.) или сетевая служба, можно ли к ней подключиться из Linux на WSL? Можно! Нам нужно знать IP адрес Windows в виртуальной сети, созданной для WSL.

Из Linux этот IP адрес можно посмотреть командой:

ip route show default

IP адрес Windows это 172.26.160.1.

В самой Windows также можно посмотреть этот IP, причём как минимум двумя способами.

В терминале с помощью команды:

ipconfig

В графическом интерфейсе, в Диспетчере задач на вкладке «Производительность»:

Теперь используйте этот IP адрес для подключения к веб-серверу, FTP или любой другой службе Windows из Linux на WSL.

Кому не стоит переходить на Linux

Есть три весомых причины не переходить на Linux и остаться на “винде”.

Во-первых, если вы играете в топовые игры. Только крутые современные проекты могут удержать вас на Windows, поиграть в популярные сетевые игры вроде CS:GO, Dota 2, Team Fortress 2 или War Thunder можно и на Linux. Есть для бесплатной ОС как порты так и официально выходящие версии многих стратегий, симуляторов, аркад и экшенов.

Если игры для вас не самое главное и вы не против сыграть во что-то 2-5 летней давности, то можно смело переходить на Linux.

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

Не радостная ситуация и с распространенным программным обеспечением для профессионалов. То же Photoshop или Pixelmator на Linux заменить практически не чем. Лучший из графических редакторов GIMP имеет довольно скромные возможности, остается только пытаться запустить нужное приложение через среду WINE.

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

Если же вы используете популярные модели железа, ситуацию исправят несколько команд в терминале.

Во всех остальных случаях можете смело качать дистрибутив Linux и пробовать.

Лёгкий доступ к файлам в подсистеме Windows для Linux (WSL)

Вы можете открыть окно проводника прямо в текущем каталоге из среды оболочки Linux. Просто введите следующую команду в оболочку Bash:

explorer.exe .

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

Microsoft может изменить то, как это работает в будущем. Но пока вы также можете ввести следующий путь в окно проводника для доступа к файлам дистрибутива Linux:

\\wsl$\<имя-запущенного-дистрибутива>\

Другими словами, если вы используете Kali Linux, вы должны ввести:

\\wsl$\Kali-Linux\

Это, конечно, также работает из командной строки. В PowerShell или командной строке

cd \\wsl$\Kali-Linux\

Заключение

Итак, у вас с помощью WSL и симпатичного терминала запущен и готов к работе дистрибутив Linux. А что же дальше? А дальше все будет зависеть от вас: от того, что вы будете разрабатывать и, конечно же, от инструментов, которые вы предпочитаете при работе с кодом. Теперь у вас есть отличная база, чтобы эту работу начать.

Очень рекомендую редактор кода Visual Studio Code. Он тоже разработан в Microsoft и хорошо подходит для WSL. По нему есть специальное руководство:

Начало работы с Visual Studio Code и подсистемой Windows для Linux.

  • Краткая история инструментов веб-дизайна
  • 10 трендов UI-дизайна в 2021 году
  • 5 увлекательных игр для изучения основных концепций CSS

Читайте нас в Telegram, VK и

Перевод статьи Paul A. Byström: Setup a modern development environment on Windows 10

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
3D-тест
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: