Год на 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, как мне кажется, является лучшим дистрибутивом для начинающих.
Установка системы прошла быстро и без трудностей. Сейчас многие дистрибутивы ставятся, как любят говорить опытные пользователи, “левой кнопной мыши”. И действительно, параметры по умолчанию, которые предлагают графические установщики, подходят большинству пользователей. И всё же я решил разметить диск вручную, а именно:
- Первый раздел — системный (
/boot
). Он необходим для загрузки системы в режиме UEFI, которая применяется на всех современных устройствах. - Второй — раздел подкачки (или swap). Он используется системой в том случае, если оперативной памяти недостаточно.
- Третий — корневой раздел. Сюда устанавливается непосредственно система: исполняемые файлы, системные конфигурации и проч.
- Последний, но не по значимости — домашний раздел (
/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 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 уступает по популярности таким композиторам, как Hyprland или Sway, мне он показался самым удобным и функциональным из всех. Я успел поработать на разных оконных менеджерах, но именно niri, как мне кажется, станет моим окончательным выбором.
Свои программы я разрабатываю в Neovim. Я настроил его ещё тогда, когда использовал Windows, с тех пор конфигурация успела слегка измениться, но общая структура сохранилась. Для меня это самый удобный способ написания кода. Так как Neovim позволяет настроить буквально весь редактор: начиная от комбинаций клавиш и заканчивая темами, его можно настроить так, как необходимо пользователю.
Если читателю интересно взглянуть на более подробный список приложений и утилит, которые я использую, а также их конфигурации, их можно найти на GitHub
Заключение
Я могу часами и днями говорить о Linux, но этой статье скоро суждено закончиться.
“Стоит ли переходить на Linux?” — вопрос, который, наверное, никогда не перестанут задавать. Я бы ответил, что нужно использовать то, что нравится. Если вас полностью устраивает операционная система, то и смысла менять её нет. В этом отношении важна свобода выбора. Впрочем, вряд ли можно понять, какая операционная система подходит вам больше, не попробовав все.
Я не перейду обратно на Windows, потому что Linux дал мне свободу. Свободу выбирать внешний вид и поведение моей системы, свободу с точки зрения открытости (часто говорят “free as in freedom”). Все плюсы, которые я получаю, с лёгкостью перекрывают незначительные минусы.
Надеюсь, у меня получилось рассказать просто о сложном в такой короткой статье. Спасибо вам, что дочитали до этого момента.
Используйте то, что вам нравится, и будьте собой!