Год на Linux. Почему я не планирую возвращаться на Windows?

Эта статья посвящена моему переходу на Linux, который я совершил около года назад. Я расскажу о причинах, по которым я принял такое решение, выделю преимущества и недостатки Linux в повседневном использовании. Просто о сложном.

Предыстория

С Linux’ом я познакомился в 10 классе. Ранее я слышал о том, что есть такая система, но именно тогда у меня появилась возможность попробовать с ним поработать.

Существует такая технология, как WSL — Windows Subsystem for Linux. Она позволяет запускать дистрибутивы Linux внутри Windows посредством виртуализации. По сути, это виртуальная машина, которая запускает ядро Linux, позволяя работать с ним без установки.

Когда я узнал про WSL, мне стало интересно, что он из себя представляет, поэтому я установил Arch Linux по гайду, который нашёл на GitHub. Конечно, Arch — это довольно спорный выбор для первого дистрибутива, даже в WSL, но позже я расскажу, почему не жалею об этом выборе. На это также повлияло то, что многие программисты упоминали Linux и говорили, что он лучше подходит для разработки.

Постепенно, я стал использовать WSL всё больше и больше. Если вначале я просто изучал систему, то позже стал использовать утилиты командной строки для работы, а затем и вовсе стал разрабатывать свои проекты в нём. Например, Lunatic я полностью разработал в подсистеме.

Что подтолкнуло к переходу

То, что я рассказал выше, уже можно считать достаточно весомой причиной для полноценного перехода на Linux. Из “игрушки” WSL превратился в полноценный инструмент для работы. И всё-таки, сомнения ещё оставались. Во-первых, Windows “просто работал”, а, как известно, принцип “Работает — не трогай” крайне популярен среди людей технического склада ума. Во-вторых, у меня были сомнения насчёт доступного ПО. Не секрет, что далеко не все программы можно запустить на Linux. Это также относится к играм, ведь в основном их разрабатывают только для Windows. Наконец, мне казался сложным один конкретный этап установки — разметка диска. Я опасался, что не смогу правильно воспроизвести его, что приведёт к неработающей системе.

Сомнения мне помогло преодолеть одно обстоятельство, а именно — производительность. Именно это стало для меня определяющим фактором перехода. Я работаю на сравнительно “слабом” ноутбуке, и порой у меня не получалось запустить одновременно несколько требовательных программ. В частности, нельзя было сразу работать в браузере и в IDE — не хватало оперативной памяти. Даже когда я стал писать всё в WSL, отказавшись от IDE в пользу Neovim’а, скорость работы оставляла желать лучшего.

Какой дистрибутив я установил

Среди дистрибутивов Linux для новичков, как правило, выделяют Ubuntu и Linux Mint. Первая в представлении не нуждается — это, пожалуй, самый известный дистрибутив, который в какой-то степени считается “Linux’ом по умолчанию”. Про Mint хочется рассказать подробнее.

Linux Mint основан на Ubuntu (но также есть версия, основанная на Debian). Основной его особенностью является окружение рабочего стола Cinnamon — его разрабатывает команда дистрибутива; это окружение просто в использовании, хорошо кастомизируется, а также оно более производительно, чем популярные KDE и GNOME. Linux Mint, как мне кажется, является лучшим дистрибутивом для начинающих.

Установка системы прошла быстро и без трудностей. Сейчас многие дистрибутивы ставятся, как любят говорить опытные пользователи, “левой кнопной мыши”. И действительно, параметры по умолчанию, которые предлагают графические установщики, подходят большинству пользователей. И всё же я решил разметить диск вручную, а именно:

  1. Первый раздел — системный (/boot). Он необходим для загрузки системы в режиме UEFI, которая применяется на всех современных устройствах.
  2. Второй — раздел подкачки (или swap). Он используется системой в том случае, если оперативной памяти недостаточно.
  3. Третий — корневой раздел. Сюда устанавливается непосредственно система: исполняемые файлы, системные конфигурации и проч.
  4. Последний, но не по значимости — домашний раздел (/home). Его создание необязательно, но он облегчает резервное копирование данных, установку других дистрибутивов, то есть делает разметку более гибкой.

Надо полагать, более продвинутый читатель знаком с утилитой lsblk, её вывод представлен ниже:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0 238.5G  0 disk 
├─nvme0n1p1 259:1    0   487M  0 part /boot
├─nvme0n1p2 259:2    0   3.8G  0 part [SWAP]
├─nvme0n1p3 259:3    0  93.1G  0 part /
└─nvme0n1p4 259:4    0 141.1G  0 part /home

Работа в Linux

Под работой я рассмотрю две позиции: офис (тексты, презентации и тому подобное) и разработка.

Офисные приложения

Linux Mint поставляется с установленным офисным пакетом LibreOffice — это свободный набор приложений для работы с электронными документами, таблицами, презентациями. Одним словом — альтернатива MS Office.


Снимок экрана LibreOffice Writer (текстовый процессор).
Снимок экрана LibreOffice Writer (текстовый процессор).

Альтернатива, впрочем, обладает рядом недостатков. С одной стороны, весь базовый функционал реализован: есть поддержка различных форматов файлов, широкие возможности для форматирования, а также множество функций, которые пользователь ожидает от подобного ПО. С другой стороны, весь пакет кажется “недоделанным”:

  • Некоторые функции просто отсутствуют. Например, для решения некоторых заданий ЕГЭ мне необходимо было использовать “LibreOffice Calc” (аналог MS Excel); те способы решения, которые работали на уроках в классе, не получалось воспроизвести дома.
  • Иконки интерфейса отображаются в низком разрешении.
  • Меню и навигация реализованы неинтуитивно, сложно найти тот или иной инструмент.

Безусловно, на такие недочёты можно закрыть глаза. Сказать, что основной функционал работает. Назвать автора предвзятым и придирчивым. Но именно из таких мелочей и складывается удобство использования. В конечном итоге программа пишется для пользователя. Это, впрочем, не отменяет заслуг LibreOffice. В частности, мне очень понравилось работать с LibreOffice Impress — это программа для создания презентаций. Я не ощутил недостатка какого-либо инструментария, разве что пришлось привыкнуть к другому интерфейсу.

К слову, очень полезно смотреть на собственные проекты с точки зрения пользователя. Тот, кому предстоит применять вашу (или мою) программу, ожидает удобство, понятность и доступность. И напротив, его не интересует многослойная архитектура с тысячей слоёв абстракций, которую мы создали.

В этот раздел я также решил включить почту, ведь нам всем, хотим мы того или нет, приходится иметь с ней дело. На Windows я использовал Mailspring — достаточно удобный почтовый клиент. Он кроссплатформенный, так что я без проблем смог запустить его и на Linux. Тут, впрочем, стоит отметить, что корректно работает он не всегда. В частности, у него нет поддержки Wayland, который становится всё более и более распостранённым.

Есть и другие почтовые программы, такие как Mozilla Thunderbird, Evolution и им подобные. Далеко не каждый использует почтовые клиенты, но у тех, кто предпочитает их браузеру, проблем на Linux’е быть не должно.

Разработка

Именно здесь тема перехода на Linux раскрывается по-настоящему. Не для кого не секрет, что значительная (если не бо́льшая) часть пользователей этой операционной системы работают в сфере информационных технологий. И у этого есть немало причин.

Начать стоит с того, что многие инструменты для разработчиков доступны только на Linux (и иногда на macOS). tmux, Docker, Kubernetes, NGINX и другие. Конечно, их можно запустить с помощью WSL, однако полноценно работать с ними можно только на Linux. Некоторые инструменты, такие как git, различные компиляторы и интерпретаторы, работают на всех системах, но установить и настроить их проще в Linux. К примеру, язык программирования Python на Windows нередко работает некорректно, а иногда и вовсе не работает.

Кроме того, Linux позволяет автоматизировать многие задачи. Для повторяющихся команд можно написать скрипт, создать сервис systemd, запланировать задачу, используя crontab и так далее. Одним словом, это огромный пласт, который практически полностью отсутствует в Windows. Это даёт возможность повысить скорость работы напрямую, сфокусировав внимание на решении сложных, а не рутинных задач.

Говоря о продуктивности, нельзя не отметить, что именно Linux, с его многообразием окружений рабочих столов, оконных менеджеров и композиторов, позволяет настроить систему под нужды пользователя. В отличие от него macOS и Windows рассчитаны на широкий круг пользователей; они предоставляют универсальный интерфейс, который подходит всем. Но всем угодить невозможно.

Если подытожить, можно сказать, что Linux предназначен для разработки лучше других операционных систем.

Также стоит понимать, что в некоторых случаях ситуация диаметрально противоположная. Если речь идёт о разработке игр, приложений для Windows или чего бы то ни было, связанного именно с этой системой, то она и является оптимальным рабочим окружением.

Что я использую сейчас

Безусловно, за прошедший год многое изменилось. Я стал лучше разбираться в Linux, успел попробовать множество технологий, связанных с ним. Кратко расскажу о том, какие я использую на данный момент.

В мае этого (2024) года я перешёл на Arch Linux, на этот раз уже полноценно. Именно поэтому ранее я сказал, что не жалею о выборе дистрибутива для WSL — ещё тогда я научился работать с некоторыми основными утилитами, понял концепцию rolling-обновлений и так далее. Я могу сказать, что Arch — это “мой” дистрибутив; имею в виду, что он близок мне по духу. На первый взгляд нестабильный, при правильном использовании этот дистрибутив способен работать десятилетиями без переустановки. Arch поставляет самые последние версии программ и библиотек — фактически, наиболее функциональные, оптимизированные и безопасные.

I use Arch btw.

Если говорить про оконную систему, то летом я перешёл на Wayland. В качестве композитора использую niri. Признаться, это великолепный проект! Окна расположены в столбцах на бесконечной полосе, идущей вправо. Открытие нового окна никогда не приводит к изменению размера существующих окон.


Моя конфигурация niri
Моя конфигурация niri

Даже если niri уступает по популярности таким композиторам, как Hyprland или Sway, мне он показался самым удобным и функциональным из всех. Я успел поработать на разных оконных менеджерах, но именно niri, как мне кажется, станет моим окончательным выбором.

Свои программы я разрабатываю в Neovim. Я настроил его ещё тогда, когда использовал Windows, с тех пор конфигурация успела слегка измениться, но общая структура сохранилась. Для меня это самый удобный способ написания кода. Так как Neovim позволяет настроить буквально весь редактор: начиная от комбинаций клавиш и заканчивая темами, его можно настроить так, как необходимо пользователю.

Если читателю интересно взглянуть на более подробный список приложений и утилит, которые я использую, а также их конфигурации, их можно найти на GitHub

Заключение

Я могу часами и днями говорить о Linux, но этой статье скоро суждено закончиться.

“Стоит ли переходить на Linux?” — вопрос, который, наверное, никогда не перестанут задавать. Я бы ответил, что нужно использовать то, что нравится. Если вас полностью устраивает операционная система, то и смысла менять её нет. В этом отношении важна свобода выбора. Впрочем, вряд ли можно понять, какая операционная система подходит вам больше, не попробовав все.

Я не перейду обратно на Windows, потому что Linux дал мне свободу. Свободу выбирать внешний вид и поведение моей системы, свободу с точки зрения открытости (часто говорят “free as in freedom”). Все плюсы, которые я получаю, с лёгкостью перекрывают незначительные минусы.

Надеюсь, у меня получилось рассказать просто о сложном в такой короткой статье. Спасибо вам, что дочитали до этого момента.

Используйте то, что вам нравится, и будьте собой!