Windows subsystem for linux (wsl) версии 2: как это будет? (faq)

Запуск приложений с графическим пользовательским интерфейсом Linux

Для загрузки и установки популярных приложений Linux можно выполнить следующие команды в терминале Linux. При использовании другого дистрибутива, отличного от Ubuntu, он может использовать диспетчер пакетов, отличный от apt. После установки приложения Linux его можно найти в меню » Пуск » под именем распространения. Например: .

Установка Gedit

Gedit является текстовым редактором по умолчанию среды GNOME Desktop.

Чтобы запустить файл bashrc в редакторе, введите:

Установка ГИМП

ГИМП — это свободный графический редактор с открытым исходным кодом, который используется для обработки изображений и редактирования изображений, рисования произвольной формы, перекодирования между различными форматами файлов изображений и более специализированных задач.

Для запуска введите:

Установка Наутилус

Наутилус, также известные как файлы GNOME, — это диспетчер файлов для рабочего стола GNOME. (одинаковые в Windows Explorer).

Для запуска введите:

Установка Влк

Влк — это бесплатный мультимедийный проигрыватель и платформа с открытым исходным кодом, который воспроизводит большинство мультимедийных файлов.

Для запуска введите:

Установка приложений X11

X11 — это система окон Linux, которая представляет собой набор приложений и средств, поставляемых с ней, таких как ксклокк, кскалк калькулятор, ксклипбоард для вырезания и вставки, Ксев для тестирования событий и т. д. Дополнительные сведения см. в документации по x.org .

Для запуска введите имя инструмента, который вы хотите использовать. Вот несколько примеров.

xcalc, xclock, xeyes

Установка Google Chrome для Linux

Чтобы установить Google Chrome для Linux, выполните следующие действия.

  1. Измените каталоги во временную папку:
  2. Используйте wget, чтобы скачать его:
  3. Получить текущую стабильную версию:
  4. Исправьте пакет:
  5. Настройте пакет:

Для запуска введите:

установка Microsoft Teams для Linux

установка Microsoft Teams для Linux:

  1. Измените каталоги во временную папку:
  2. Используйте фигурную скобку для скачивания пакета:
  3. Для установки используйте apt:

Для запуска введите:

установка обозревателя Microsoft Edge для Linux

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

Для запуска введите:

Разработка

Первый набег 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 или более позднюю.

Новые возможности в WSL 2

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

  • Часто задаваемые вопросы о WSL 2

Архитектура WSL 2

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

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

Полнофункциональное ядро Linux

Ядро Linux в WSL 2 собрано собственными силами корпорации Майкрософт на основе последней стабильной ветви исходного кода, доступного по адресу kernel.org. Этот ядро специально настроено для WSL 2 путем оптимизации размера и производительности, чтобы обеспечить невероятное взаимодействие с Linux в Windows. Ядро будет обслуживаться обновлениями Windows. Это означает, что вы получите новейшие исправления безопасности и улучшения ядра без необходимости заниматься этим самостоятельно.

Ядро Linux WSL 2 — это проект с открытым исходным кодом. Если вы хотите узнать больше, ознакомьтесь с записью блога Реализация ядра Linux в Windows, созданной группой, которая занималась сборкой ядра.

Повышенная производительность операций ввода-вывода файлов

Команды для операций с большими объемами файлов, такие как git clone, npm install, apt update, apt upgrade и другие, с WSL 2 выполняются заметно быстрее.

Фактическое увеличение скорости будет зависеть от того, какое приложение вы используете и как оно взаимодействует с файловой системой. Первоначальные версии WSL 2 запускаются в 20 раз быстрее по сравнению с WSL 1 при распаковке сжатого архива tarball и в 2–5 раз быстрее при использовании команд git clone, npm install и cmake в различных проектах.

Полная совместимость системных вызовов

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

  • целый ряд новых приложений, которые можно запускать внутри WSL, например Docker и другие;

  • все обновления ядра Linux немедленно готовы к использованию. (Вам не нужно ждать, пока специалисты WSL реализуют обновления и добавят изменения).

Исключения для использования WSL 1 вместо WSL 2

Рекомендуется использовать WSL 2, так как он обеспечивает более высокую производительность и полную совместимость системных вызовов. Однако существует несколько отдельных сценариев, в которых использовать WSL 1 может оказаться более предпочтительным. Рекомендуем использовать WSL 1, если:

  • Файлы проекта должны храниться в файловой системе Windows. WSL 1 обеспечивает более быстрый доступ к файлам, подключенным из Windows.
  • Проект, для которого требуется перекрестная компиляция с использованием средств Windows и Linux на одних и тех же файлах.
  • Вашему проекту требуется доступ к последовательному порту или USB-устройству.
  • WSL 2 не поддерживает доступ к последовательным портам. Дополнительные сведения см. в статье или в проблеме в репозитории GitHub, посвященной поддержке последовательных портов.
  • У вас есть строгие требования к памяти

Примечание

Попробуйте использовать удаленное расширение WSL VS Code, чтобы хранить файлы проекта в файловой системе Linux, используя средства командной строки Linux. Также с помощью VS Code в Windows можно создавать, редактировать, отлаживать или запускать проекты в браузере без снижения производительности, связанной с работой в файловых системах Linux и Windows. Подробнее.

Ways to run WSL

There are several ways to run a Linux distribution with WSL once it’s installed:

  1. The number one way that we recommend you run Linux distributions is by installing Windows Terminal. Using Windows Terminal enables you to open multiple tabs or window panes to display and quickly switch between multiple Linux distributions or other command lines (PowerShell, Command Prompt, PowerShell, Azure CLI, etc). You can fully customize your terminal with unique color schemes, font styles, sizes, background images, and custom keyboard shortcuts. Learn more.
  2. You can directly open your Linux distribution by visiting the Windows Start menu and typing the name of your installed distributions. For example: «Ubuntu». This will open Ubuntu in it’s own console window.
  3. From Windows Command Prompt or PowerShell, you can enter the name of your installed distribution. For example:
  4. From Windows Command Prompt or PowerShell, you can open your default Linux distribution inside your current command line, by entering: .
  5. From Windows Command Prompt or PowerShell, you can use your default Linux distribution inside your current command line, without entering a new one, by entering:. Replacing with a WSL command, such as: to list installed distributions or to see where the current directory path is mounted in wsl. From PowerShell, the command will provide the date from the Windows file system and will provide the date from the Linux file system.

The method you select should depend on what you’re doing. If you’ve opened a WSL command line within a Windows Prompt or PowerShell window and want to exit, enter the command: .

Справочник по командной строке

Подключение определенной файловой системы

По умолчанию WSL 2 будет пытаться подключить устройство как ext4. Чтобы указать другую файловую систему, выполните команду:

Например, чтобы подключить диск в файловой системе FAT, выполните команду:

Примечание

Чтобы получить список доступных файловых систем в WSL2, выполните команду:
если диск подключен через WSL2 (файловая система Linux), он больше не доступен для подключения через драйвер ext4 в Windowsной файловой системе.

Подключение определенного раздела

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

Это работает только в том случае, если диск является основной загрузочной записью (MBR) или GPT (таблица разделов GUID). .

Указание параметров подключения

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

Пример

Примечание

В настоящее время поддерживаются только параметры файловой системы. Универсальные параметры, такие как , не поддерживаются.

Подключение диска без подключения

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

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

Отсоединение диска

Чтобы отсоединить диск от WSL 2, выполните команду:

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

Примечание

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

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

После установки WSL поддерживаются следующие основные команды.

Назначьте дистрибутив Linux для установки помимо установленного по умолчанию (Ubuntu), заменив именем дистрибутива. Эту команду можно также указать так: .

Список установленных дистрибутивов Linux

Выводит список дистрибутивов Linux, установленных на компьютере под управлением Windows, в том числе состояние (независимо от того, запущен дистрибутив или остановлен) и версию WSL, в которой работает дистрибутив (WSL 1 или WSL 2). Применяется в WSL 1 и WSL 2. Эту команду можно также указать так: . Дополнительные параметры, которые можно использовать с командой list:  — для перечисления всех дистрибутивов,  — для вывода списка только тех дистрибутивов, которые запущены в данный момент,  — для отображения только имен дистрибутивов.

Указание версии WSL (1 или 2)

Чтобы указать версию WSL (1 или 2), в которой работает дистрибутив Linux, измените на имя дистрибутива, а  — на число 1 или 2. Применяется в WSL 1 и WSL 2.

Указание версии WSL по умолчанию

Чтобы задать WSL 1 или WSL 2 как версию по умолчанию, измените на число 1 или 2, чтобы указать версию WSL, которая будет использоваться по умолчанию для установки новых дистрибутивов Linux. Например, . Применяется в WSL 1 и WSL 2.

Указание дистрибутива Linux по умолчанию

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

Запуск определенного дистрибутива Linux из PowerShell или CMD

Чтобы запустить определенный дистрибутив Linux от имени конкретного пользователя, измените на имя предпочитаемого дистрибутива Linux (например, Debian), а  — на имя существующего пользователя (например, root). Если указанный пользователь не существует в дистрибутиве WSL, появится сообщение об ошибке. Чтобы ввести имя текущего пользователя, выполните команду .

Обновление WSL

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

Проверка состояния WSL

Отображает общие сведения о конфигурации WSL, такие как тип дистрибутива по умолчанию, дистрибутив по умолчанию и версия ядра.

Shutdown

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

Завершение

Чтобы завершить работу определенного дистрибутива или остановить его выполнение, замените именем нужного дистрибутива.

Импорт нового дистрибутива

Импорт указанного TAR-файла в качестве нового дистрибутива. Именем файла может быть «-» для стандартного ввода. С этой командой также можно использовать параметр , чтобы указать, где будет выполняться импортированный дистрибутив: в WSL 1 или WSL 2.

Отмена регистрации или удаление дистрибутива Linux

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

Установка терминала Windows (дополнительно)

Если хотите, можете продолжать использовать этот терминал. Лично я предпочитаю терминал с дополнительными параметрами настройки. И в качестве такового Microsoft предлагает Windows Terminal («Терминал Windows»). Для его установки надо:

  1. Открыть Microsoft Store.
  2. Найти Windows Terminal.
  3. Нажать на кнопку install.

Цветовая схема

Доступных вариантов настройки довольно много. Загляните в официальную документацию, и вы найдете тот вариант, который вам понравится.

Если потребуется помощь в настройке терминала, посмотрите мой ролик на Youtube о том:

Как установить и настроить терминал Windows.

Global configuration options with .wslconfig

You can add a file named to your Windows home directory (e.g: ) to control global WSL options across Linux distributions. Please see the sample file below as an example.

Note

Global configuration options with in only available for distributions running as WSL 2 in Windows Build 19041 and later. Keep in mind you may need to run to shut down the WSL 2 VM and then restart your WSL instance for these changes to take affect.

This file can contain the following options:

Options for .wslconfig

Section label:

These settings affect the VM that powers any WSL 2 distribution.

key value default notes
kernel string The Microsoft built kernel provided inbox An absolute Windows path to a custom Linux kernel.
memory size 50% of total memory on Windows or 8GB, whichever is less; on builds before 20175: 80% of your total memory on Windows How much memory to assign to the WSL 2 VM.
processors number The same number of processors on Windows How many processors to assign to the WSL 2 VM.
localhostForwarding boolean Boolean specifying if ports bound to wildcard or localhost in the WSL 2 VM should be connectable from the host via .
kernelCommandLine string Blank Additional kernel command line arguments.
swap size 25% of memory size on Windows rounded up to the nearest GB How much swap space to add to the WSL 2 VM, 0 for no swap file.
swapFile string An absolute Windows path to the swap virtual hard disk.

Entries with the value must be Windows paths with escaped backslashes, e.g:

Entries with the value must be a size followed by a unit, for example or .

WSL 2 setting preview options

These options are only available in the latest preview builds if you are on the latest builds of the Windows Insiders program.

Шаги по установке вручную Manual Installation Steps

Если вы не используете сборку для участников программы предварительной оценки Windows, компоненты, необходимые для WSL, потребуется включить вручную. Для этого выполните приведенные ниже шаги. If you are not on a Windows Insiders build, the features required for WSL will need to be enabled manually following the steps below.

Перед установкой дистрибутивов Linux в Windows необходимо включить дополнительный компонент «Подсистема Windows для Linux». You must first enable the «Windows Subsystem for Linux» optional feature before installing any Linux distributions on Windows.

Запустите PowerShell с правами администратора и выполните следующую команду. Open PowerShell as Administrator and run:

Для обновления до WSL 2 требуется Windows 10. To update to WSL 2, you must be running Windows 10.

Чтобы проверить версию и номер сборки, нажмите клавиши Windows+R, введите winver и нажмите кнопку ОК. To check your version and build number, select Windows logo key + R, type winver, select OK. В меню «Параметры» выполните обновление до последней версии Windows. Update to the latest Windows version in the Settings menu.

Перед установкой WSL 2 необходимо включить необязательный компонент Платформа виртуальных машин. Before installing WSL 2, you must enable the Virtual Machine Platform optional feature. Для использования этой функции на компьютере потребуются возможности виртуализации. Your machine will require virtualization capabilities to use this feature.

Запустите PowerShell с правами администратора и выполните следующую команду. Open PowerShell as Administrator and run:

Перезапустите компьютер, чтобы завершить установку и обновление WSL до WSL 2. Restart your machine to complete the WSL install and update to WSL 2.

Скачайте пакет последней версии: Download the latest package:

Откройте PowerShell и выполните следующую команду, чтобы задать WSL 2 в качестве версии по умолчанию при установке нового дистрибутива Linux: Open PowerShell and run this command to set WSL 2 as the default version when installing a new Linux distribution:

Откройте Microsoft Store и выберите предпочтительный дистрибутив Linux. Open the Microsoft Store and select your favorite Linux distribution.

Ниже приведены ссылки на страницы Microsoft Store для каждого дистрибутива: The following links will open the Microsoft store page for each distribution:

На странице дистрибутива щелкните «Получить». From the distribution’s page, select «Get».

При первом запуске недавно установленного дистрибутива Linux откроется окно консоли, и вам будет предложено подождать минуту или две, чтобы файлы распаковались и сохранились на компьютере. The first time you launch a newly installed Linux distribution, a console window will open and you’ll be asked to wait for a minute or two for files to de-compress and be stored on your PC. Все будущие запуски должны занимать меньше секунды. All future launches should take less than a second.

Поздравляем! Вы успешно установили и настроили дистрибутив Linux, который полностью интегрирован с операционной системой Windows. CONGRATULATIONS! You’ve successfully installed and set up a Linux distribution that is completely integrated with your Windows operating system!

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

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 для создания процесса с правильной семантикой и завершает копирование дополнительных данных для нового процесса.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

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