Всех приветствую. Как бы то ни было, я пользователь Linux. Уже около 6 лет я на постоянной основе отказался от windows. С системой от Microsoft я, конечно, сталкиваюсь постоянно, но мои ПК все на Linux.

Сегодня я хотел рассказать, почему я сделал такой выбор, какие были трудности, как тут живётся, что с софтом и играми. Многое будет субъективно, но я постараюсь описать всё как есть.

Как я пришёл в Linux?

Это давняя история. Началась она с роликов на YouTube. Ну знаете, этот был ещё тот самый YouTube, с рекламой, без внезапно устаревших серверов... Я тогда наткнулся на ролики то ли Александра Плафона, то ли кого-то ещё. Они не продали мне идею, что надо бросить всё и ставить Linux, но заставили вникнуть в эту тему подробнее.

То, что помогло лично мне в дальнейшем – это то, что на windows я начал использовать те программы, которые есть для Linux: libreoffice, gimp, blender, Unity, а потом и Godot engine. Они бесплатные, то есть никакого пиратства, но полностью покрывали мои задачи, да и сейчас прекрасно справляются. Разве что libreoffice я заменил на onlyoffice, который почти полностью совместим с форматом Word.

Первое важное уточнение: я не пользуюсь софтом от Adobe – он мне не нужен. И он не работает в Linux. Как не работает и некоторый другой профессиональный софт. Некоторым программам есть достойные альтернативы, которых хватит почти всем, но любой переход на новое ПО – это сложно. Учитывайте это. Прыжок веры с места в карьер почти никогда не заканчивается успехом.

Непосредственно Linux я начал изучать с виртуальных машин: ставил, настраивал, удалял системы, экспериментировал, как мог. Я перепробовал много дистрибутивов и окружений рабочего стола. Arch Linux мне нравился, наверное, больше остальных – в школе я даже делал для него свою сборку и кастомный установщик. Он до сих пор доступен для скачивания, но я не обновлял его с 2023 года, так что может уже не работать.

А потом у меня в ноутбуке появился второй SSD. Это был шанс! Другого могло не быть и в тот же день я поставил Fedora Linux. Второй, но основной системой на ближайшие несколько лет. Знаю, что я только что писал об arch, а тут внезапно fedora, но тогда я наслушался хвалебных од именно о fedora и о том, какой arch не стабильный и ломается почти от каждого обновления.

Первые шаги изучения новой системы.

Даже сейчас я с теплотой вспоминаю то время. Я почти ничего не потерял, а получил плавную и круто настраиваемую систему. Мало того, я пришёл в Linux во время его Ренессанса! Старый play on linux устарел, а на его место пришёл Proton от Valve – создателей магазина Steam. И он мог запустить уже гораздо больше программ и игр, чем стандартный wine! А потом появился и PortProton, который я до сих пор использую.

Почти вся моя библиотека игр на Linux запускалась без проблем. Pathfinder: Wrath of the Righteous стала первой игрой, которую я скачал и полностью прошёл только на Linux. На windows я её протестировал лишь недавно и разницы не увидел.

Что касается программ, то работало всё, что мне было тогда нужно: браузер есть, редактор кода и инструменты для разработки есть, офис покрывал все мои потребности. В общем, мне повезло с выбранным набором программ.

Первые проблемы.

Проблемы начались довольно скоро. Вернее на второй же день 😂😂. Помню как сейчас: я поставил систему и уехал к родственникам, захватив ноутбук. Приезжаю, включаю его и... Ничего не происходит. Сейчас не скажу точно, что было не так, но система явно встала криво. Данных там небыло, так что я максимально аккуратно переустановил её и весь процесс молил, чтобы в этот раз всё было нормально. И всё было нормально. Та система прослужила мне несколько лет без единой переустановки и работала так же плавно, как в первый день.

Но основная боль – это обновления системы. Немного поясню. Fedora Linux раз в пол года выпускает номерную версию. Номерная версия поддерживается где-то полтора года. То есть можно какое-то время получать обновления даже на устаревшей версии системы. Основная разница между релизами – это свежесть программ. При этом, за пол года в этом же релизе программа может обновиться. Приведу реальный пример: мне нужен был компилятор для языка Go. За пол года он уже несколько раз обновлялся. Теперь же, мне нужна была ещё более новая версия, но так как система устарела, более новый компилятор можно установить только в более новой версии системы. В тот раз реально ради небольшой программы мне пришлось скачивать огромное обновление всей системы!

Теперь про сами обновления системы. Не учитывая, что в окружении KDE Plasma обновление на новый выпуск – это процесс далеко не самый очевидный, иногда обновления слишком масштабные и ломали то, что было раньше. Так случилось при переходе с Plasma 5 на Plasma 6. Это было очень большое обновление и всё моё оформление было заменено на стандартное. Мало того, с самой системой со временем начались проблемы: wifi стал пропадать, система стала часто зависать на ровном месте. И в итоге я решил уйти.

История о новом ПК, Manjaro linux и пути к NixOS.

Когда я поступил в институт, у меня накопилась определённая сумма денег и я купил себе стационарный ПК. Мини ПК, если точнее. Тогда я уже примерно понимал, что мне нужно что-то на процессоре от AMD, так как встроенная графика так мощная. Ни в коем случае не с графикой от Nvidia.

Примечание: скорее всего последняя фраза застала многих врасплох, но если вы решили осваивать Linux – проще забыть о существовании видеокарт Nvidia и вспомнить, что это вообще-то не единственный вендор видеокарт)) Поддержку новых карт приносят далеко не так быстро, как на windows, а старые карты убирают из актуальных драйверов так же оперативно, как на системе от Microsoft. Кроме того, долгое время даже с подходящим драйвером протокол Wayland работал крайне плохо. А на нём построена отрисовка большей части графики в современном Linux. Возможно, в скором времени ситуация изменится: Nvidia готовит свой новый драйвер для Linux – Nova. Он рассчитан на карты серии RTX и вроде как призван решить проблему драйверов в Linux. Посмотрим, что из этого получится.

И такой аппарат я нашёл! За 20 тысяч купил китайский GenMachine на Ryzen 5 5500U, 16 гигабайтами ОЗУ и 512 гигабайт SSD. Это был суровый апдейт после ноутбука, хотя сейчас я понимаю, что переплатил. Хотя да, тогда ещё небыло такого кризиса памяти.

В то время я уже порядком устал от Fedora. И вспомнил о втором – более раннем – любимом дистрибутиве Александра Плафона. Конечно же это Manjaro! Даже жаль, что прослужил мне этот дистрибутив всего около полу года...

Забавная история: первое, что я установил на новый ПК после системы – это Watch Dogs 2 – одна из моих любимых игр Ubisoft 2016 года, которая не запускалась на моём старом ноутбуке, так как требовала минимум 4 ядра процессора. А тут я, наконец, смог к ней прикоснуться! Да, спустя 8 лет после выхода у меня наконец появился ПК, чтобы в неё поиграть))

Я много экспериментировал с этой системой. Очень много. На ней я ставил виртуальную машину с MacOS, прокидывал туда видеокарту, тащил пакеты с AUR, ставил рядом с KDE оконные менеджеры. Но при всём этом мне почти нечего сказать о том времени. Всё, что работало у меня до этого – продолжало работать. Просто в какой-то момент я сломал её окончательно и вместо того, чтобы полноценно чинить, я начал искать замену. Стабильную, но с актуальными пакетами. И тут я наткнулся на NixOS.

Как я NixOS осваивал.

NixOS – это моя находка века! Почти уникальный в своём подходе дистрибутив! В нём каждый пакет изолирован, может иметь свои версии библиотек, даже дублировать их, если нужно. При этом, всё настраивается в одном файле. Ну по крайней мере может быть настроено в одном файле, хотя так мало кто делает))

Свою первую конфигурацию я собрал в виртуальной машине в Manjaro. Это само по себе необычно: у меня ещё не установлена система, но я уже точно знаю, что она будет выглядеть определённым образом и содержать нужный набор программ. Знаю, что так можно и с другими системами и даже с windows люди как-то создают готовые сборки, но тут это преступно просто!

Хотя ладно. Не просто. Вам нужно знать язык Nix. А ещё параметры, которые описаны где-то, не понятно где. Но тот факт, что настройка ведётся на полноценном языке программирования даёт колоссальные возможности для настройки! Самое приятное в NixOS то, что каждая установка программы, каждое обновление или изменение настройки в файле конфигурации создаёт новый снимок состояния, который можно выбрать во время загрузки системы. То есть убить систему почти не возможно! У меня получалось, но это я))

Приведу минимальный пример конфигурации системы:

{ config, pkgs, ... }:

{
  imports = [ ./hardware-configuration.nix ]; # Описание оборудования, создаётся автоматически

  # Загрузчик системы и его параметры
  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  # Интернет и имя ПК в локальной сети
  networking.hostName = "nixosbox";
  networking.networkmanager.enable = true;

  # Временная зона и язык по умолчанию
  time.timeZone = "Europe/Moscow";
  i18n.defaultLocale = "en_US.UTF-8";

  # Разблокировка доступа к программам с закрытым исходным кодом
  nixpkgs.config.allowUnfree = true;

  # Описание пользователя
  users.users.myuser = {
    isNormalUser = true;
    extraGroups = [ "wheel" ];
    # Программы, доступные только этому пользователю
    packages = with pkgs; [
      firefox git htop
    ];
  };

  # Программы, доступные всем пользователям в системе
  environment.systemPackages = with pkgs; [
    vim wget curl
  ];

  # Включение сервиса удалённого доступа к ПК
  services.openssh.enable = false;

  # Версия вашей первой установленной NixOS
  system.stateVersion = "26.05"; 
}

На первый взгляд может показаться не понятно, но если разобраться, то можно делать очень многое. Например, создать два профиля, которые можно переключать при загрузке. И эти профили могут быть абсолютно разными! Разные пользователи, разные программы, разные графические оболочки, разные настройки производительности процессора и видеокарты. И всё это никак не может сломать вашу систему так как в любой момент можно вернуться хоть к самой первой вашей конфигурации! Само собой, если вы её не удалили))

У пакетного менеджера nix и NixOS в целом много достоинств. Например, nixpkgs – самый большой репозиторий программного обеспечения. Больше легендарного AUR в Arch linux. Также, в экосистеме nix есть такой инструмент, как devenv. Для разработки это феноменальная штука! Можно указать, какие инструменты нужны для конкретного проекта, система их установит и они будут доступны только в текущем проекте. Мало того, поделившись конфигурацией devenv, другие разработчики из команды могут использовать ровно те же инструменты, вплоть до указания конкретных версий библиотек! Мало что вообще может гарантировать подобный контроль.

Есть и минусы: в Linux и так есть определённые проблемы с программным обеспечением, но NixOS вводит новые ограничения. Так, вы не можете просто взять и запустить обычный бинарный файл. Даже ваш собственный проект на c++ не запустится. Причина – системные библиотеки находятся не по стандартным путям, а это ломает логику многих программ, собранных для классических дистрибутивов. Я так до конца и не привык к этому, хотя во многом адаптировался.

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

Игры и программы.

Вот за этим вы здесь? Ну что ж, я расскажу, как дело обстоит у меня лично, а также обозначу объективные проблемы.

Не буду ходить вокруг да около: онлайн игр в Linux фактически нет. С выходом steam deck, а сейчас и steam machine, Valve перенесла свои игры нативно под Linux. То есть Counter Strike 2, Dota 2, все Half life и Portal работают либо нативно, либо отлично запускаются через Proton.

Очередное примечание: да, wine и proton – это прослойки совместимости. Но! Они практически не отнимают производительности. Это не эмуляторы, а что-то близкое к переводчикам в реальном времени, если упрощать понятия. Они выигрывают за счёт того, что Linux сам по себе более оптимизированная система, чем Windows. Однако, это и не значит, что игры будут работать быстрее. Это так для большого количества случаев. Но есть проекты, которые слишком сильно полагаются на WinAPI или какие-то специфические вызовы системы, что через прослойку приводит к потерям производительности.

Другие игры работают только если их разработчики не вставляют палки в колёса игрокам. Просто вспомним новые части Battlefield. Они используют античит уровня ядра операционной системы. Он записывает себя в реестр Windows, не удаляется с игрой и запускается в момент включения ПК. Это поведение, свойственное вирусам! Даже на windows я бы не стал мириться с этим! Очевидно, что подобный софт не будет работать в Linux даже через прослойку – банально политики безопасности его заблокируют.

Есть и нормальные примеры. Уже какое-то время я играю в No man's sky и она работает практически безупречно, хотя там есть мультиплеер. Don't starve together также работает без нареканий. Ведьмак, Skyrim, Готика (включая её потрясающий ремейк), Pathfinder и Rogue trader, Divinity original sin 1 и 2, а также Baldurs gate 3, Stardew valley, Nier automata. В моей библиотеке Steam более 80 игр и почти все они прекрасно работаю на моих ПК. Работают на Linux. А кроме них есть все части Assassin's Creed, Watch Dogs 1 и 2 (legion я не тестировал, но он тоже должен работать), о котором я уже говорил, Cyberpunk 2077, GTA 5 и другие.

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

Что касается программ, то эту тему частично я уже затрагивал. Пакета Adobe не существует. DaVinci Resolve есть только в платной версии (бесплатная версия содержит всего пару кодеков, так что нормально закидывать видео не получится, а установить дополнительные у вас скорее всего не выйдет). Софт для музыкантов тоже может не работать. Офисный пакет от Microsoft не существует.

Буду честен: если вы занимаетесь творчеством и намертво привязаны к конкретной программе (а в некоторых случаях даже банально к плагинам для программ), то проблемы на Linux будут. Если вы работаете с документами, которые к вам приходят и должны быть на 100% уверены, что разметка не слетит, то проблемы на Linux будут.

Но есть и обратная сторона: графический стек – традиционное преимущество Linux. Тот же Blender работает лучше. Это не "плюс 200 fps", но зачастую чуть больше плавности при больших проектах, чуть быстрее рендеринг. Особенно это касается видеокарт от AMD, драйвера которых также традиционно лучше раскрываются в Linux.

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

Мне не очень нравится эта фраза, но значительная часть проблем Linux находится между креслом и монитором. Живите с этим))

Отношение к Linux со стороны.

Из за учёбы мне не раз приходилось взаимодействовать с другими людьми. В том числе и через ПК на Linux. Абсолютно все без исключения мои знакомые пользуются windows.

Для них мой образ мышления не понятен. Нет смысла решать проблему на Linux так же, как на windows. И нет смысла пользоваться Linux, если ты не готов к этому. Но иногда приходится. Это всегда больно. И для "гостя", и для меня, как хозяина системы.

За годы я сформировал мнение, что только на Linux ПК становится именно персональным компьютером. Не в том смысле, что "к чёрту корпорации!", "да будет открытый код!", а в том, что настроен он под себя и мало кто с ходу сможет там работать, даже если для тебя это самая удобная в мире система.

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

Тогда почему я не настрою windows и не буду ей пользоваться? Я не знаю. Мне привычно устройство системы Linux, мне привычно, что почти всё я могу установить официально одной командой в терминале, мне привычно, что внешний вид системы можно поменять в любой момент, мне привычно, что инструменты разработки работают так, как задумано. Многих, также, удивляет тот факт, что мне не хватает программ в windows. Нет ни одного известного мне достойного аналога плеера cmus под windows. Нет адекватной работы с виртуальным рабочими столами. Нет поддержки пользовательских сочетаний клавиш. Безусловно, почти всё это можно добавить сторонними программами, но в отличие от репозиториев дистрибутивов Linux, тут некого спросить за безопасность программы.

Выводы.

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

Мой совет таков: пользуйтесь тем, что вам нравится. Если ваши задачи закрывает windows и вы довольны, то пользуйтесь windows. Если вы думаете, что проблем при переходе на Linux не будет, то вы заблуждаетесь и подумайте ещё раз.

Linux не для всех. И надеюсь, что так и будет.

Но при этом не стоит думать, что ваш образ мышления единственно верный. Если вы пользуетесь windows и не понимаете, как кто-то пользуется системой без меню "Пуск", без списка открытых окон на панели задач и без Chrome, то это не значит, что он что-то делает не так. Просто он привык иначе. Для него ваш идеал системы скорее всего будет не понятен. Отличие лишь в том, что пользователи Linux, зачастую, жили в обоих мирах и выбрали то, что подходит им больше.

Как-то так. В конечном счете, выбор ОС – это выбор удобного именно вам инструмента.

Всем мира и удачи.