Наука и техника
22:46, 3 декабря 2011

Свободный от слова "свобода" Ричард Столлман о целях движения за свободное программирование

В начале декабря в Москву приехал Ричард Столлман, основатель движения за свободное программное обеспечение и инициатор проекта GNU. Он выступил на конференции "Почему будущее за свободным ПО", организованной РАСПО и "ПингВин Софтвер". "Лента.ру" с незначительными сокращениями публикует стенограмму лекции Столлмана.

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

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

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

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

Еще бывает так, что тот или иной продукт поставляется вместе с программой, которую можно изменять, но установить на этот продукт модифицированную версию нельзя. Мы называем это тивоизацией (tivoization, от названия плеера TiVo - примечание "Ленты.ру"). Это не свободное ПО, поскольку бессмысленно иметь право изменять исходный код, но не иметь возможности применить эти изменения на практике.

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

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

Логотип GNU
Lenta.ru

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

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

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

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

Свобода номер ноль, свобода запускать программу так, как вам этого хочется, очень важна. Вы заслуживаете права решать, как именно следует пользоваться компьютером. Однако этого недостаточно - вы также вправе знать, как работает программа, вправе изучить ее код и изменить его. Без этого вы не узнаете, какие операции программа выполняет на самом деле. У многих несвободных программ есть вредоносные функции. Такие программы шпионят за пользователем, ограничивают его тем или иным способом или имеют "бэкдоры". Это встречается на каждом шагу.

Об одной из таких программ вы, конечно, слышали - это Microsoft Windows. В ней есть ограничения, которые мешают пользователям выполнять те или иные операции с данными на компьютере. Они называются DRM-ограничениями, я их еще называю "цифровыми наручниками". Поэтому Windows - это вредоносное ПО. Да, термин "вредоносное ПО" обычно применяют по отношению к вирусам, но Windows так называть тоже можно. В ней есть "бэкдоры" - с их помощью Microsoft вносит изменения в ПО насильно, не спрашивая согласия пользователя. Получается, что раз сегодня в Windows нет тех или иных вредоносных черт, они вполне могут появиться там завтра.

"Макинтоши" - тоже вредоносное ПО. В них тоже есть "цифровые наручники". Новые продукты Apple, все эти ваши i-штуки, еще хуже - они могут следить за пользователем. И "бэкдоры" там тоже имеются. И Flash Player - вредоносная программа: там есть функция наблюдения и "цифровые наручники". Amazon Kindle (читалка компании Amazon - примечание "Ленты.ру") - вредоносное ПО. Она наносит удар по исконным свободам читателя - например, по свободе покупать книги за "наличку" и сохранять инкогнито. Я, кстати, только так и покупаю книги. Amazon же заставляет пользователей выдавать себя. Они там, в Amazon, знают, кто какие книги прочитал. Это удар по правам человека, так быть не должно! Далее, у нас есть свобода дать книгу другу или даже продать ее. Из-за "цифровых наручников" Amazon мы так поступать больше не можем. И еще - у нас есть свобода держать книгу у себя столько, сколько хотим. Но и тут Amazon предусмотрел "бэкдор", который дает им право удаленно стирать принадлежащие нам книги. Мы об этом знаем, потому что такое уже случалось. В 2009 году Amazon удалил тысячи копий одной и той же книги. Знаете, что за книга это была? "1984" Джорджа Оруэлла. Amazon пообещал, что такое больше не повторится - до тех пор, пока удалить книгу от них не потребуют власти. Обнадеживает, не правда ли? В переводе с английского “kindle” означает "разводить огонь". Итак, Kindle - это продукт, который сжигает наши книги.

А мобильные телефоны? Большинство из них будут передавать кому следует наши с вами GPS-координаты - для этого достаточно удаленно отправить запрос. Таким же способом их можно превратить в "жучки", устройства для прослушки. Итак, я показал вам, что самое популярное из существующего в мире несвободного ПО является вредоносным ПО.

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

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

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

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

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

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

Если вы видите тонущего человека (если это не Джордж Буш), если вы умеете плавать и поблизости нет никого, кроме вас - то ваш моральный долг спасти его. Ладно, я, наверно, погорячился. Может, есть кто-то еще, кого спасать не следует - может быть, Обама, Чейни, Путин. Не будем углубляться в этот вопрос, тем более что плавать я все равно не умею. В той ситуации, которая сложилась вокруг меня, плавать не требовалось - требовалось написать много-много программ. Я знал, как. Я решил разработать свободную ОС. Она должна была быть полностью свободной, свободной до последнего кусочка.

Ричард Столлман и плюшевая антилопа
Lenta.ru

Чтобы закончить работу побыстрей, я решил обратиться за помощью к другим людям. За основу я решил взять UNIX. Хоть это и проприетарная ОС, в ней много технических преимуществ. Я решил сделать свою ОС совместимой с UNIX. Все программы, которые работали под UNIX, должны работать и под моей ОС - так людям будет легче переключиться. Я решил дать системе шуточное название. Она называется GNU. Это означает "GNU не UNIX" (GNU is Not UNIX). Это рекурсивный акроним. А еще гну - это такое животное (показывает на плюшевую антилопу на трибуне. Кстати, закончив лекцию, Столлман устроил аукцион и продал гну за 12 тысяч рублей - примечание "Ленты.ру"). Оно живет в Африке. Я его люблю (прижимает антилопу к себе - примечание "Ленты.ру").

А вообще GNU - самое смешное слово в английском языке. По правилам, в слове GNU первая “G” - немая, поэтому надо говорить “NU” ("ню" - примечание "Ленты.ру"). Но если речь идет о нашей системе, я призываю вас не следовать правилам. Пожалуйста, говорите “GNU”. Если вы назовете ее ню-системой, вы введете людей в замешательство. Это все-таки не новое слово, GNU уже почти тридцать лет.

Еще одно неправильное произношение - Linux. Избегайте его, пожалуйста. Вы удивитесь, когда узнаете, сколько людей говорят о GNU и называют ее Linux. Как такое случилось? В 1992 году GNU была почти готова. Ей недоставало только одной важной вещи - ядра. И тогда мистер Торвальдс (Линус Торвальдс - примечание "Ленты.ру") взял и выпустил свое проприетарное ядро под названием Linux под нашей GPL (General Public License - примечание "Ленты.ру"). Потом люди добавили ядро Linux в GNU и получили законченную систему. От этого она не перестает быть GNU, просто она теперь включает в себя и Linux. Итак, это GNU/Linux. Пожалуйста, не говорите “Linux”, когда речь идет о всей системе. Это несправедливо по отношению к нам. Мы начали этот проект, мы выполнили большую часть работы, поэтому упоминайте и о нас тоже. Говорите “GNU/Linux”. Это отнимет всего лишь несколько секунд.

Говорить “GNU/Linux” важно еще и потому, что слово “GNU” ассоциируется с нашими идеями свободы, а слово “Linux” - с идеями другого рода, идеями мистера Торвальдса. Сейчас это называют "программным обеспечением с открытым исходным кодом" (open source). Этот термин создали в 1998 году, поскольку в нашем сообществе произошел раскол. Появились два политических лагеря. Один - движение за свободное программное обеспечение, то есть те, кто говорят: "Мы разрабатываем свободное ПО, поскольку свободное означает свободу". Это мы. Наши оппоненты говорят: "Нам нравится свободное ПО, мы вносим в него свой вклад", но они отрицают то, что свободное ПО - это вопрос морали. Такой позиции придерживается мистер Торвальдс. В 1990-е годы два лагеря вели постоянный спор, но в 1998 году сторонники Торвальдса изобрели новый термин. Они больше не говорят "свободное ПО", они говорят "ПО с открытым исходным кодом".

Когда вы говорите “Linux”, люди сразу думают, что начало всему положил мистер Торвальдс. Они безмерно им восхищаются. Они копируют его идеи, они подражают ему. А он не дает им повода задуматься о личной свободе! От этого страдаем мы - если пользователям безразлична свобода, они не пойдут сражаться за нее. А тем временем свободе постоянно что-то угрожает. Чтобы сохранить свободу, ее нужно защищать.

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

Мы, участники движения за свободное программное обеспечение, просто пытаемся привлечь внимание публики к нашим идеям. На этом пути у нас есть два препятствия. Первое - пользователи GNU не знают, что они используют GNU. Они думают, это Linux. Они думают, систему написал мистер Торвальдс. Они говорят: "Зачем обращать на вас внимание, вы, экстремисты от GNU?" Когда они заявляют, что пользуются Linux, они на самом деле говорят, что используют GNU. Если бы они знали об этом, они бы обратили на нас внимание.

Далее, большинство людей никогда не слышали о свободном ПО. Они слышали только про ПО с открытым исходным кодом. А ведь у нас прямо противоположные идеи! Считая, что мы разрабатываем ПО с открытым исходным кодом, они фактически считают, что мы соглашаемся с идеями наших оппонентов. Я видел несколько статей, в которых меня называли "отцом ПО с открытым исходным кодом". Я писал редакторам письма. В них я говорил: "Если я и отец такого ПО, то это было искусственное оплодотворение. Кто-то взял у меня сперму без спроса".

Наконец, наше будущее зависит от того, что мы ценим. Люди, которые получили свободу, но не ценят ее, могут ее утратить. Например, так произошло в России. Нужно научить людей ценить свободу свободного ПО. Просто дать им свободу недостаточно. Разработчики программ с открытым исходным кодом часто включают в них проприетарное ПО. Они думают, что свободной может называться программа, код которой свободен лишь на 90 процентов. Мы поступаем не так. Если мы видим десять процентов несвободного кода, мы перепишем его; мы уважаем свободу.

Взгляните на исходный код современного Linux. Вы увидите целые куски несвободного кода. Почему? Потому что Торвальдс не активист свободного ПО, он не верит в то, что за свободу надо сражаться. По его мнению, в кусках несвободного кода нет ничего плохого. Когда мы используем Linux, то есть написанное Торвальдсом ядро, нам нужно устранить эти несвободные блоки. Это не просто теория. Говорю вам - имея свободное ПО, но не ценя свободу, мы рискуем эту свободу потерять. В наши дни можно использовать несвободное ПО и даже не знать о том, что оно несвободное. Например, на веб-страницах часто встречаются несвободные элементы на JavaScript. Мы разработали дополнение для браузера Firefox, которое блокирует такие элементы.

Права управлять компьютером можно лишиться и иными способами. Если вы просите кого-то что-то сделать за вас, вы не можете проконтролировать, как это будет сделано. Это называется SaaS (Software as a Service, "ПО как услуга" - примечание "Ленты.ру"). Вместо того чтобы решить задачу собственными силами на собственном компьютере с помощью свободной программы, вы отсылаете данные на чужой сервер, а затем получаете результат. Заметьте, ваши данные получает кто-то чужой. Как он ими распорядится? Можно ли ему доверять? Американским компаниям, например, доверять нельзя, потому что закон требует от них предоставлять данные ФБР по первому запросу. Не нужно даже распоряжение суда. Возможно, есть компании, которым верить можно, но я таких не знаю. Единственный способ не потерять контроль над компьютером - не пользоваться SaaS. Пользуйтесь собственным компьютером и копией свободной программы.

Во всех школах должны обучать учеников использовать только свободное ПО, поскольку социальная задача школы - воспитать добросовестных граждан сильного, независимого и свободного общества. Итак, школы должны учить тому, как использовать свободные программы. Учить несвободному ПО - значит учить зависимости, зависимости от определенной компании. Почему разработчики несвободных программ часто отправляют в школы бесплатные копии? Потому, что хотят, чтобы школьники стали зависимыми от них. Люди останутся зависимыми и после окончания школы. Пойдут работать в компании, которые тоже станут зависимыми. Это все равно что прислать в школу шприцы с сильным наркотиком - первая доза бесплатно. Школы должны отказываться. Кроме того, каждая программа несет в себе знание. Если программа проприетарная, доступ к знанию закрыт. Это противоречит духу образования.

Если хотите получить больше информации о свободном ПО, посетите сайты gnu.org и fsf.org. Последний - сайт Фонда свободного программного обеспечения. Там же можно в него вступить.

< Назад в рубрику