Linux & Desktop — как жить и выжить

48cdeb5ef2fd477ed2fb9eb119d1b013

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

Оговорка про GNU/Linux

Для удобства чтения буду использовать Linux вместо GNU/Linux, то есть систему, которая состоит из ядра Linux, набора утилит, программ проекта GNU и десктоп окружения (gnome, kde, xfce и т.д.) в качестве системы рабочего стола .

Сколько нас

Для начала, попробуем определить, сколько же всего пользователей Linux используют его в качестве рабочей станции. Это поможет лучше осветить проблему ограниченной поддержки. Linux занимает около 2% от всего рынка настольных компьютеров и ноутбуков, в цифрах, по оценкам компании Gartner на начало 2021 года в мире 1 млрд 318 млн пользователей ПК и ноутбуков, а 2% это приблизительно 26,5 млн пользователей (входят ли сюда пользователи Chrome OS неизвестно). Еще можем попробовать ориентироваться на статистику сервиса Steam, тут пользователей Linux 0.86%, что от пика онлайн в 24 миллиона ~ 206 тысяч, а от 90 миллионов активных пользователей за месяц 774 тысячи. Возможно более честное число лежит где-то между 1 и 12 миллионов пользователей, но даже этого количества пользователей недостаточно чтоб сопровождение Linux версий многих продуктов было экономически целесообразно.

Такое положение несет ограничения в процессе эксплуатации Linux в качестве рабочей станции во многих кейсах и на всех этапах, от выбора аппаратной части до выбора ПО.

В этом порядке и начнем, от железа к ПО, при этом постараюсь затронуть как можно больше аспектов из доступного опыта линуксоидов.

Hardware. На чем запускаем

Во многом опыт использования Linux ближе к MacOS чем к Windows. Это не только похожие команды терминала, набор утилит CLI, но и ограничения в выборе аппаратных конфигураций и периферии. Linux не имеет схожей поддержки существующего оборудования как Windows. Из года в год ситуация становится лучше, но до сих пор есть множество аппаратных конфигураций, на которых Linux полноценно работать не будет. Поэтому выбор совместимого железа решает очень большое количество различных проблем в будущем, главная из которых, отсутствие драйверов. Они могут или просто отсутствовать или не достигать соизмеримого качества как для других ОС.

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

Если говорить только о ноутбуках, то на данный момент хорошую поддержку имеют Dell (особенно линейка Precision), Lenovo и System76, предлагая линейки продуктов, с Linux на борту. Недавно к этому списку добавился Acer, компания также выпускает хорошо поддерживаемые конфигурации. Остальных производителей мы стараемся избегать, даже если на первый взгляд приходит мысль: «да что тут может пойти не так», то очень вероятно нарваться на какой-нибудь вариант контроллера подсветки клавиатуры или тачпада, который не будет работать. И будет обидно, ведь мы за это заплатили.

Отличным дополнением ноутбука будет наличие второго NVME (m2) разъема для возможности установки второго SSD, часто приходится жить с двумя ОС. Помимо удобного соседства с Windows это решало проблему обновления, когда Windows могла с очередным супер-обновлением попытаться записать свой загрузчик вместо нашего родного GRUB.

Небольшое дополнение. Первое знакомство с Linux у многих происходит на том оборудовании что есть под рукой и часто бывает что Linux работает и на нем, особенно на каком-нибудь старом обородувании. Но рано или поздно приходит время обновляться.

О видеокартах

Что важно знать когда вопрос касается выбора вендора видеокарты.

Лучшим вариантом для игр является AMD, поскольку имеет хорошую производительность и главное открытый драйвер в составе ядра. Это обеспечивает беспроблемное обновление дистрибутива (проблема черного экрана после обновления). Еще один плюс, многие дистрибутивы в контекстном меню запуска приложения сейчас имеют пункт — запустить, используя дискретную видеокарту, в этому случае этот пунктик будет работать так, как это было задумано.

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

Оборудование обоих вендоров совместимы с современной графической подсистемой Linux.

Что за современный графический стек Linux?

Поддержка современного графического стека сводится к возможности работы пользовательского графического интерфейса посредством протокола Wayland, что требует поддержку LibGDB драйвером устройств, а также аппаратное ускорение видео в браузерах.

Видеокарты от Nvidia работают, но с некоторыми оговорками, ввиду закрытости драйверов и склонности вендора к собственным решениям, вместо общепринятых. Из-за чего может просто не заработать аппаратное ускорение видео в браузерах. Корпорация отказалась поддерживать общий буферный API (GBM), в следствии чего нет адекватного переключения между видеокартами (nvidia-intel). Так же этот API используется почти всеми десктоп средами для своей работы по современному протоколу Wayland. Возможно, ситуация и станет лучше, так в марте текущего года промелькнула новость, что дело сдвинулось с мертвой точки и мы возможно увидим поддержку GBM от Nvidia. С другой стороны и разработчики десктоп окружений стали двигаться в сторону поддержки буферного API от Nvidia (EGL-streams). Таким образом если компьютер с одной единственной видеокартой (или карта от Nvidia будет использоваться в качестве основной, без переключения на Intel), то жить можно и с Nvidia, хоть и на старом, но стабильном протоколе X11. Еще одним аргументов в пользу Nvidia может стать работа с машинным обучением. Видеокарты от Nvidia работают быстрее и лучше (на 2020 год).

Если все же выбор пал на Nvidia, то не стоит устанавливать драйвера с офф сайта компании. Черный экран после обновления ядра до сих пор в топе вопросов на форумах Linux. Вероятность такого исхода с драйвером подготовленным мейнтейнером дистрибутива меньше.

О периферии

Наличие поддержки этого класса оборудования имеет наименьшую поддержку. Если с простыми принтерами как таковых проблем нет, то сканер или MFP может и не заработать, перед покупкой надо обязательно узнать в техподдержке или спросить на форуме тех, кто уже купил, что он работает. Может оказаться, что МФУ работает через сеть, но напрочь отказывается работать по USB.

Сканер отпечатка пальцев иногда поддерживается, но нет полноценной интеграции в рабочие окружения. Даже в ситуации, когда производитель озаботился поддержкой, выпустил драйвер, и тот заработал, то связка ключей, которая отвечает за шифрование паролей не имеет функции разблокировки по отпечатку пальца, пароль все равно придется вводить при первом входе. Но в дальнейшем операции требующие повышенных привилегий в системе (выполнение через sudo, gksudo, kdesudo) можно продолжить с помощью сканера. Но время отклика и разблокировки сканером значительно дольше чем эта же операция в Windows или MacOs, что делает его в итоге бесполезным, а ввод пароля более быстрым способом.

eGPU, подключаемые по Thunderbolt 3 работают. Тут только пару моментов. Почти нет горячего подключения. Она будет добавлена в некоторые рабочие среды (KDE 5.22\Sway WIP), но только для режима работы по протоколу Wayland, пользователей Nvidia скорее всего опять обделят. Второй момент, до сих пор есть баг, бывает нельзя подключить eGPU от AMD к ноутбукам с со встроенной связкой intel-amd, тут только менять или ноутбук или внешнюю видеокарту.

О Bluetooth

Долгая история с поддержкой декодеров AAC/AptX/AptX HD/LDAC наконец почти завершена. Почему почти, кодеки включили в аудиосервера (pulseaudio и pipeWire) и больше не потребуется их собирать из исходников. Поэтому хоть и можно выбирать почти любые Bluetooth гарнитуры, надо помнить что для этого нужен очень свежий аудиосервер. Что касается WBS в HSP/HFP профилях, активная работа еще идет и хоть многие патчи начали включать, например поддержку mSBC, звук микрофона в 16 kHZ еще недоступен во многих дистрибутивах, возможно к концу 2021 года нам повезет и обновления попадут во все дистрибутивы.

Немного о стеках.

На данный момент в Linux существует несколько вариантов организации работы видео и аудио подсистем. Для видео на смену устаревшему протоколу X11 с ~ 2008 года все никак не может прийти протокол Wayland. Часть приложений и производителей уже поддержали его, а часть нет. Новый протокол предоставляет аппаратное ускорение видео в браузерах, дробное масштабирование и другие возможности, в зависимости от рабочего окружения.

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

Дистрибутивы. Какой же линукс поставить?

После выбора совместимой конфигурации необходимо определиться и с дистрибутивом. С годами разница между десктоп дистрибутивами становится все меньше. Системы как Systemd, Pulseaudio, Pipewire, Xorg, Wayland, являются основой почти всех популярных дистрибутивов рабочих станций. Попробуем разделить дистрибутивы по модели обновления компонентов. Получается две группы.

1. Фиксированные релизы. Релизы, которые бывают раз в полгода например Fedora или раз в два года как в Ubuntu LTS (long time support версия) с заморозкой версий системных приложений.

2. Плавающий релиз (rolling-release) — постоянное обновление системы без заморозки версий системных приложений. В этом случае будут доступны все компоненты последних версии и не придется ждать следующий релиз два года.

В этих двух группах сегодня наиболее популярны Ubuntu LTS и Manjaro. При возникновении проблемы вероятнее всего форумы, чаты и трекеры именно этих дистрибутивов будут в выдаче поисковика. Так же именно для этих дистрибутивов (В случае Manjaro, то для Arch) будут сформированы пакеты приложений и драйверов в первую очередь (за редким исключением).

Плюсы фиксированных релизов в том, что обновления имеют большее качество и реже ломают систему, тогда минусы, нет возможности получить новые функции с последними обновлениями системных пакетов. Так дробное масштабирование пользователям Ubuntu пришлось ждать больше года после выхода этой функции. Некоторые дистрибутивы замораживают обновление и ядра, что приводит к проблеме поддержки нового оборудования.

Немного О Manjaro.

Сам дистрибутив основан на независимом дистрибутиве Arch Linux. От Arch ему досталась наиболее полная документация (включая русский язык), модель обновления и набор приложений. Взаимодействие с командой мейнтейнеров происходит через привычный GitLab, а модель монетизации — техническая поддержка компьютеров, телефонов и продажа мерча. Что направлено во многом на конечного пользователя, а не B2B сегмент в случае с Ubuntu. Возможно, именно это позволило собрать большое и живое комьюнити, поэтому вероятность решить возникшую проблему силами сообщества Manjaro\Arch выше чем в других дистрибутивах. Пожелаем ребятам удачи.

Среда рабочего стола

Следующий этап выбора — рабочее окружение, оно же среда рабочего стола (desktop environment). Если руководствоваться теми же принципами, что при выборе дистрибутива, чем популярнее, тем больше шанс получить исправление или новую функцию, то выбор не так уж и велик, это KDE или Gnome. Они полноценно работают почти из коробки, а средства кастомизации почти не ограничены.

Остальные рабочие среды имеют различные ограничения. Почти во всех нет поддержки дробного масштабирования, горячего подключения внешних видеокарт, а также больше половины не поддерживают Wayland. За исключением Sway, который не планирует поддерживать работу на проприетарном драйвере Nvidia.

Так же есть проблема подключении двух различных видеокарт, изображение с первой будет копироваться в память второй что приводит к резким падениям фпс, поэтому мониторы необходимо подключать к одной видеокарте или снижать разрешение экрана до FullHD. В этом вопросе при работе по протоколу Wayland больший прогресс чем X11. Но так ли это во всех рабочих средах и как там организована системы работы с такими конфигурациями мне точно не известно. Скорее всего схожим образом.

Подытожим, лучше все же остановиться на том, что предлагает дистрибутив в первую очередь.

Manjaro — KDE

Ubuntu — GNOME 3

Остальное сегодня имеет меньшую поддержку, но в будущем ситуация может измениться, так рабочие среды Cinnamon и Deepin набирают популярность и как следствие, ускоряется выпуск новых функций и исправлений.

Про ПО

На данный момент есть несколько вариантов как устанавливать программы. Самый простой и лучший вариант использовать репозитории дистрибутива. Но бывает ситуация, когда там нет нужного приложения или оно не работает. Тогда есть выход в использовании Snap или Flatpak пакета этого приложения. Если же и там нет нужного приложения, то можно попробовать зайти на сайт приложения и скачать пакет или архив. Важно, чтоб установка приложения была все же через пакетный менеджер, поскольку приложение сможет получать обновления автоматически при следующем сеансе обновления всей системы.

Проблемы со Snap и Flatpak

Эти системы дистрибьюции и изоляции предназначены собственно для распространения и изоляции приложений. Обе системы предлагают запуск приложения в его собственной среде, изолируя его от основной системы. Установленные таким образом приложения плохо интегрированы в систему в целом (часто собран пакет с ошибками). А так же занимают больше места, чем эти же приложения установленные из репозитория или скачанные с сайта. Помимо этого требуется некоторое время для первого запуска. Случалось, что даже простой калькулятор, установленный через Snap подвисал на 3–5 секунд при первом запуске. Это раздражает. В новых версиях Snap эта проблема была исправлена, но для этого потребовалось ждать 2 года.

Wine — отдельная история

До сих пор по ряду причин существует безальтернативное Windows-only ПО, как правило это приложения от производителей Adobe, Sony, Autodesk, которые продолжают свою дискриминацию Linux пользователей. В этой ситуации можно попробовать воспользоваться эмуляцией системного окружения Wine, но с этим большие проблемы и, по возможности, мы избегаем этот вариант всеми способами. Когда же очень нужно, то ищем веб-версии, просим производителя поддержать работу хотя бы в Wine или используем старые версии такого ПО, как правило они работают в Wine. Еще можно поставить виртуальную машину VirtualBox и даже настроить проброс окон приложений, или вовсе установить Windows (на тот самый отдельный диск), но надо понимать, что это не является полноценным решением. Еще бывает не работает только программа установки, тогда как само приложение работает. В этом случае можно установить приложение в VirtualBox и попытаться уже установленное приложение перенести в Wine.

Состояние работоспособности большинства приложений есть в базе, на сайте Wine, поэтому, чтобы быстро определить статус, достаточно зайти на сайт winehq.org и убедиться что приложение (не)работает. По большей части в Wine «хорошо» работают только игры.

Игры

Steam однозначно закрыл вопрос с играми, при этом если игра не доступна на Linux, включение Proton в настройках Steam позволяет запустить 69% Windows-Only тайтлов. При этом варианте надо заранее уточнять, работает ли игра, если она не работает, то мы её просто не покупаем. Игры от Activision Blizzard также работают в Wine, причем из «коробки», похоже разработчики поддерживают работу своих продуктов в среде Wine. Но вот что касается Origin и прочих, то тут все сложно, так же, как и с остальными Windows-only продуктами, стараемся их просто избегать.

Как решать проблемы

Даже следуя всем рекомендациям встречаются проблемы, которые невозможно решить самостоятельно или с помощью гугла. Как правило это связано с наличием бага или с отсутствием поддержки со стороны производителя. Если это баг, то идем на сайт производителя, мейнтейнера или сообщества, и пишем баг-репорт, как правило, мейнтейнер или разработчик спросит какую-то дополнительную информацию и поможет с исправлением или даст информацию, как это можно исправить. Поступаем в таком порядке, если совсем непонятно откуда следует начинать, то в комьюнити своего дистрибутива, или более широкое комьюнити разработчиков компонентов рабочего стола. Так же есть множество телеграмм каналов, где в целом можно получить направление. Если это оборудование, которое вроде как должно работать, то лучше идти в gitlab freedesktop, хотя бывало оттуда отправляли и к разработчикам ядра. Если это какое-то злополучное ПО, то к разработчикам этого самого ПО.

Заключение

Следуя этим рекомендациям можно избежать большое множество проблем и использовать Linux, так как это было задумано авторами. Как видно из самих рекомендаций, Linux это выбор, возможно именно поэтому мы его и используем. Также, хочу заметить, что-то подобное могут написать и пользователи MacOS, но думаю возможных проблем там будет значительно меньше. Надо понимать, что рабочая станция в первую очередь инструмент решения профессиональных задач и не все задачи могут быть решены приемлемым способом в среде Linux (dual-boot, Wine, виртуальная машина не являются решениями) В этой ситуации можно только посочувствовать тем кто хотел бы использовать Linux, но их задачи завязаны на неподдерживаемом софте. Будем надеяться на лучшее. Так Valve, 1C, Klei, Telegram, Microsoft (частично) обзавелись поддержкой, кто знает какая из корпораций будет следующей.

Пару слов производителям по поддержке.

Не надо поддерживать все возможные дистрибутивы, оставьте это мейнтейнерам, сопроводив инструкцией о зависимостях вашего продукта. Если совсем нет сил, то используйте Snap или Flatpak.

Немного мыслей о будущем

Linux на десктопе весьма живуч, без соизмеримой поддержки корпораций (корпорации бустят ядро и серверные подсистемы, gnome fondations c их 638 267$ против миллионов microsoft — капля в море), без единого стандарта, с кучей проблем совместимости смог захватить и прижиться на множестве рабочих станций и продолжает свое неспешное развитие. Компаний, которые занимаются успешным бизнесом на рынке десктоп систем не так уж и много, поэтому скорее всего ситуация с 2% вряд ли изменится в ближайшие 10 лет. Инертность мышления, отсутствие поддержки, недостаток финансирования сохранят текущий расклад на рынке, но удобство эксплуатации и возможности продолжат расти. Возможно появится новый игрок на рынке десктоп систем или какое-нибудь большое государство (например КНР) обяжет всех госслужащих переехать на Linux, что вероятно обеспечит рентабельность сопровождения Linux версии ПО и тогда картина может измениться. Возможно такие компании как System76, Manjaro или кто-то новый смогут это реализовать.

© Habrahabr.ru