Тридцать лет назад одна из лабораторий Массачусетского Технологического Института приняла на работу молодого специалиста. Новому сотруднику, Ричарду Столлмену, было всего восемнадцать лет.
Колыбель множества революционных технологий программирования, лаборатория в то время занималась созданием новой операционной системы для компьютера Digital PDP-10, получившей рабочее название ITS. Эта ОС стала легендарной, и до настоящего времени ни одной системе с разделением времени не удалось обогнать ее по длительности непрерывного использования. Но и Digital PDP-10 в зале славы информационных технологий отведено особое место. Именно его серийные образцы стали первыми узлами трансконтинентальной высокоскоростной сети ARPANET, прародителя современного Internet.
Работа с мощнейшей на тот момент вычислительной системой была уделом всего нескольких программистов и исследователей лаборатории, никому и в голову не пришло предложить Ричарду участие в ней. Его обязанности были куда как прозаичны – то, что сейчас принято называть системным администрированием в широком смысле этого слова. В основном Столлмен писал несложные прикладные программы и занимался техническим обслуживанием периферийных устройств.
Однажды Ричард столкнулся с тем, что купленный лабораторией принтер не может печатать – его программное обеспечение некорректно работало с ITS, поскольку игнорировало аппаратные сбои. Программист обратился к разработчиком с просьбой предоставить исходный код программы для его подгонки под операционную систему. Однако не тут-то было – код представлял собой интеллектуальную собственность создателя программы. А это значит, что, исправив код, Столлмен нарушил бы закон об авторском праве, и мог угодить под суд.
В то время не только в рамках лаборатории, но и за ее пределами свободный обмен программным обеспечением был вполне обычным делом. Это было обусловлено, прежде всего, технической необходимостью, ведь именно благодаря активному сотрудничеству при работе с ITS удалось создать большое количество прикладных программ. В результате свободного обмена информационный банк лаборатории постоянно пополнялся, и любой желающий мог использовать его без каких-либо ограничений. Поэтому Ричард был изрядно удивлен отказом. Однако ему так и не удалось заполучить исходный текст, и к регулярно отказывающему принтеру по-прежнему выстраивались очереди сотрудников.
Именно тогда Ричарду пришло в голову, что сложившиеся правовые нормы распространения программного обеспечения идут вразрез с этическими аспектами программирования.
Забавно, что пока недавний студент Столлмен, проклиная разработчиков, воевал с принтером, на лекциях его альма-матер, Гарвардского Университета, скучал первокурсник Уильям Гейтс. До основания им с соседом по общежитию Стивом Балмером компании Microsoft оставалось чуть больше двух лет. И чуть меньше трех десятков – до резких заявлений Гейтса и Балмера в адрес Ричарда Столлмена и до публичного обвинения последним высшего руководства Microsoft в нарушении антимонопольного акта Шермана, а также законов о вымогательстве и коррупции.
Начало восьмидесятых годов ознаменовалось появлением принципиально новых решений в области компьютерных архитектур. Выпуск машин серии PDP-10, изначально не приспособленных для работы с поддержкой больших адресных пространств, был прекращен. Огромное количество программного обеспечения, созданного для ITS, стало непригодно к использованию.
Новые компьютеры, закупленные Институтом, содержали предустановленную коммерческую операционную систему. К тому времени производство программ выросло из университетских штанишек и приобрело статус серьезного бизнеса, руководствующегося не только и не столько техническими выкладками, но и законами конкуренции. Поэтому свобода использования новой ОС была жестко ограничена лицензией и входящим в нее соглашением о неразглашении любой технической информации.
Лицензирование в мгновение ока разрушило устоявшийся социальный уклад, как программистов, так и рядовых пользователей. Отныне категорически запрещалась взаимопомощь, а о попытках внесения изменений в систему не шло и речи.
Перед сотрудниками лаборатории встал проблема морального выбора, и выбор был жестким. Или влиться в ряды разработчиков коммерческих программ, тем самым отказывая в поддержке своих коллег по всему миру, или оставить программирование.
И только один человек нашел третий путь.
«Так я смог бы зарабатывать деньги и, возможно, писать программы в свое удовольствие. – пояснял свой отказ от сотрудничества с разработчиками коммерческих приложений Ричард Столлмен. – Но в конце карьеры, оглянувшись на пройденный путь и поняв, что многие годы я строил стены, разделявшие людей, я бы осознал, что потратил свою жизнь на то, чтобы этот мир стал хуже, чем был».
Ричард решил возродить сообщество единомышленников, создающих программное обеспечение и свободно обменивающихся им. Основная идея проста: если разработчиком запрещается полноценно использовать программный продукт, при необходимости изменяя и улучшая его, то нужно просто создать его открытый аналог и предоставить всем желающим.
Очевидно, начать следовало с создания операционной системы. Однако не нужно быть специалистом, чтобы представить себе утопичность подобной затеи. Ведь кроме ядра, необходимо было разработать компиляторы, интерпретаторы, отладчики, текстовые редакторы, программы для работы с почтой и десятки других утилит; количество строк кода в самых непритязательных проектах такого рода исчисляется сотнями тысяч. Поэтому Столлмен решил везде, где это возможно, использовать уже имеющиеся некоммерческие компоненты.
Проект получил название GNU (рекурсивный акроним выражения «GNU’s Not Unix»). В своем первом обращении, известном как «Предварительный анонс проекта GNU», Столлмен изложил базовые принципы свободно распространяемого программного обеспечения.
Вкратце, они сводятся к следующему. Во-первых, программа предоставляется всем желающим без ограничений. Далее, каждый имеет право менять программу, адаптируя ее к своим требованиям. Как следствие, вместе с программой должен поставляться ее исходный текст, поскольку, не имея его, изменить что-либо крайне затруднительно. Наконец, нет никаких ограничений на распространение программы и ее измененных версий – как бесплатно, так и за деньги. Таким образом, ничто не мешает заниматься продажей подобного ПО: термин «свободное распространение» говорит именно о свободе, а не цене.
Для обеспечения совместимости приложений было предложено использовать в качестве прототипа операционную систему UNIX. Работа в единой среде позволила бы впоследствии без особого труда интегрировать программы в одну систему.
Первой программой, созданной Столлменом в рамках нового проекта, стал редактор GNU Emacs. Собранный на коленке, редактор, тем не менее, вскоре стал популярен. С этого момента дерзкий и почти неосуществимый план Ричарда начал сбываться.
Один против всех, Столлмен упрямо строил свою баррикаду прямо на поле битвы производителей программного обеспечения. Это было время прорыва в информационной технологии, и компании-разработчики отчаянно дрались за сегменты рынка ПО. Большинство этих компаний отмахивались от призывов к объединению под флагом GNU, однако идея Столлмена все же пришлась по душе множеству программистов. Они по достоинству оценили GNU Emacs, и начали работу над свободными программами для решения собственных задач.
Несмотря на все усилия, насущной оставалась проблема совместимости свободных программ. Кроме того, многие принципиальные области работы (например, ядро будущей ОС) не были охвачены вниманием – ведь каждый участник проекта решал задачи, интересные именно ему. Поэтому было принято решение о создании органа, отвечающего за координацию работы над проектом и создание свободного программного обеспечения, которое не нашло себе добровольцев-разработчиков. Им стал Фонд Свободного Программного Обеспечения, место во главе которого по праву занял Ричард Столлмен.
Широкое распространение программ, созданных в рамках проекта GNU, сделало необходимым создание единого лицензионного соглашения – Универсальной Общественной Лицензии GNU, или GPL. GPL, в отличие от общепринятых ограничивающих соглашений, служит прямо противоположной цели, гарантируя свободу использования программ. Основная идея такого подхода (названного, с целью подчеркивания отсутствия ограничений, copyleft) заключается в предоставлении каждому пользователю возможности использования, копирования, изменения и распространения как самой программы, так и ее модификаций при одном-единственном условии. А именно – модифицированные версии также должны оставаться свободно распространяемыми. Это гарантирует то, что результаты работы, в которой использовалось программное обеспечение с грифом copyleft, также будут достоянием всего сообщества.
(Продолжение следует)