Узнайте больше о разных версиях WSL, в том числе о том, почему WSL 2 теперь используется по умолчанию, а также о конкретных сценариях или исключениях, которые могут гарантировать переключение установленного дистрибутива Linux на более раннюю архитектуру WSL 1.
Сравнение WSL 1 и WSL 2
В этом руководстве будут сравнены WSL 1 и WSL 2, включая исключения для использования WSL 1 вместо WSL 2. Основными различиями между WSL 1 и WSL 2 являются использование фактического ядра Linux в управляемой виртуальной машине, поддержка полной совместимости вызовов системы и производительность в операционных системах Linux и Windows. WSL 2 — это текущая версия по умолчанию при установке дистрибутива Linux и использует последнюю и максимальную технологию виртуализации для запуска ядра Linux в упрощенной виртуальной машине служебной программы. WSL2 запускает дистрибутивы Linux как изолированные контейнеры на управляемой виртуальной машине. Если в настоящее время ваш дистрибутив работает на WSL 1 и вы хотите перейти на WSL 2, см. обновление от WSL 1 до WSL 2.
Сравнение функций
Особенность
WSL 1
WSL 2
Интеграция между Windows и Linux
✅
✅
Время быстрой загрузки
✅
✅
Меньшее использование ресурсов по сравнению с традиционными виртуальными машинами
✅
✅
Выполняется с текущими версиями VMware и VirtualBox
✅
❌
Управляемая виртуальная машина
❌
✅
Полное ядро Linux
❌
✅
Полная совместимость системных вызовов
❌
✅
Производительность в файловой системе ОС
✅
❌
системная поддержка
❌
✅
Поддержка IPv6
✅
✅
Как можно сказать из приведенной выше таблицы сравнения, архитектура WSL 2 превышает WSL 1 несколькими способами, за исключением производительности файловых систем ОС, которые можно устранить, сохраняя файлы проекта в той же операционной системе, что и средства, которые вы выполняете для работы над проектом.
WSL 2 доступен только в Windows 11 или Windows 10 версии 1903, сборке 18362 или более поздней версии. Проверьте версию Windows, нажав клавишу с логотипом Windows + R, введите winver, нажмите ОК. (Или введите команду ver в командной строке Windows. Может потребоваться обновление до последней версии Windows. Для сборок, версии которых меньше 14393, WSL вообще не поддерживается.
WSL 2 будет работать с VMware 15.5.5+, и хотя заявляется, что в VirtualBox 6+ поддерживается WSL, всё ещё существуют значительные проблемы, которые делают его неподдерживаемым. Узнайте больше в наших часто задаваемых вопросах.
Новые возможности WSL 2
WSL 2 — это основной ремонт базовой архитектуры и использование технологии виртуализации и ядра Linux для включения новых функций. Основными целями этого обновления являются повышение производительности файловой системы и добавление полной совместимости вызовов системы.
Традиционный интерфейс виртуальной машины может быть медленным для загрузки, изолирован, потребляет много ресурсов и требует времени для управления им. WSL 2 не имеет этих атрибутов.
WSL 2 предоставляет преимущества WSL 1, включая простую интеграцию между Windows и Linux, быстрое время загрузки, небольшой объем ресурсов и не требует настройки виртуальной машины или управления. Хотя WSL 2 использует виртуальную машину, она управляется и выполняется за кулисами, оставляя вас с тем же интерфейсом пользователя, что и WSL 1.
Полное ядро Linux
Ядро Linux в WSL 2 создается корпорацией Майкрософт из последней стабильной ветви на основе источника, доступного в kernel.org. Это ядро было специально настроено для WSL 2, оптимизированное для размера и производительности, чтобы обеспечить удивительный интерфейс Linux в Windows. Ядро будет обслуживаться обновлениями 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, так как он обеспечивает более высокую производительность и полную совместимость системных вызовов (100%). Однако существует несколько конкретных сценариев, в которых можно использовать WSL 1. Рассмотрите возможность использования WSL 1, если:
Файлы проекта должны храниться в файловой системе Windows. WSL 1 обеспечивает более быстрый доступ к файлам, подключенным из Windows.
Если вы будете использовать дистрибутив WSL Linux для доступа к файлам проекта в файловой системе Windows, и эти файлы не могут храниться в файловой системе Linux, вы обеспечите более высокую производительность в системах файлов ОС с помощью WSL 1.
Проект, для которого требуется перекрестная компиляция с помощью средств Windows и Linux в одних и том же файлах.
Производительность файловых операций в операционных системах Windows и Linux выше в WSL 1 по сравнению с WSL 2, поэтому, если вы используете приложения Windows для доступа к файлам Linux, в настоящее время вы получите более высокую производительность с помощью WSL 1.
Для проекта требуется доступ к последовательному порту или USB-устройству.
Однако поддержка USB-устройств теперь доступна для WSL 2 через проект USBIPD-WIN. Инструкции по настройке см. в статье Подключение USB-устройств.
Использование памяти WSL 2 увеличивается и уменьшается по мере использования. Когда процесс освобождает память, она автоматически возвращается в Windows. Однако в настоящий момент WSL 2 еще не освобождает кэшированные страницы в памяти в систему Windows, пока работа экземпляра WSL не завершена. Если у вас есть длительные сеансы WSL или доступ к очень большому количеству файлов, этот кэш может занять память в Windows. Мы отслеживаем работу по улучшению этого интерфейса в выпуске репозитория WSL GitHub 4166.
Для тех, кто использует VirtualBox, обязательно используйте последнюю версию VirtualBox и WSL 2. См. часто задаваемые вопросы по теме , указанные в.
Если вы полагаетесь на дистрибутив Linux, чтобы иметь IP-адрес в той же сети, что и на хост-компьютере, может потребоваться настроить обходное решение для запуска WSL 2. WSL 2 выполняется как виртуальная машина Hyper-V. Это изменение от мостового сетевого адаптера, использовавшегося в WSL 1, с указанием, что WSL 2 использует службу преобразования сетевых адресов (NAT) для своей виртуальной сети, вместо подключения к сетевой карте хоста, что приводит к уникальному IP-адресу, который изменится при перезапуске. Дополнительные сведения о проблеме и обходном пути перенаправления TCP-портов служб WSL 2 в хост-ОС см. в статье репозиторий WSL GitHub с проблемой 4150, режим моста сетевого адаптера (обходной путь TCP).
Примечание
Попробуйте использовать расширение VS Code удаленное WSL, чтобы вы могли хранить файлы проекта в файловой системе Linux, использовать средства командной строки Linux, как и использовать VS Code в Windows для создания, редактирования, отладки или запуска проекта в интернет-браузере без каких-либо падений производительности при работе с файловыми системами Linux и Windows.
Дополнительные сведения.
WSL в Microsoft Store
WSL поднял функциональные возможности обновления из образа ОС Windows в пакет, доступный через Microsoft Store. Это означает более быстрые обновления и обслуживание, как только они будут доступны, а не ждать обновления операционной системы Windows.
WSL изначально был включен в операционную систему Windows как необязательный компонент, который должен быть включен для установки дистрибутива Linux. WSL в Магазине имеет тот же интерфейс пользователя и является тем же продуктом, но получает обновления и обслуживание в виде пакета магазина, а не всего обновления ОС. Начиная с версии Windows 19044 или более поздней, выполнение команды wsl.exe --install установит обновление обслуживания WSL из Microsoft Store. (См. запись блога об объявлении об этом обновлении). Если вы уже используете WSL, вы можете обновить WSL, чтобы убедиться, что получаете последние функции и обновления из магазина, выполнив wsl.exe --update.
Примечание
Если Microsoft Store недоступна в вашей организации, вы по-прежнему можете использовать эту версию WSL, добавив --web-download в команду --update, например wsl --update --web-download. Необходимо вручную обновлять WSL каждый раз, когда новый выпуск становится доступным с помощью этого метода.
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о
Windows Subsystem for Linux
Windows Subsystem for Linux
— это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
В этом модуле вы узнаете, как использовать подсистема Windows для Linux (WSL) с Visual Studio Code (VS Code). Мы рассмотрим процесс установки и основы использования WSL. Кроме того, мы устанавливаем и используем расширение WSL Visual Studio Code. Наконец, мы покажем, как отлаживать и запускать код Python в VS Code в нашей среде WSL.