Можно ли установить полноценную версию Убунты на 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-сервера может дать вам более предсказуемые результаты.
Это <a href="https://apps.microsoft.com/detail/9pn20msr04dw?hl=en-us&amp;gl=US" rel="nofollow">https://apps.microsoft.com/detail/9pn20msr04dw?hl=...</a> и есть полноценная Ubuntu внутри WSL. <br/> Для того, чтобы в ней запускались графические приложения - нужно обновить версию wsl до 2 <a href="https://learn.microsoft.com/en-us/windows/wsl/install" rel="nofollow">https://learn.microsoft.com/en-us/windows/wsl/install</a> последнего релиза <br/> <a href="https://github.com/microsoft/WSL/releases" rel="nofollow">https://github.com/microsoft/WSL/releases</a> <br/> И она работает так же хорошо, как и отдельно стоящая ОС, а также решает проблемы с тормозами docker в Windows.
<blockquote>будет ли вкрученная в винду линь работать хотя бы приблизительно так же хорошо, как отдельно стоящая ОС?</blockquote> <br/> Нет, не будет.
<blockquote> Вопрос будет ли вкрученная в винду линь работать хотя бы приблизительно так же хорошо, как отдельно стоящая ОС?</blockquote> <br/> В любом случае будет хуже, чем отдельно стоящая как минимум из-за того что ресурсы делятся. <br/> <br/> Разницы по производительности между специальной wsl-убунтой и обычным образом скорее всего не будет (либо будет, но в пользу wsl-образа). <br/> Никто не мешает доустановить все графические пакеты в wsl-убунту и также через vnc/rdp или ещё что в неё заходить. <br/> Это будет лучше, чем обычный образ / образ в virtual box благодаря тому что используется специальный драйвер, который позволяет внутри wsl использовать видеокарту без проброса pcie
Главная беда windows, которая многократно ухудшается при использовании wsl - это медленная работа с диском, первая же <a href="https://vxlabs.com/2019/12/06/wsl2-io-measurements/" rel="nofollow">статья</a> из гугла где проводили тесты <br/> <blockquote><div class="spoiler"><b class="spoiler_title">Methods</b><div class="spoiler_text">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.<br/>
<br/>
The four tests are:<br/>
<br/>
    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.<br/>
    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!<br/>
    du -sh tsnsi: Calculate disk usage over the 100000 small files in the proprietary project.<br/>
    du -sh cpbotha.net: Calculate disk usage over my personal blog’s hugo source files. 4700 files of varying sizes occupying about 780MB.<br/>
<br/>
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.<br/>
<br/>
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.</div></div><br/>
<table>
<tr>
<th>Test</th>
<th>WSL 1 ntfs</th>
<th>WSL 2 ntfs</th>
<th>WSL 2 samba</th>
<th>WSL 1 lxfs</th>
<th>WSL 2 ext4</th>
<th>native linux</th>
</tr>
<tr>
<td>yarn build c-r-a</td>
<td>11.89</td>
<td>63.14</td>
<td>13</td>
<td>7.38</td>
<td>5.8</td>
<td>4.63</td>
</tr>
<tr>
<td>yarn build tsnsi</td>
<td>45.25</td>
<td>263.71</td>
<td>65</td>
<td>31.70</td>
<td>28.75</td>
<td>24.13</td>
</tr>
<tr>
<td>du tsnsi</td>
<td>4.9</td>
<td>70 - 155 (4x)</td>
<td>13.5</td>
<td>8.6</td>
<td>0.19</td>
<td>0.19</td>
</tr>
<tr>
<td>du cpbotha.net</td>
<td>0.24</td>
<td>3.7</td>
<td>0.5</td>
<td>0.074</td>
<td>0.011</td>
<td>0.015</td>
</tr>
</table></blockquote> Числа - время выполнения в секундах, <b>антивирус отключен</b> . Не вижу смысла что то еще добавлять. <br/> <br/> p.s. wsl - отличная идея, 1 версия позволяет работать числодробилкам на процессоре, без заметной потери производительности, 2 версия - позволяет устаналивать драйвера на gpu и запускать приложения числодробилки на видеокартах, сам лично не пробовал но <a href="https://developer.nvidia.com/blog/leveling-up-cuda-performance-on-wsl2-with-new-enhancements/" rel="nofollow">пишут</a> что работает без потери производительности... Считаю это лучший способ постепенно уходить от windows it разработчикам, которые все еще сидят на этой платформе но не имеют никакого опыта и резко все еще опасаются это сделать. Все равно многие вещи через docker там и так уже запускаются, помучавшись с тормозами будет логично выкинуть windows и идти в мир linux,... а там надеюсь наконец и производители оборудования подтянутся.
Пользуюсь Ubuntu в WSL. Проблем нет. Даже несложные графические игры работают, а уж Docker и подавно должен
Похожие вопросы