habrahabr

Всё-таки свободное ПО не победило

  • вторник, 21 октября 2025 г. в 00:00:08
https://habr.com/ru/companies/ruvds/articles/957018/

(Перевод моего выступления на P.I.W.O в июне, слегка подчищенный и приближенный к формату блога).

…звучит как-то не очень. Я сделала все эти слайды в Inkscape из Linux с оболочкой KDE, плюс я регулярно пользуюсь Firefox. Но это всего лишь я. А что насчёт вас? Вы используете свободное ПО? Поднимите руки! [в аудитории поднимаются руки] Конечно же! Что за чепуха, «Свободное ПО не победило». Кто-то подменил мои слайды… Эй, ведущий конференции!

Ведущий: В другом каталоге.

[Перехожу в папку под названием «другой каталог» и открываю файл «твои слайды тупица.pdf» ]

Вот они мои слайды.

Всех приветствую! Меня зовут Дорота, и сегодня я буду говорить о том, как…

Опенсорс победил

И это не свежие новости. Они ещё с 2008 года регулярно звучат в авторитетной прессе: ZDNETLinux JournalWired и так далее.

В статьях по этим ссылкам можно найти множество подтверждающих мои слова примеров.

Linux, Ruby, Red Hat, мм, GitHub? Значит ли это, что я могу скачать GitHub и запустить на собственном сервере? Microsoft? Да ладно, это какая-то шутка. Кто-то подделал слайды! Что же ещё в них есть? Ах да, вот нормальная цитата:

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

Так, вижу ошибку в имени автора цитаты. Прям какая-то атака на мою репутацию! Ну да ладно.

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

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

Без закрытого ПО можно обходиться и при 3D-печати, и при создании мобильных компьютеров (иначе говоря, смартфонов) или умных часов. Существуют графические карты, которые работают полностью на свободном ПО (опрошенные разработчики проекта nouveau подтвердили, что писали какие-то прошивки; к слову, последней микроархитектурой, где допускалось свободное ПО, была Nvidia Kepler от 2012 года). То есть «велосипеды», которые едут без платного ПО, существуют! Причём они есть практически у всех. А ещё из той же оперы есть швейные машинки:

Интеркомы:

Есть и машины, причём давно:

И жёсткие диски:

[пошли пустые слайды]

И беспроводные гарнитуры, и ТВ… [слайды по-прежнему пустые], стоп, что-то здесь не так… Ещё есть телефоны! [слайды, как назло, остаются пустыми, раздаются отчаянные щелчки мыши.]

[…]

[…]

[…]

Чёрт… Всё не так...

Ага, ясно.

Только аналоговый телефон дарует нам свободу. Это напоминает мне времена, когда мы создавали Librem 5. Тогда было проблемой найти для него модем. И причина в том, что все необходимые патенты на подключение к сотовым сетям принадлежат одной компании. Эта компания может устанавливать любые требования для всех пользователей её микросхем, чем она, собственно, и занимается. Так что было весьма трудно не только найти модемы, которые бы отвечали нашим потребностям, но и дилеров, которые были бы готовы их нам продать. Дилеры беспокоились, что продажа этих устройств может привести к нарушению каких-нибудь правил дистрибуции, и что они просто больше не получат эти модемы.

В общем, это не тот случай. Но я знаю, что точно можно отнести к открытому ПО.

Ричард Столлман в 1983 году запустил очень важный проект под названием GNU. В одном из своих интервью, описывая зарождение этого проекта, он упомянул устройство, которое было куплено его университетом, но работало как-то не очень. Ричард хотел доработать это устройство, но никто не желал предоставить ему исходники. Это было оскорбительно! Почему разработчики скрывали код?

Что это было за устройство?

Принтер. Учитывая, что проект GNU был запущен в 1983 году, а упомянутая история родом из 1981, значит, мы уже более 40 лет боремся за свободу принтеров. Думаю, пора взглянуть, какая у нас есть опенсорсная альтернатива.

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

Но у меня есть теория. Люди, которые говорят «Опенсорс победил» учитывают лишь малую часть всего существующего ПО. Взгляните на список ниже. Это своеобразная карта видов ПО, показывающая, в каких случаях вы вынуждены использовать проприетарные решения (выделены жирным), а в каких существуют опенсорсные альтернативы (выделены курсивом).

  • Приложения: Blender, Firefox, KiCADTwitter, YouTube.

  • Операционные системы: GCC, Apache, OpenSSL.

  • Ядро: Linux, Zephyr, FreeRTOS.

  • Прошивки: Corebootmodem, GPU.

  • Бытовые устройства: Prusa 3D, Airgradientwashing machine, TV.

И какая из этого получается картина? Те вещи, которые касаются программистов непосредственно — те же операционные системы и ядро — проработаны очень хорошо. Что бы нам ни потребовалось в их контексте, для этого найдётся опенсорсная версия. С приложениями тоже дела обстоят неплохо. Есть открытые веб-браузеры, ПО для творчества. Но проблема возникает, когда речь заходит о социальных сетях. Естественно, для них есть альтернативы. Но Mastodon или PeerTube — это отдельные сети, не связанные с проприетарными. Так что они не помогут связаться с людьми, которые их не используют.

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

Посчитаем прошивки в среднем ноутбуке

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

По моим прикидкам в обычном ноутбуке задействовано от 10 до 15 отдельных процессоров. В одной только видеокарте их может быть аж пять.

И что всё это значит в плане свободного ПО? Как правило, все открытые программы — Linux, драйверы, приложения — привязаны к основному процессору. А теперь представьте, что хотите использовать эту операционку через какой-нибудь удобный интерфейс, например, тачскрин или клавиатуру. Все эти устройства работают на закрытом ПО, поэтому, если вы хотите ввести на своём среднестатистическом ноутбуке какие-то данные, то уже проиграли — вы ни шагу не сделаете без проприетарного ПО.

Аналогичная история и с видеокартами, которые без закрытого ПО ничего вам не покажут. Какой провал. Ладно, давайте исключим клавиатуры и дисплеи — представим, что у нас сервер. Но и здесь тоже провал — чтобы наладить связь через сетевую карту, вам необходимо соответствующее программное обеспечение, которого нет в открытом доступе. Ладно, предположим, что мы эту проблему как-то решили. Но теперь мы встречаем преграду, когда хотим сохранить данные: SSD и HDD работают на собственном проприетарном ПО. Не слышала ни об одном случае открытого ПО для подобных устройств.

Но это ещё не самое худшее. Вершина нашего провала в технологии процессора внутри процессора. Слышали о Secure Boot? Это часть BIOS, которая загружается в процессор внутри основного процессора до загрузки основной ОС. Secure Boot позволяет производителю выбирать, какое ПО пользователь сможет запускать. И в смартфонах на базе Android тоже есть аналогичный механизм, ограничивающий их возможности рамками конкретной системы. Производители таких смартфонов не стесняются ограничивать пользователей в плане доступных для установки программ.

Но ведь это противоречит свободе пользователей!

Свобода пользователя существует, только когда соблюдаются четыре столпа Свободного ПО:

  • 0: свобода использовать программу для любой цели.

  • 1: свобода изучать её и изменять.

  • 2: свобода обмениваться её копиями.

  • 3: свобода дорабатывать её и обмениваться этими доработками с другими.

…вот только всё это лишь слова. Кого это волнует? Согласитесь, вся эта теория будет актуальна только для нас, для компьютерных экспертов.

Хотя… а вдруг вы технический эксперт в кругу своей семьи? Ваши мама/бабушка/дядя и другие родичи несут вам свои заглючившие телефоны на Android в надежде, что вы их почините?

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

Печально, но временная линия поддержки продуктов со стороны разработчиков Android такова: обычно спустя 4, в редких случаях 8 лет, они прекращают выпускать обновления безопасности. В итоге устройства становятся слишком уязвимыми для дальнейшего использования и зачастую превращаются в электронные отходы.

Как с этим связано свободное ПО? Не знаю, но мой ноутбук Lenovo, уже 13 лет с момента своего рождения исправно получает обновления безопасности. Подозреваю, что это связано с отсутствием блокировки загрузчика и тем, что драйверы всех его устройств открыты. С Android же другая история. Даже если явной блокировки нет, драйверы настолько редко открывают для сообщества, что люди идут на создание кастомных ROM для конкретных девайсов. 

Выкачивание денег из клиентов

Пара сотен баксов, которые вашей тёте нужно потратить на обновление своего телефона, меркнут в сравнении с тем, сколько людям приходится платить за устройства, напрочь привязанные к облаку. Некоторые такие гаджеты не позволяют вам выбрать альтернативного провайдера необходимых драйверу услуг. Что произойдёт, когда компания закроет свой онлайн-сервис? Естественно, такое устройство просто станет дорогим кирпичом. Представьте, что кто-то по такому вот мановению руки превращает ваши 2 300 баксов в прах.

И это ещё пустяки в свете того, с чем сталкиваются некоторые люди. Представьте, что вы фермер, у которого на поле взошёл урожай, готовый к сбору. Погода сулит ураган, поэтому вы запрыгиваете в комбайн и приступаете к работе. О нет, только не это! Ваш уборочный агрегат сломался. Без паники! Вы же подготовленный фермер, у которого есть нужная запасная деталь. Вы её устанавливаете, запускаете комбайн, и… его система вам сообщает: «Посторонний компонент. Обратитесь в клиентскую службу». Вот теперь у вас реальная проблема, так как на устранение поломки клиентской службе может потребоваться до 9 месяцев. Всё это время вы не сможете собирать урожай, который может принести вам десятки тысяч долларов. Вы улетаете в глубокий минус. Игра окончена — ваша ферма банкрот. Но ведь это ещё не конец света?

Так выглядит кардиостимулятор. Почему я вдруг решила упомянуть о нём в разговоре о свободном ПО? Видите ли, кардиостимулятор — это сложное устройство, которое для исправного выполнения своей задачи должно непрерывно в реальном времени диагностировать состояние человека. Его задача в том, чтобы обнаруживать опасное состояние и соответствующим образом на него реагировать. Для этого устройству нужно программное обеспечение. Но если кардиостимулятор ошибётся в своей оценке состояния человека, возникнет серьёзная проблема. Я не медицинский эксперт, но лишняя стимуляция сердца током, когда ему это не требуется, звучит очень опасно. Когда такой девайс работает на проприетарном ПО, у нас нет свободы это ПО модифицировать. Приходится полагаться на волю производителя. И поскольку у нас нет свободы для его изучения, мы не можем избежать обстоятельств, которые ведут к ложным срабатываниям.

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

И главный вывод из всего сказанного таков — если у нас есть люди, которые вынуждены доверять своё тело и здоровье какому-то закрытому ПО и единственному производителю, то разве можно говорить, что «Опенсорс победил»?

Бытовые устройства и копилефт

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

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

И именно мы — эксперты вычислительных систем — ответственны за то, чтобы предотвратить подобное. Создавая ПО, мы можем выбрать, под какой лицензией его выпускать. И здесь нам следует использовать так называемый «копилефт». Этим термином обозначают лицензии, которые запрещают закрывать код, который однажды был выпущен как открытый. Самой распространённой из подобных лицензий является Gnu General Public License (GPL), и я советую использовать именно её.

Лицензии и иже с ними

Лицензии — это не единственное, что важно в свободном ПО. Есть и другие значимые вещи:

  • Патенты, как в том случае с сотовыми модемами.

  • Аппаратные ограничения, как в Android.

  • Особенности управления проектом.

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

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

Возьмём в качестве контрпримера Debian. Первое же заявление на их главной странице гласит: «Debian — это сообщество людей!» Это программное обеспечение разрабатывается и используется одними и теми же людьми. Они не станут вредить себе, усложняя его использование. Они постараются обеспечить полноценную ОС, опубликуют весь исходный код и вычистят всё, что не будет достаточно открытым. С другой стороны, разработчики Android уже давно заменяют открытые компоненты проприетарными, лишая AOSP (открытую часть системы) самодостаточности.

Почему?

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

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

И что дальше?

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

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

Есть и ещё один путь — политическое давление. Думаю, это будет более эффективный метод, нежели разрозненные действия. В конце концов, Евросоюз ведь смог убедить производителей смартфонов стандартизировать порты USB-C для зарядки и расширить гарантийный период. Возможно, им также следовало заставить разработчиков компьютерного оборудования не прописывать в загрузчике ограничения. Это бы прекрасно вписалось в директиву о гармонизации цифрового общества (Directive 2001/29/EC), в которой среди прочего говорится:

Страны-участницы должны на законодательном уровне обеспечить защиту против осознанного совершения любым лицом одного из следующих действий:

  • удаления или изменения любой информации об управлении правами на электронные продукты.

…мда. То есть вместо того, чтобы сажать тех, кто ставит ограничения на устройства, которые им больше не принадлежат, они решили сажать тех, кто удаляет эти ограничения со своих собственных устройств. Великолепно.

Уважаемая Еврокомиссия, прошу вас, найдите разбирающегося в теме человека, который сможет объяснить вам последствия ваших идей понятным для вас языком. Вы это можете, у вас уже пару раз получалось, как в примере выше. Только действуйте последовательно, хорошо? Поклянитесь!

Я даже подскажу, где можно найти таких разбирающихся людей: в фонде Free Software Foundation Europe, опубликовавшем своё открытое письмо «Public Money Public Code», в движении Right to Repair, или в партии European Pirate Party.

Всем, кого эта тема волнует, я советую объединяться с этими ребятами. Если же вы не хотите лезть в политику, поддержку можно оказать финансово. И я даже не конкретно о пожертвованиях (хотя и они приветствуются). В первую очередь я говорю о поддержке разработчиков, ориентированных на свободное ПО. Купите Librem 5 от Purism или 3D-принтер от Prusa, или умные часы на базе Espruino. Видите ли, производить оборудование весьма накладно. Не легче и от того, что рынок уже переполнен проприетарными продуктами. Даже если открытые продукты с возможностью модификации и оказываются лучше, основной массе общества потребуется ещё много времени, чтобы осознать все их прелести и выгоды. Свободное ПО развилось как элемент культуры, основанной на возможности починки и модификации. Но эта культура едва просвечивала в широком обществе, заполненном коммерческими, одноразовыми поделками, поэтому её преимущества понимали немногие. И это неразумное вытеснение с рынка продуктов, ориентированных на открытое ПО, создаёт ещё одну преграду.

Но здесь есть одно яркое исключение, которое тем необычнее, что исходит от Google. Речь о Chromebooks. В Google есть ряд требований, которые должны выполнять все производители Chromebook. Так вот одно из этих требований заключается в использовании полностью открытой BIOS вместе с прошивкой контроллера встроенного устройства. Все известные мне модели Chromebook запускаются с помощью Coreboot. Да, они всё равно содержат проприетарное ПО, в частности программу инициализации RAM при старте системы, которая наверняка есть во всех ноутбуках. Но! В остальном Chromebook на базе ARM могут работать с полностью открытой BIOS. Так что, если кто-нибудь желает поучаствовать в их доработке, присоединяйтесь к моему проекту NLNet. Его цель — максимально упростить использование на этих ноутбуках системы Linux.

Мир

Короткий квиз: «Сколько вокруг вас есть устройств, имеющих процессор?»

Подскажу: ТВ, камера, зубная щётка, осциллограф, электронная книга, радиоприёмник, посудомойка, роутер, стиральная машинка, пылесос, напольные весы.

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

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

А что насчёт других случаев применения в бизнесе? Станции автодиагностики? Медицинское оборудование? Бухгалтерское ПО?

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

Похоже, мы облажались. По-другому не скажешь. Мы позволяем закрытому ПО проникать даже в собственную крепость — в компьютеры. Естественно, интерфейсы открыты. Есть SATA, есть PCI. При желании можно поменять комплектующие, установить Linux, всё вроде бы норм. Но по факту — нет. Дело в том, что периферийные устройства не менее важны, чем основные. И в этом смысле мы, как разработчики, уже утратили контроль над периферией своих ненаглядных.

Упущенный потенциал

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

Но идти против производителя — это пустая трата сил. Представьте себе разницу между хаком и изменением официальных исходников. Это тот потенциал возможностей, которых можно было бы достичь, если бы не пришлось ломать двери, открытые двери. Вот вам пример. У меня есть экшн-камера. Из-за одного идиотского закона эта камера прерывает запись, как только ролик достигает 30 минут. При этом за моими плечами 20 лет опыта разработки. Будь у меня исходный код, я бы могла исправить эту проблему и дальше радоваться жизни. Ещё один пример — и снова с камерой. Я снимаю у себя из окна таймлапсы. Каждое утро в 10:00 я делаю снимок на расположенную у окна камеру. Но у неё нет функции таймлапса, поэтому мне нужно каждый раз делать это вручную. Почему я не могу это исправить? Естественно, нет доступа к исходному коду.

Заключение

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