Изменения взаимодействия с пользователем между WSL 1 и WSL 2User Experience Changes Between WSL 1 and WSL 2

На этой странице рассматриваются различия в работе пользователей между WSL 1 и предварительной версией WSL 2.This page goes over the user experience differences between WSL 1 and the WSL 2 preview. Основные изменения, которые следует учитывать:The key changes to be aware of are:

  • Размещайте файлы, к которым приложения Linux будут обращаться в корневой файловой системе Linux, для ускорения производительности файловPlace files that your Linux apps will access in your Linux root file system for faster file performance speed
  • В начальных сборках предварительной версии WSL 2 необходимо получить доступ к сетевым приложениям, используя IP-адрес, а не использовать localhost.In initial builds of the WSL 2 preview you will need to access network applications using an IP address and not using localhost

Ниже приведен полный список других изменений, которые вы можете заметить:And below is the full list of other changes that you may notice:

  • WSL 2 использует виртуальный диск (VHD) для хранения файлов и, если достигнут максимальный размер, может потребоваться развернуть его.WSL 2 uses a Virtual Hardware Disk (VHD) to store your files and if you reach its max size you may need to expand it
  • При запуске WSL 2 теперь будет использовать небольшую долю памяти.When starting, WSL 2 will now use a small proportion of memory
  • Скорость доступа к файлам между операционными системами будет ниже в первоначальных сборках предварительной версииCross OS file access speed will be slower in initial preview builds

Размещение файлов Linux в корневой файловой системе LinuxPlace your Linux files in your Linux root file system

Обязательно помещайте файлы, к которым будет осуществляться доступ, с помощью приложений Linux в корневой файловой системе Linux, чтобы получить преимущества производительности файлов.Make sure to put the files that you will be accessing frequently with Linux applications inside of your Linux root file system to enjoy the file performance benefits. Для ускорения доступа к файловой системе эти файлы должны находиться в корневой файловой системе Linux.These files have to be inside of the Linux root file system to have faster file system access. Мы также сделали так, чтобы приложения Windows могли получить доступ к корневой файловой системе Linux (например, в проводнике).We have also made it possible for Windows apps to access the Linux root file system (like File Explorer! Попробуйте выполнить: explorer.exe . в домашнем каталоге дистрибутив Linux и посмотрите, что произойдет, что сделает этот переход значительно проще.Try running: explorer.exe . in the home directory of your Linux distro and see what happens) which will make this transition significantly easier.

Доступ к сетевым приложениямAccessing network applications

В начальных сборках предварительной версии WSL 2 необходимо получить доступ к любому серверу Windows Server из Linux, используя IP-адрес главного компьютера.In the initial builds of the WSL 2 preview, you will need to access any Windows server from Linux using the IP address of your host machine.

Доступ к приложениям Windows из LinuxAccessing Windows applications from Linux

Для доступа к сетевому приложению Windows необходимо использовать IP-адрес главного компьютера.To access a Windows network application you'll need to use the IP address of your host machine. Это можно сделать, выполнив следующие действия.You can do so with these steps:

  • Получите IP-адрес главного компьютера, выполнив команду cat /etc/resolv.conf и скопировав IP-адрес после термина nameserver.Obtain the IP address of your host machine by running the command cat /etc/resolv.conf and copying the IP address following the term nameserver.
  • Подключитесь к любому серверу Windows Server, используя скопированный IP-адрес.Connect to any Windows server using the copied IP address.

На рисунке ниже показан пример подключения к серверу Node. js под управлением Windows через фигуру.The picture below shows an example of this by connecting to a Node.js server running in Windows via curl.

Доступ к сетевым приложениям Linux из Windows

Доступ к приложениям Linux из Windows (только в сборках ниже 18945)Accessing Linux applications from Windows (only in builds lower than 18945)

Если у вас есть сервер в WSL дистрибутив, вам потребуется найти IP-адрес виртуальной машины, чтобы подключить дистрибутив, и подключиться к нему по этому IP-адресу.If you have a server in a WSL distro, you'll need to find the IP address of the virtual machine powering your distro and connect to it with that IP address. Это можно сделать, выполнив следующие действия.You can do that by following these steps:

  • Получите IP-адрес дистрибутив, выполнив команду ip addr внутри WSL дистрибутив и находя ее в inetе eth0 интерфейса.Obtain the IP address of your distro by running the command ip addr inside of your WSL distro and finding it under the inet value of the eth0 interface.
    • Это проще всего сделать, отфильтрая выходные данные команды с помощью GREP следующим образом: ip addr | grep eth0.You can find this more easily by filtering the output of the command using grep like so: ip addr | grep eth0.
  • Подключитесь к серверу Linux с помощью указанного выше IP-адреса.Connect to your Linux server using the IP you found above.

На рисунке ниже показан пример подключения к серверу Node. js с помощью браузера Microsoft ребра.The picture below shows an example of this by connecting to a Node.js server using the Edge browser.

Доступ к сетевым приложениям Linux из Windows

Если сборка имеет значение 18945 или более поздней версии, то можно использовать localhost так же, как и обычные.If your build is 18945 or higher, you can use localhost just like normal.

Другие аспекты работы с сетьюOther networking considerations

Подключение через удаленные IP-адресаConnecting via remote IP addresses

При использовании удаленных IP-адресов для подключения к приложениям они будут рассматриваться как подключения из локальной сети (LAN).When using remote IP addresses to connect to your applications, they will be treated as connections from the Local Area Network (LAN). Это означает, что необходимо убедиться, что приложение может принимать подключения по локальной сети, т. е. может потребоваться привязать приложение к 0.0.0.0 вместо 127.0.0.1.This means that you will need to make sure your application can accept LAN connections, i.e: You might need to bind your application to 0.0.0.0 instead of 127.0.0.1. Например, в Python с помощью Flask это можно сделать с помощью команды: app.run(host='0.0.0.0').For example in python using flask this can be done with the command: app.run(host='0.0.0.0'). При внесении этих изменений учитывайте безопасность, так как это позволит устанавливать подключения из локальной сети.Please keep security in mind when making these changes, as this will allow connections from your LAN.

Доступ к WSL2 дистрибутив из локальной сети (LAN)Accessing a WSL2 distro from your local area network (LAN)

При использовании WSL1 дистрибутив, если компьютер был настроен для доступа в локальной сети, приложения, работающие в WSL, могут быть доступны в локальной сети.When using a WSL1 distro, if your computer was set up to be accessed by in your LAN, then applications run in WSL could be accessed on your LAN as well. Этот вариант не используется по умолчанию в WSL2, так как WSL2 содержит виртуализованный адаптер Ethernet с собственным IP-адресом.This isn't the default case in WSL2, as WSL2 has a virtualized ethernet adapter with its own IP address. В настоящее время для включения этого рабочего процесса необходимо выполнить те же действия, что и для обычной виртуальной машины.Currently, to enable this workflow you will need to go through the same steps as you would for a regular virtual machine. Мы рассмотрим способы улучшения этого интерфейса!We are looking into ways to improve this experience!

Доступ по протоколу IPv6IPv6 access

В настоящее время WSL2 дистрибутивов не может связаться только с IPv6-адресами.WSL2 distros currently cannot reach IPv6 only addresses. Мы работаем над добавлением этой функции.We are working on adding this feature.

Понимание WSL 2 использует виртуальный жесткий диск и что делать, если достигнут максимальный размерUnderstanding WSL 2 uses a VHD, and what to do if you reach its max size

WSL 2 сохраняет все файлы Linux в виртуальном жестком диске, использующем файловую систему ext4.WSL 2 stores all your Linux files inside of a VHD that uses the ext4 file system. Размер этого виртуального жесткого диска автоматически изменяется в соответствии с потребностями хранилища.This VHD automatically resizes to meet your storage needs. Этот виртуальный жесткий диск также имеет исходный максимальный размер 256 ГБ.This VHD also has an initial max size of 256GB. Если размер дистрибутив увеличился, чем 256 ГБ, вы увидите сообщение об ошибке, сообщающее, что закончилось место на диске.If your distro grows in size to be greater than 256GB you will see errors stating that you've run out of disk space. Их можно исправить, развернув размер виртуального жесткого диска.You can fix these by expanding the VHD size. Ниже приведены инструкции о том, как это сделать.Instructions on how to do so are below:

  1. Завершение работы всех экземпляров WSL с помощью команды wsl --shutdownTerminate all WSL instances using the wsl --shutdown command
  2. Найдите имя пакета установки дистрибутив "Паккажефамилинаме"Find your distro installation package name 'PackageFamilyName'
    • В командной строке PowerShell (где "дистрибутив" — имя распространения):In a powershell prompt (where 'distro' is your distribution name) type:
      • Get-AppxPackage -Name "*<distro>*" | Select PackageFamilyName
  3. Выберите файл виртуального жесткого диска, используемый для установки WSL 2. это будет "Пастовхд":Locate the VHD file fullpath used by your WSL 2 installation, this will be your 'pathToVHD':
    • %LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\<disk>.vhdx
  4. Измените размер виртуального жесткого диска WSL 2, выполнив следующие команды.Resize your WSL 2 VHD by completing the following commands
    • Откройте окно командной строки с правами администратора и выполните следующие команды:Open a command prompt Window with admin privileges and run the following commands:
      • diskpart
      • Select vdisk file="<pathToVHD>"
      • expand vdisk maximum="<sizeInMegaBytes>"
  5. Запуск дистрибутив WSLLaunch your WSL distro
  6. Сделайте WSL, чтобы он мог расширить свой размер файловой системы.Make WSL aware that it can expand its file system's size
    • Выполните следующие команды в WSL дистрибутив:Run these commands in your WSL distro:
      • sudo mount -t devtmpfs none /dev
      • mount | grep ext4
        • Скопируйте имя этой записи, которая будет выглядеть следующим образом:/Дев/сдкскс (с X, представляющим любой другой символ).Copy the name of this entry, which will look like: /dev/sdXX (with the X representing any other character)
      • sudo resize2fs /dev/sdXX
        • Обязательно используйте скопированное ранее значение. возможно, потребуется использовать: apt install resize2fs.Make sure to use the value you copied earlier, and you may need to use: apt install resize2fs.

Примечание. в общем случае не изменяйте, не перемещая и не обращайтесь к файлам, связанным с WSL, расположенным внутри папки AppData, с помощью инструментов или редакторов Windows.Please note: In general do not modify, move, or access the WSL related files located inside of your AppData folder using Windows tools or editors. Это может привести к повреждению дистрибутив Linux.Doing so could cause your Linux distro to become corrupted.

WSL 2 будет использовать некоторый объем памяти при запускеWSL 2 will use some memory on startup

WSL 2 использует упрощенную служебную виртуальную машину на реальном ядре Linux, чтобы обеспечить высокую производительность файловой системы и полную совместимость системных вызовов, не так как это просто простой, быстрый, интегрированный и реагирующий на запросы как WSL 1.WSL 2 uses a lightweight utility VM on a real Linux kernel to provide great file system performance and full system call compatibility while still being just as light, fast, integrated and responsive as WSL 1. Эта служебная виртуальная машина имеет небольшой объем памяти и выделит память с виртуальным адресом при запуске.This utility VM has a small memory footprint and will allocate Virtual Address backed memory on startup. Она должна начинаться с небольшой доли от общего объема памяти.It is configured to start with a small proportion of your total memory.

Скорость файлов между операционными системами будет более низкой в первоначальных сборках предварительной версииCross OS file speed will be slower in initial preview builds

Вы увидите медленные файлы по сравнению с WSL 1 при доступе к файлам Windows из приложения Linux или доступе к файлам Linux из приложения Windows.You will notice slower file speeds compared to WSL 1 when accessing Windows files from a Linux application, or accessing Linux files from a Windows application. Это результат изменения архитектуры в WSL 2, и группа WSL активно изучает, как мы можем улучшить этот процесс.This is a result of the architectural changes in WSL 2, and is something that the WSL team is actively investigating on how we can improve this experience.