Основатель проекта LinuxQuestions.org Джереми Гарсия на основании анализа информации, взятой из социальных медиа, обрисовал на сайте OpenSource.com пять основных «болевых точек» Linux.

Насколько актуальны эти проблемы для нашей страны? Совпадают ли тенденции в российском СПО-сообществе с общемировыми или мы идёт каким-то своим путём? Чтобы получить ответы на эти вопросы мы попросили ведущих отечественных разработчиков Linux прокомментировать выводы, который сделал Джереми Гарсия.

Документация

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

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

Заместитель генерального директора компании «Базальт СПО» Алексей Новодворский согласен с тем, что проблема действительно существует, но она вызвана объективными причинами. Он утверждает: «Свободный софт и продукты на его основе развиваются очень быстро, и документация, особенно пользовательская, за ними не успевает. В значительной степени компенсирует это отставание возможность общения с опытными пользователями и разработчиками по почте, на форумах и в чатах».

Иными словами, документация есть, но её форма в определённом смысле отличается от общепринятой. Главное — результат, который в СПО может быть даже лучше. Действительно, получить точный ответ на конкретный вопрос в форуме или чате пользователю удобней, чем рыться в длинной и не всегда понятной инструкции.

Точка зрения генерального директор компании «Этерсофт» Виталия Липатова ещё более радикальна. Он считает, что документация для пользователей не нужна: «Программу должно быть возможно освоить без документации, которую всё равно никто читать не будет. Более полезны для пользователей, мне кажется, обзоры программ, которые публикуются в журналах и блогах — куда можно попасть через поисковик, найдя ответ на свой конкретный вопрос».

Впрочем, Виталий Липатов разделяет пользователей и программистов. Он говорит: «Для разработчиков и администраторов документация к библиотекам и программам может быть важна, но в виде справки к программе (man, —help) или как сгенерированная документация на сайте. Тут важна актуальность для той версии программы, которая используется».

Генеральный директор «НТЦ ИТ РОСА» Сергей Александров отмечает влияние политики государства на качество документации. От утверждает: «Документирование российских ОС, которые проходят сертификацию во ФСТЭК, значительно лучше, чем версий, создаваемых сообществом».

Также он считает, что у многих российских продуктов существуют целые онлайн-энциклопедии и базы знаний по ОС. А наиболее интересные, важные и полезные ответы службы техподдержки немедленно конвертируются в документы и публикуются в сети. В частности, он ссылается на практику своей компании: «В нашей базе знаний можно узнать, как установить и настроить разнообразное прикладное ПО. К примеру, как установить „1С“, „КриптоПРО“, добавить Linux в домен Windows, как поставить Skype, Steam и т. п.».

Несмотря на оптимизм Сергея Александрова, опыт общения с пользователями показывает, что проблемы с документацией есть. Главная их них — отсутствие некой системности. Создаётся впечатление, что наши компании занимаются этим вопросом «по остаточному принципу», порой полностью перекладывая его решение на плечи сообщества.

Несовместимость версий ПО и библиотек

Гарсия пишет, что сам удивился, когда узнал о существовании подобной проблемы. В популярных дистрибутивах её уже давно нет, но даже само появление инициатив AppImage, Flatpak и Snaps показывает, что разработчики относятся к этому вопросу весьма серьёзно.

Существование проблемы, правда с одной важной оговоркой, подтверждает Алексей Новодворский. Он рассказывает: «Репозитории заметных дистрибутивов контролируют целостность системы при обновлении. Проблемы обычно возникают при попытке установки проприетарного ПО. Здесь одно решение — взаимная сертификация производителей дистрибутивов и разработчиков проприетарных программ. Внутри России с этим удаётся постепенно разобраться».

Очевидно, что «постепенно разобраться» получается именно благодаря проводимой государством политике. Вопреки наивным ожиданиям некоторых участников СПО-собщества эффект от «невидимой руки рынка» оказался нулевым. Либо рука недостаточно сильная, либо рынок какой-то не такой.

Сергей Александров тоже считает, что проблема может быть решена сертификацией. Он говорит: «К сожалению, одних усилий разработчиков тут мало. Разработчикам Linux (особенно российским) необходимо договариваться о стандартизации Linux-систем. Мы с российскими коллегами часто обмениваемся технологическими решениями и архитектурными подходами, заимствуем друг у друга как прикладные программы, так и инфраструктурные решения, шрифты. Но данную работу необходимо систематизировать и упорядочить, чему могло бы поспособствовать создание Ассоциации разработчиков ОС».

Отмечает он и роль государства в этом процессе: «Государство должно быть заинтересовано в совместимости систем между собой, оно уже предлагает некие общие подходы к ПО. Например Минкомсвязи вырабатывает нормативные документы, стандартизирующие хотя бы на первом этапе прикладной состав операционных систем, и выдвигает требования, призванные облегчить установку различного стороннего ПО. Но эта работа должна вестись в тесном сотрудничестве с разработчиками российских ОС».

Виталий Липатов уточняет: «Несовместимость стороннего ПО с библиотеками в дистрибутиве — это актуальная проблема, но она может быть смягчена, если поставщик такого ПО обладает нужной квалификацией. Например, десктопный клиент для Telegram распространяется в виде одного бинарника и отлично работает на большинстве платформ. Тут вопрос в соответствии дистрибутива стандартам LSB».

Тем не менее, проблема совместимости, на его взгляд, достаточно специфична и при её решении необходимо учитывать желания пользователей. «Понятно, что пользователям хочется просто качать с сайта программы и ставить их. Но это время уходит, да и в Linux другая концепция. Важен вопрос безопасности, подлинности ПО. На мобильных платформах победили официальные магазины приложений. В Linux задолго до этого появились репозитории программ, — рассуждает Виталий Липатов. — Собственно, проблема начинается только со сторонним проприетарным ПО. Тут я с интересом смотрю на решения типа Flatpack или Snaps. Для серверной стороны это docker. Во многих случаях такой подход позволяет поставить программу и не думать о зависимостях. Но все это еще в процессе развития. Для пользователя, мне кажется, важно наличие большого и актуального репозитория программ к конкретному дистрибутиву Linux».

Что касается разработчиков, то ситуация не такая сложная, как кажется на первый взгляд. «Для программистов проблема существования разных версий библиотек — это просто данность, которую надо решать. На примере больших популярных проектов, которые компонуют в себе десятки других библиотек, видно, что такие проблемы можно решить, подготовив универсальный дистрибутив — один для большинства платформ. Я вижу три варианта решения: носить все библиотеки с собой; делать такую программу, которая не имеет „лишних зависимостей“ — только LSB; собирать своё приложение под каждый конкретный дистрибутив», — рассказал Виталий Липатов, отметив, что последнего подхода придерживается Etersoft, когда использует свободную систему сборки Korinf, позволяющую из одного файла спецификации собирать дистрибутив для всех платформ.

UEFI и безопасная загрузка

Гарсия считает, что ситуация с UEFI постепенно улучшается. Хотя проблемы на некоторых устройствах ещё наблюдаются.

С ним согласен Сергей Александров: «Проблемы с установкой ОС в случае наличия UEFI BIOS давно решены практически во всех версиях Linux. Более того, нами даже решён вопрос (правда пока только для ОС ROSA Fresh), когда 64-разрядный дистрибутив устанавливается на компьютер с 32-разрядным UEFI».

Алексей Новодворский полагает, что если проблема и существует, то решение её зависит не только от Linux-разработчиков: «UEFI — хорошая задумка с плохими реализациями. Пока производители железа не будут как следует тестировать прошивки своего оборудования, дело тут не пойдёт».

С ним согласен Виталий Липатов: «Я не считаю UEFI проблемой Linux. Это большая сложная штука, которая плохо поддерживается автоматически и с которой слишком долго разбираться вручную. Но она такой придумана для нас в Microsoft. Проблемы не вижу: берём и ставим дистрибутив, он должен сам разобраться с UEFI. Это не проблема для пользователей, но затраты времени для квалифицированных разработчиков».

Отказ от поддержки 32-разрядных систем

Гарсия пишет, что многие пользователи «оплакивали» прекращение поддержки 32-разрядных систем в своих любимых дистрибутивах. Конечно, пока ещё есть решения, где такая поддержка обязательна, но тенденция настораживает. Не исключено, что рыночные реалии приведут к тому, что об этой платформе будет некому заботиться.

Алексей Новодворский полностью подтверждает слова эксперта: «Такой отказ имеет свой резон, если новые версии продукта требуют значительных ресурсов, которых нет на системах со старыми процессорами. Вместе с тем, есть ещё много дистрибутивов, которые поддерживают 32-разрядные решения для Intel и ARM в своих новых релизах».

Сергей Александров также с этим согласен: «Да, многие разработчики дистрибутивов сейчас отказываются от поддержки 32-разрядной платформы. Это общерыночная тенденция, через несколько лет уже сложно будет найти 32-разрядные приложения. Впрочем, мы не планируем в ближайшее время прекращать разработку и поддержку ROSA Enterprise Desktop 32-bit».

Ухудшение поддержки и тестирования X-forwarding

По мнению Джереми Гарсия, поддержка X-forwarding будет только ухудшаться. Особенно это касается новых приложений, разработчики которых стремятся поскорее выпустить продукт на рынок.

Однако Сергей Александров утверждает, что такой проблемы нет, если правильно настроить систему: «Суть претензий, насколько я понимаю — X-Forwarding не применяется по умолчанию. Тут старая дилемма между безопасностью и удобством. В большинстве дистрибутивов жертвуют удобством в угоду безопасности. И мы тут не исключение. Если кто-то хочет пожертвовать своей безопасностью — пожалуйста. Но пусть он делает это сам, понимая на что идет. На мой взгляд, все-таки лучше, чтобы данные пользователя находились в большей сохранности при установке системы по умолчанию».

Виталий Липатов с ним согласен, хотя видит причины несколько в ином. «Претензия к ухудшению тестирование X-forwarding выглядит как устаревшая. Обычному пользователю эта возможность вообще не нужна. Что же касается сути, так X-протокол исчерпал себя, потому что сейчас все графические интерфейсы (Qt/GTK) сами рисуют всё в растре, и от „иксов“ требуется только отрисовать готовую картинку. В рамках „иксов“ это уже никогда не будет нормально работать. Я с интересом и надеждой смотрю на сетевую работу с Wayland. В первую очередь надо выкинуть „иксы“ из системы. Это огромное количество лишнего кода. Единственное и важное достоинство „иксов“ — это наличие поддержки множества видеокарт. Даже несовместимость с множеством программ легко разрешается поверх Wayland с помощью чего-то похожего на Xephyr, — полагает он. — Что же касается всё-таки использования X-forwarding, то есть такие проекты на основе NX, как X2Go или RX@Etersoft, делающие акцент на удалённый графический доступ по интернет-каналам любой ширины. С интересом смотрю на xpra и xrdp, это тоже работоспособные решения».

Таким образом, наши реалии не сильно отличаются от мировых. Даже наличие трудностей с поддержкой X-forwarding не отрицается, а просто не считается сколько-нибудь значимой проблемой.

Говоря о настоящих трудностях, Виталий Липатов отмечает прежде всего разобщённость разработчиков дистрибутивов. «Разобщённость ведёт к тому, что многие работы делаются повторно, стандартов появляется очень мало. Каждый в своём огороде. Проблема заключается в том, что свободная модель разработки не позволяет простым способом финансировать разработчиков ПО со стороны пользователей, ожидающих определённых возможностей или поддержки от разработчика. Здесь корни недавних проблем с такими проектами, как openssl, freetype. Плохо, когда популярная библиотека, которая является базовой для экосистемы Linux, разрабатывается как получится», — уверен он.

И это действительно так. Что прекрасно подходит для энтузиастов, плохо применимо в корпоративном и потребительском секторах, где «Just for fun» не играет решающей роли. Разработчики должны предлагать пользователям гарантированно работающие решения, перспективы которых не зависит ни от коммерческих интересов вендоров, ни от прихоти участников сообщества.