Опубликован: 22.06.2005 | Уровень: для всех | Доступ: платный | ВУЗ: Компания IBM
Лекция 18:

Политика свободного лицензирования. История Linux: от ядра к дистрибутивам

< Лекция 17 || Лекция 18: 12345

Появление свободного ПО

Компьютеры развивались очень быстро, и бывшие вполне современными в 1970-е PDP-10 к началу 1980-х уже устарели и значительно отставали по производительности от более современных машин. Однако ни для одной из новых архитектур уже не было операционной системы и прочего программного обеспечения, разработанного исключительно в академической среде. Университеты вынуждены были покупать новые компьютеры с новым программным обеспечением и выполнять условия лицензии, ограничивающей их права на разработку и распространение ПО. Таким образом, научная модель разработки программного обеспечения, характерная для UNIX, становилась невостребованной.

В это время в лаборатории искусственного интеллекта МТИ разрабатывались так называемые LISP-машины, умевшие на аппаратном уровне интерпретировать язык программирования, похожий на LISP – развитый и перспективный язык программирования. На LISP же была написана операционная система для таких машин и все программное обеспечение для них. В начале 1980-х некоторые сотрудники лаборатории искусственного интеллекта выкупили у МТИ права на LISP-машины и математическую систему MACSIMA и основали собственные коммерческие компании для дальнейших разработок в этой области. Очень многие сотрудники лаборатории перешли работать в эти компании, после чего все их разработки уже становились закрытыми для научного сообщества. Новые LISP-машины поставляются с лицензиями, запрещающими пользователям модифицировать и распространять исходные тексты программ. Программы, которые раньше для сотрудников МТИ были аналогом научных публикаций, стали принадлежащим кому-то коммерческим продуктом.

Одному из сотрудников, оставшемуся в лаборатории искусственного интеллекта МТИ, Ричарду Столлману, такое положение дел казалось недопустимым нарушением открытого научного процесса разработки программного обеспечения. Он в одиночку пытался в рамках прежней академической модели развивать LISP-машины и открыто реализовывать изменения, аналогичные сделанным в рамках закрытой коммерческой разработки, чтобы LISP-машины МТИ могли конкурировать с коммерческими аналогами. Конечно, эта попытка угнаться за активной коммерческой разработкой была обречена на неудачу.

Тогда в поисках единомышленников Ричард Столлман создает некоммерческую организацию Фонд свободного программного обеспечения (Free Software Foundation, FSF). Своей основной целью организаторы Фонда видят сохранение программного обеспечения, процесс разработки которого всегда будет гарантированно открытым, а исходные тексты – всегда доступными. Более масштабная цель Фонда – разработка операционной системы, целиком состоящей из открыто разрабатываемого программного обеспечения. Декларируя такую цель, Столлман фактически хотел вернуть представлявшееся ему идеальным состояние, когда в МТИ работали в собственной операционной системе для PDP-10.

Операционная система, разрабатываемая в рамках Фонда, должна была стать совместимой с операционной системой UNIX. Изначально UNIX был разработан в 1970-е годы Кеном Томпсоном и Деннисом Ричи в лаборатории компании AT&T и распространялся этой (а впоследствии – и другими) компанией как коммерческая операционная система. К началу 1980-х UNIX очень широко использовался, в том числе и в академической среде. Для этой операционной системы существовало много программ, свободно распространявшихся в научном сообществе, поэтому хотелось, чтобы эти программы работали и в новой – свободной – операционной системе. Эта будущая операционная система получила название GNU2Это псевдоаббревиатура, для которой сам Столлман предлагал рекурсивную расшифровку: GNU's Not Unix ("Гну – Не UNIX")..

Определение свободного ПО

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

  • Программу можно использовать с любой целью ("нулевая свобода") 3Для российских пользователей эта свобода действительно "нулевая", в том смысле, что она присутствует всегда, в том числе и у пользователей коммерческого ПО. В соответствии с нормами российского законодательства обладатель прав на интеллектуальную собственность может передавать или не передавать пользователю право на распространение копий своего произведения (в данном случае – программного обеспечения), однако у него нет права каким бы то ни было образом ограничивать владельца копии в использовании программы..
  • Можно изучать, как программа работает и адаптировать ее для своих целей ("первая свобода"). Условием этого является доступность исходного текста программы.
  • Можно распространять копии программы – в помощь товарищу ("вторая свобода").
  • Программу можно улучшать и публиковать свою усовершенствованную версию, с тем чтобы принести пользу всему сообществу ("третья свобода"). Условием этого является доступность исходного текста программы.

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

Общественная лицензия GNU

Декларировав критерии свободного ПО, члены Фонда свободного ПО стали распространять свои программы в соответствии с этими принципами, никак не оформляя это документально. Иначе говоря, первоначально свободные программы распространялись вообще без лицензии. Однако произошедший с самим Ричардом Столлманом прецедент убедил его в том, что документальное оформление необходимо для свободного ПО.

Ричард Столлман занимался разработкой текстового редактора Emacs (о котором шла речь в лекции 9) на основе исходных текстов Джеймса Гослинга (который впоследствии стал автором известного сегодня продукта Java). Тогда Гослинг свободно раздавал свои исходные тексты всем заинтересованным. Однако затем Гослинг продал права на распространение Emacs компании UniPress (http://www.unipress.com), и компания попросила Столлмана прекратить распространение его версии Emacs, так как права принадлежат им. Этот инцидент заставил Столлмана переписать заново те части исходного текста Emacs, которые теперь принадлежали UniPress, после чего он разработал собственную лицензию на программное обеспечение.

Лицензия, сформулированная Столлманом, должна была работать так же, как и лицензии на коммерческое программное обеспечение: это типовой договор автора программы (обладателя авторских прав) с пользователем, в котором автор оговаривает права пользователя по отношению к программе. В отличие от коммерческой лицензии, в лицензии Столлмана оговариваются те права, которые пользователь получает по отношению к свободной программе: получать исходные тексты программ, изменять их, распространять измененные и неизмененные версии (см. перечисленные выше критерии свободного ПО). Кроме того, в этой лицензии оговаривается принципиальное для Столлмана условие распространения свободного ПО: ни один пользователь не имеет права, сделав модифицированную версию свободной программы, распространять ее, не соблюдая всех принципов свободного ПО, ограничивая тем самым права других пользователей по отношению к программе. Иначе говоря, нельзя модификацию свободной программы сделать несвободной.

Лицензия, содержащая такое условие, получила название "copyleft". Здесь игра слов: по-английски авторское право называется "copyright", буквально "копировать-право", а "copyleft", соответственно, "копироватьлево". Действительно, условие "copyleft" прямо противоположно по смыслу авторскому праву: авторское право призвано ограничить пользователя в копировании и распространении копий продукта, а "авторское лево", наоборот, строго запрещает его ограничивать. Впоследствии лицензия Столлмана получила название "Общественная лицензия GNU" (GPL, General P ublic L icense).

В настоящее время помимо GPL известны и другие лицензии, под которыми может распространяться свободное ПО. Самая распространенная из таких лицензий – BSD 4BSD – Berkley Software Distribution, пакет совместимого с UNIX программного обеспечения, разработанный в университете Беркли и распространявшийся свободно. License. Лицензия BSD отличается от GPL главным образом тем, что в ней отсутствует условие "copyleft", т. е. на основании свободного ПО, распространяемого под этой лицензией, можно производить несвободные модификации. Однако лицензия BSD и другие лицензии будут оставаться лицензиями на свободное программное обеспечение до тех пор, пока они соответствуют условиям, оговоренным принципами свободного ПО, объявленными Фондом.

< Лекция 17 || Лекция 18: 12345
Тимур Булатов
Тимур Булатов

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

дмитрий шремзер
дмитрий шремзер

В поле PPID (" p arent p rocess id entificator") указан идентификатор родительского процесса, т. е. процессапородившего данный. Для ps это – bash, а для bash, очевидно, login

А что тогда находится в поле CMD?

Гузель Фахретдинова
Гузель Фахретдинова
Россия
Алексей Маряскин
Алексей Маряскин
Россия