Можно ли установить полноценную версию Убунты на Windows с помощью Windows Subsystem for Linux (WSL)?

В настоящее время в Windows встроен WSL, который является частью ядра Linux. Я видел несколько туториалов, где пользователи устанавливают полноценную Ubuntu внутри WSL и подключаются к ней, включая графическую оболочку через RDP. Вопрос заключается не в самой возможности установки, а в "физиологии" установленной таким образом ОС. В частности, меня интересует проблема производительности Docker в Windows, которая решается переносом на Linux. У меня уже установлена отдельная версия Linux на компьютере, и там всё работает хорошо. Мой вопрос: будет ли Linux, запущенный внутри Windows, функционировать хотя бы приблизительно на том же уровне производительности, как и отдельная ОС? Если кто-то пробовал, поделитесь своим опытом — не хотелось бы тратить время зря. Спасибо всем, кто откликнется.
  • 19 декабря 2024 г. 17:23
Ответы на вопрос 6
Установка полноценной версии Ubuntu или другой Linux-дистрибутив в Windows с использованием Windows Subsystem for Linux (WSL) действительно возможна, однако есть несколько важных аспектов, которые стоит учитывать.

### 1. **Степень интеграции с Windows**

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

### 2. **Производительность**

Когда вы запускаете Docker в WSL 2, он работает быстрее, чем в WSL 1, но все равно его производительность может быть ниже, чем при работе на "чистой" системе Linux. Это связано с накладными расходами на виртуализацию. Тем не менее, для большинства случаев использования это сокращение в производительности минимально.

**Некоторые аспекты, которые стоит учитывать:**
- **Файловая система:** WSL использует файловую систему, которая может быть менее производительной для операций ввода-вывода по сравнению с нативной Linux-файловой системой.
- **Сеть:** Может быть небольшое замедление при доступе к сетевым ресурсам, если используются сетевые мосты между WSL и Windows.

### 3. **Графическая оболочка**

К графическим интерфейсам в WSL 2 можно подключаться различными способами, например, через X-сервер (например, Xming или VcXsrv), или даже через RDP, как вы упомянули. Это может сильно варьироваться по производительности в зависимости от настроек и программного обеспечения, которое вы используете.

### 4. **Опыт использования**

Многие пользователи отмечают, что WSL 2 стал отличным решением для разработки, особенно если ваша основная система — Windows, но при этом вы хотите использовать инструменты и приложения Linux. Некоторые разработчики отмечают, что они не видят значительной разницы в производительности для большинства задач, хотя для ресурсовоемких операций (например, работы с большими объемами данных или приложениями с высокими требованиями к производительности) разница может ощутимо сказываться.

### Вывод

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

Если у вас нет острого требования к одновременной работе Windows и Linux, использование изолированного Linux-сервера может дать вам более предсказуемые результаты.
Это https://apps.microsoft.com/detail/9pn20msr04dw?hl=... и есть полноценная Ubuntu внутри WSL. 
Для того, чтобы в ней запускались графические приложения - нужно обновить версию wsl до 2 https://learn.microsoft.com/en-us/windows/wsl/install последнего релиза
https://github.com/microsoft/WSL/releases
И она работает так же хорошо, как и отдельно стоящая ОС, а также решает проблемы с тормозами docker в Windows.
будет ли вкрученная в винду линь работать хотя бы приблизительно так же хорошо, как отдельно стоящая ОС?

Нет, не будет.
Вопрос будет ли вкрученная в винду линь работать хотя бы приблизительно так же хорошо, как отдельно стоящая ОС?

В любом случае будет хуже, чем отдельно стоящая как минимум из-за того что ресурсы делятся.

Разницы по производительности между специальной wsl-убунтой и обычным образом скорее всего не будет (либо будет, но в пользу wsl-образа).
Никто не мешает доустановить все графические пакеты в wsl-убунту и также через vnc/rdp или ещё что в неё заходить.
Это будет лучше, чем обычный образ / образ в virtual box благодаря тому что используется специальный драйвер, который позволяет внутри wsl использовать видеокарту без проброса pcie
Главная беда windows, которая многократно ухудшается при использовании wsl - это медленная работа с диском, первая же статья из гугла где проводили тесты 
Methods
For this experiment, I used Windows Version 2004 build 19035.1000 on a ThinkPad X1 Extreme with 32GB of RAM and a Samsung 970 Evo Plus 1TB NVMe SSD.

The four tests are:

yarn build create-react-app: Use webpack and babel to build the basic open source create-react-app. This generates about 40KB of gzipped code.
yarn build tsnsi: Use webpack and typescript to build a large proprietary application that I work on most days. This generates about 40MB of minimized javascript code. This repo contains just over 100000 files. THANKS node_modules!
du -sh tsnsi: Calculate disk usage over the 100000 small files in the proprietary project.
du -sh cpbotha.net: Calculate disk usage over my personal blog’s hugo source files. 4700 files of varying sizes occupying about 780MB.

In all but one case (du tsnsi on WSL2 NTFS, because the spread was just too great), I ran the test multiple times, and recorded the average time in seconds. After the first run, standard deviation was low.

In all cases, the built-in Microsoft anti-virus real-time protection was disabled, as that can have a significant effect on IO-based benchmarks.

Test WSL 1 ntfs WSL 2 ntfs WSL 2 samba WSL 1 lxfs WSL 2 ext4 native linux
yarn build c-r-a 11.89 63.14 13 7.38 5.8 4.63
yarn build tsnsi 45.25 263.71 65 31.70 28.75 24.13
du tsnsi 4.9 70 - 155 (4x) 13.5 8.6 0.19 0.19
du cpbotha.net 0.24 3.7 0.5 0.074 0.011 0.015
Числа - время выполнения в секундах, антивирус отключен . Не вижу смысла что то еще добавлять.

p.s. wsl - отличная идея, 1 версия позволяет работать числодробилкам на процессоре, без заметной потери производительности, 2 версия - позволяет устаналивать драйвера на gpu и запускать приложения числодробилки на видеокартах, сам лично не пробовал но пишут что работает без потери производительности... Считаю это лучший способ постепенно уходить от windows it разработчикам, которые все еще сидят на этой платформе но не имеют никакого опыта и резко все еще опасаются это сделать. Все равно многие вещи через docker там и так уже запускаются, помучавшись с тормозами будет логично выкинуть windows и идти в мир linux,... а там надеюсь наконец и производители оборудования подтянутся.
Пользуюсь Ubuntu в WSL. Проблем нет. Даже несложные графические игры работают, а уж Docker и подавно должен
Похожие вопросы