Linux, GNU и свобода
Ричард СтолменПоскольку статья Джо Барра критикует мои переговоры с SIGLINUX, я хотел бы разъяснить, что в действительности произошло, и раскрыть мотивы своих действий.
Когда группа SIGLINUX пригласила меня выступить перед ними, она была “группой пользователей Linux”, то есть группой пользователей системы GNU/Linux, которая называет всю эту систему “Linux”. Так что я вежливо ответил, что если они хотят, чтобы кто-то из проекта GNU выступил у них с речью, то им следует отдавать должное проекту GNU и называть систему “GNU/Linux”. Система — это вариант GNU, а проект GNU — ее главный разработчик, так что правила приличия требуют, чтобы это отражалось в названии, которое мы выбираем. Если нет веских причин для исключения, я обычно отказываюсь от выступлений в организациях, которые не отдают таким образом должного проекту GNU. Я уважаю их свободу слова, но у меня тоже есть свобода не выступать с речью.
Впоследствии Джефф Странк из SIGLINUX пытался изменить правила группы и просил фонд занести ее в наш список групп пользователей GNU/Linux. Наш администратор сказал ему, что мы не хотим заносить ее под названием “SIGLINUX”, поскольку это название подразумевает, что в группе обсуждается Linux. Странк предложил заменить название на “SIGFREE”, и наш администратор ответил, что это вполне подошло бы (в статье Барра сказано, что мы отвергли это предложение). Однако группа в конце концов решила остановиться на “SIGLINUX”.
В этот момент я снова обратился к этому вопросу и предложил им рассмотреть другие возможности. Есть много названий, которые они могли бы выбрать, чтобы не называть систему “Linux”, и я надеюсь, что они в конце концов найдут название, которое их устроит. Насколько мне известно, на этом дело и остановилось.
Верно ли, как пишет Барр, что некоторые расценивают эти действия как “применение силы”, сопоставимое с монопольной властью Microsoft? Вероятно. Отказ от приглашения — это не принуждение, но в глазах людей, которые упорствуют в убеждении, что вся система — это “Linux”, вещи порой искажаются до необычайности. Чтобы это название выглядело правомерным, они должны смотреть на мух, как на слонов, а на слонов, как на мух. Если вы можете закрывать глаза на факты и считаете, что Линус Торвальдс разрабатывал систему начиная с 1991 года, если вы можете игнорировать элементарные принципы справедливости и считаете, что благодарности заслуживает только Торвальдс, даже за то, чего он не делал, то отсюда недалеко до убеждения, что я обязан выступать перед вами, когда вы попросите.
Только подумайте: проект GNU начинает разработку операционной системы, а через несколько лет Линус Торвальдс добавляет одну из важных частей. Проект GNU говорит: “Пожалуйста, упоминайте и о нашем проекте!” А Линус говорит: “Не признавайте за ними никаких заслуг; называйте всю систему только моим именем!” Теперь представьте себе, кем надо быть, чтобы вывести из этого обвинение проекта GNU в эгоизме. Нужно сильное предубеждение, чтобы судить так несправедливо.
Кто необъективен до такой степени, может возводить всевозможную клевету на проект GNU и думать, что она оправдана; те, кто разделяет такие взгляды, будут поддерживать друг друга, потому что они нуждаются в поддержке, чтобы упорствовать в своих предубеждениях. Несогласных можно подвергать остракизму; таким образом, если я отказываюсь участвовать в деятельности под рубрикой “Linux”, они могут счесть это непростительным и обвинить меня в недоброжелательстве, которое они ощущают. Когда так много людей хочет, чтобы я называл систему “Linux”, как смею я, кто просто начал ее разработку, не подчиняться? И упорно отказывать им в выступлении — значит упорно причинять им беспокойство. Это — насилие, оно не лучше, чем у Microsoft!
Но вы, может быть, удивлены, почему я просто не обошел вопрос стороной, чтобы избежать всех этих огорчений. Когда меня пригласили выступить в SIGLINUX, я мог бы просто сказать: “Простите, не могу”,— и этим бы все и кончилось. Почему я так не поступил? Потому что я иду на риск личных конфликтов, чтобы получить возможность исправить ошибку, которая губит на корню начинания проекта GNU.
Называть этот вариант системы GNU “Linux” — значит играть на руку тем, кто выбирает свои программы на основании только технических достоинств, не обращая внимания на то, уважают ли эти программы свободу пользователя. Есть люди, вроде Барра, которые хотят, чтобы их программы были “свободны от идеологии”, и порицают всех, кто утверждает, что свобода важна. Есть люди, вроде Торвальдса, которые станут принуждать наше сообщество к пользованию несвободной программой и требовать от тех, кто этим недоволен, немедленно предоставить (технически) лучшую программу или заткнуться. Есть люди, которые говорят, что технические решения не должны “политизироваться” рассуждениями об их социальных последствиях.
В семидесятые годы пользователи компьютеров утратили свободу изменять и распространять программы, потому что они не ценили своей свободы. Пользователи компьютеров снова обрели эту свободу в восьмидесятых и девяностых годах, потому что группа идеалистов, собравшихся в проекте GNU, была убеждена, что свобода делает программу лучше, и была готова работать во имя того, во что мы верили.
Сегодня у нас есть частичная свобода, но наша свобода не гарантирована. Ей угрожает CBDTPA[1] (сменивший SSSCA[2]), Группа обсуждения “защиты” вещания[3], которая предлагает закрыть свободным программам доступ к цифровому телевещанию, патенты на программы (Европа сейчас обсуждает введение патентов на программы), соглашения о неразглашении жизненно важных протоколов Microsoft, а также все те, кто вводит нас в искушение несвободной программой, которая “лучше” (технически), чем доступные свободные программы. Мы можем снова утратить свою свободу точно так же, как мы потеряли ее в первый раз, если мы не позаботимся о ее защите.
Позаботятся ли об этом достаточно многие из нас? Это зависит от многого и, кроме прочего, от того, насколько влиятелен проект GNU и насколько влиятелен Линус Торвальдс. Проект GNU говорит: “Цените свою свободу!” Джо Барр говорит: “Делайте выбор между свободными и несвободными программами только на технических основаниях!” Если люди ставят Торвальдсу в заслугу то, что он — главный разработчик системы GNU/Linux, это не просто неточно. Это придает его словам больший вес — словам о том, что “несвободные программы — это не плохо; я сам пользуюсь ими и разрабатываю их”. Если они признают нашу роль, то они будут больше прислушиваться к нашим словам, и они от нас услышат: “Эта система существует благодаря тем, кому небезразлична свобода. Присоединяйтесь к нам, цените свою свободу, и вместе мы сохраним ее”. См. историю проекта на странице Проект GNU.
Когда я прошу называть систему “GNU/Linux”, некоторые отвечают глупыми оправданиями и ничтожными аргументами. Но мы, вероятно, ничего не теряем — хотя бы потому, что они, скорее всего, недружелюбно настроены. В то же время другие соглашаются с моими аргументами и употребляют это название. Этим они помогают информировать других об истинных причинах существования системы GNU/Linux, а это облегчает нашу задачу донести до людей мысль о том, что свобода — это важная ценность.
Вот почему я продолжаю биться лбом о предубеждение, напраслину и огорчения. Это причиняет мне боль, но в случае успеха эти попытки помогают проекту GNU вести кампанию за свободу.
Поскольку это коснулось Linux (ядра) и несвободной системы контроля версий BitKeeper, которой сейчас пользуется Линус Торвальдс, я бы хотел прояснить и этот вопрос.
Проблема с системой BitKeeper
(См. обновление ниже.)
Применение системы BitKeeper для исходных текстов Linux имеет тяжелые последствия для сообщества свободного программного обеспечения, потому что каждому, кто хочет внимательно отслеживать изменения в Linux, необходимо установить несвободную программу. Должно быть, десятки, а то и сотни хакеров ядра сделали это. Чтобы избежать чувства внутреннего противоречия от присутствия на их машинах системы BitKeeper, большинство из них постепенно приходит к убеждению, что можно пользоваться и несвободными программами. Что с этим можно поделать?
Одно из решений — создать другой источник исходных текстов Linux на базе CVS или другой свободной системы контроля версий и организовать автоматическую загрузку в него новых версий. В этом источнике можно было бы применить BitKeeper для доступа к последним версиям, а затем заносить новые версии в CVS. Этот процесс можно было бы выполнять часто и автоматически.
Наш фонд не может делать этого, потому что мы не можем позволить себе установить BitKeeper на свои машины. Сейчас у нас на них нет несвободных систем и приложений, и наши принципы требуют, чтобы мы этого придерживались. Этот источник должен предоставить кто-то другой, кто не возражает против установки системы BitKeeper на своей машине — если только не найдется способа делать это с помощью свободных программ.
У самих исходных текстов Linux есть еще более серьезная проблема с несвободными программами: на самом деле исходные тексты содержат их. Небольшое количество драйверов содержит последовательности чисел, представляющие собой программы для загрузки в устройство. Эти программы не свободны. Одно дело — несколько чисел для загрузки в регистры, другое — содержательная программа в двоичном виде.
Присутствие этих программ только в двоичном виде в “исходных” файлах Linux порождает вторичную проблему: это поднимает вопрос о возможности легального распространения Linux в двоичном виде. GPL[4] требует “полного соответствующего исходного текста”, а последовательность целых чисел — не исходный текст. Таким образом, добавление такой последовательности в исходный текст Linux ведет к нарушению GPL.
Разработчики Linux планируют вынести эти программы для устройств в отдельные файлы; на это потребуется несколько лет, но когда это будет завершено, вторичная проблема будет решена; мы могли бы сделать “свободную версию Linux”, в которой нет этих файлов несвободных программ. Само по себе это будет не очень полезно, если большинство будет пользоваться несвободной “официальной” версией Linux. А это вполне может произойти, потому что на многих платформах свободная версия не будет работать без несвободных программ для устройств. Участникам проекта по созданию “свободной Linux” придется определять, что делают эти программы, и писать исходный текст для них, возможно, на языке ассемблера для всех тех встроенных процессоров, на которых они выполняются. Эта работа требует титанических усилий. Она была бы не такой трудной, если бы мы делали ее постепенно, год за годом, вместо того, чтобы ее накапливать. Чтобы набирать людей для этой работы, нам придется преодолеть мысль, идущую от некоторых разработчиков Linux, что эта работа не обязательна.
Ядро под названием Linux часто считают флагманом свободного программного обеспечения, и все же его текущая версия частично несвободна. Как это произошло? Эта проблема, как и решение об использовании системы BitKeeper, отражает отношение первоначального разработчика Linux, личности, которая думает, что технические преимущества важнее свободы.
“Цените свою свободу, чтобы не потерять ее”,— учит история. “Не путайте нас в политику”,— отвечают те, кто не хочет учиться.
Обновление: С 2005 года BitKeeper больше не применяется для управления исходными текстами ядра Linux. См. статью Спасибо, Ларри Маквой. Исходные тексты Linux все еще содержат несвободные кляксы с программами для устройств, но с января 2008 года поддерживается свободная версия Linux для применения в свободных дистрибутивах GNU/Linux.