Пользователь Linux пробует Windows в 2020.
Неужели WSLv2, новый терминал и PowerToys переманят меня в другой лагерь?
Я сижу на Linux уже 2 года и последние полгода проработал на Arch. И вот, что я думаю о Windows 10, посидев на нем неделю. WSL v2
Возможно, вы уже слышали о том, что Windows 10 собрался поставлять в новых версиях настоящее ядро Linux. Никаких больше Cygwin или виртуальных Linux-машин.
Он на удивление мало весит, поскольку работает на Hyper-V, практически не потребляет RAM и не нагружает ЦП. WSL v2 запуска
Пользователь Linux пробует Windows в 2020...
Неужели WSLv2, новый терминал и PowerToys переманят меня в другой лагерь?
Я сижу на Linux уже 2 года и последние полгода проработал на Arch. И вот, что я думаю о Windows 10, посидев на нем неделю.
WSL v2
Возможно, вы уже слышали о том, что Windows 10 собрался поставлять в новых версиях настоящее ядро Linux. Никаких больше Cygwin
или виртуальных Linux-машин.
Он на удивление мало весит, поскольку работает на Hyper-V
, практически не потребляет RAM и не нагружает ЦП. WSL v2
запускается быстро и даже интегрируется с VS Code
.
Так в чем подвох? Неужто он тормозит в работе? Давайте проведем анализ производительности.
Производительность WSL
Находится здесь
Я провел несколько тестов на реальных примерах в Ubuntu 20.04 и в WSL 2.
Как вы видите, производительность WSL
близка к естественной среде Ubuntu (в среднем, WSL
оказался медленнее на 8%).
GUI-приложения Linux на Windows
Microsoft недавно объявил о полной поддержке запуска GUI-приложений для Linux под WSL
— через Wayland
, и даже с поддержкой аппаратного ускорения.
Даже в NVIDIA анонсировали поддержку GPU в CUDA, которая выйдет в составе программы Insider Preview в июне.
Это круто. К сожалению, больше ничего не могу добавить, поскольку программа еще недоступна.
Терминал Windows
Несмотря на то, что Windows 1.0 вышел в 1985 году, в нем так и не появилось хорошего терминального приложения. Терминалы CMD
и Powershell
во многом уступали всем современным решениям.
Это продолжалось до тех пор, пока в прошлом году не вышел Windows Terminal
.
Ну как, лучше? Windows Terminal
поддерживает многие современные возможности:
- эмодзи;
- GPU-ускорение;
- акриловое размытие (включая пользовательские темы);
Tmux
(плитка, несколько вкладок);- несколько профилей (
cmd
,PowerShell
,bash
и т.д.).
WinGet — новый менеджер пакетов
У Apple есть Homebrew
, у Linux — … (впишите сюда свой любимый менеджер пакетов), а у Windows появился WinGet
. За окном — 2020 год, а в Microsoft наконец-то решили догнать конкурентов и выпустить собственный менеджер пакетов.
С той лишь оговоркой, что WinGet
оказался не так уж и хорош. Пока что. Устанавливаемые приложения часто требуют пользовательского взаимодействия с GUI-установщиками, из-за чего, по сути, необходимость в хорошем менеджере пакетов теряется.
Кроме того, вы будете уверены в том, что менеджер пакетов может как устанавливать, так и удалять приложения. Но, конечно же, удалять их придется самостоятельно.
Полезные утилиты
PowerToys
На мой взгляд, если говорить об организации окон на большом экране, то Windows весьма ограничен. Некоторые ярлыки либо отсутствуют, либо просто неудобны в работе. PowerToys
— очередное приложение от Microsoft, которое пытается решить эту проблему.
Например, мне пришлось изменить Alt+F4
на Win+W
. К сожалению, здесь вы не сможете с помощью клавиатуры переместить окно на другой виртуальный Рабочий стол
. Такое плиточное распределение окон не идет ни в какое сравнение с i3
или bspwm
в Linux.
Буфер обмена, скриншоты и проч.
Вот еще несколько полезных опций, которые появились со времен моей последней работы с Windows:
- менеджер буфера обмена (
Win+V
); - инструмент для создания скриншотов (
Win+Shift+S
); - запись экрана без явного снижения производительности (
Win+G
); - поиск стал намного быстрее (
Win+S
); - каким-то образом
VS Code
кажется быстрее/плавнее, чем на Linux.
Использование ресурсов
Конечно же, идеальных не бывает. И все имеет свою цену. В данном случае — это RAM. Запуск нескольких вкладок в Firefox, WSL
, VS Code
и простой NPM
-сервер займет 6 ГБ RAM. Запуск того же набора на Linux отнимет не более 3 ГБ RAM.
Windows и Linux используют ресурсы ЦП примерно одинаково. Но, на мой взгляд, Windows дольше сохраняет жизнь батареи и позволяет при необходимости прибегать к аппаратному ускорению (смотреть видео в 4k на Linux — просто ужасно). А если говорить про использование диска, то, как выяснилось, Windows «потребляет» больший объем, чем Linux. Причем цифры настолько велики, что я бы даже не взглянул в сторону Windows с разделом в 120 ГБ. Здесь нужно по меньшей мере 250 ГБ, а лучше — 500 ГБ.
Общее впечатление
Я всегда считал Windows крайне медленным для разработки. Но теперь мое мнение изменилось. Возможно, сыграло роль и покупка новой 6-ядерной машины с SSD-накопителем NVMe
. Но не секрет, что в Microsoft проделали колоссальную работу для того, чтобы разработчики переходили с MacOS/Linux на Windows.
И что теперь?
Перейду ли я снова на Linux? Пока что я пользуюсь мультисистемной загрузкой и жду возможности протестировать GUI-поддержку под WSL
. Кроме того, я бы хотел опробовать поддержку VS Code
в WSL
, когда GUI запускается под Windows, а все бинарные файлы (языковые серверы и компиляторы) прогоняются под WSL
.