Разница между свободным и открытым программным обеспечением

Вступление

Один из аспектов разработки программного обеспечения, о котором многие забывают, это то, как программное обеспечение должно быть лицензировано. Лицензия на программное обеспечение определяет, как код может использоваться и распространяться лицензиатами (конечными пользователями), что может оказать существенное влияние на то, насколько широко технология будет внедрена. Большинство современного программного обеспечения продается по закрытой лицензии, которая позволяет издателю или создателю сохранять права интеллектуальной собственности на программное обеспечение.

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

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

Немного фона

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

Большинство людей, которые общались с компьютерами примерно в это время, делали это в строго академических или исследовательских условиях. Это означало, что вычислительные ресурсы часто совместно использовались, и широко поощрялось изменение программного обеспечения для создания более эффективных рабочих процессов или более надежных решений. Например, Project Genie из Калифорнийского университета в Беркли разработал систему разделения времени Berkeley - операционную систему с разделением времени, созданную с нуля, путем взлома исходного кода лабораторного компьютера SDS 930.

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

Начало свободного программного обеспечения

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

В 1983 году Столлман запустил проект GNU - попытка создать законченную операционную систему, которая предоставила бы пользователям свободу просмотра, изменения и обмена исходным кодом. Столлман сформулировал свою мотивацию для проекта в GNU Manifesto. В нем он заявляет о своей убежденности в том, что проприетарное лицензирование блокирует разработку программного обеспечения на уровне сообщества, эффективно стимулируя инновации и препятствуя развитию технологий.

Это, по мнению Столлмана, ложится несправедливым бременем на пользователей и разработчиков, которые в противном случае могли бы изменить код в соответствии со своими потребностями или изменить его для выполнения новой функции. Таким образом, проект GNU можно рассматривать как ответ на рост проприетарного программного обеспечения, а также как ответную реакцию на предыдущую эпоху свободно распространяемого исходного кода и совместной разработки программного обеспечения.

В 1985 году Столлман основал проект GNU, основав Free Software Foundation (FSF), некоммерческую организацию, занимающуюся популяризацией концепции свободного программного обеспечения среди широкой общественности. Позже Столлман также разработает Стандартную публичную лицензию GNU, лицензию на программное обеспечение, которая гарантирует права конечных пользователей на свободный запуск, просмотр и совместное использование исходного кода.

Согласно FSF, чтобы часть программного обеспечения считалась действительно «бесплатной», ее лицензия должна гарантировать пользователям четыре основных свободы:

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

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

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

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

FSF рассматривает любое программное обеспечение, которое не соответствует каждому из этих критериев, как несвободное и, следовательно, неэтичное.

Подъем с открытым исходным кодом

Столлман выбрал ярлык «свободное программное обеспечение», чтобы связать идею, что пользователи будут свободны изменять и делиться исходным кодом по своему усмотрению. Это привело к некоторой путанице на протяжении многих лет, так как многие люди предполагают, что «свободное программное обеспечение» относится к любому программному обеспечению, которое можно получить за нулевую стоимость (которое было бы более точно обозначено как «бесплатное» или «условно-бесплатное»). ФСФ, как известно, объясняет выбор имени строкой «думай о свободе как о свободе слова, а не как о свободном пиве».

К концу 1990-х годов некоторые энтузиасты GNU и Linux стали все больше беспокоиться о том, что это двойное значение заставит большую часть пользователей упустить из виду философию свободного программного обеспечения и его преимущества перед проприетарным кодом. FSF также стал известен своей жесткой этической позицией против проприетарного программного обеспечения всех видов. Некоторые сторонники свободного программного обеспечения были обеспокоены тем, что этот подход слишком недружественный для интересов бизнеса и в конечном итоге будет препятствовать распространению Движения за свободное программное обеспечение.

Кафедральный собор и базар

В 1997 году Эрик С. Раймон, тогдашний сторонник и разработчик свободного программного обеспечения, написал «Собор и базар», широко цитируемое эссе, в котором сравниваются две разные модели разработки, используемые в различных проектах свободного программного обеспечения. «Собор» относится к нисходящей модели разработки, в которой эксклюзивная группа разработчиков создает код, примером которого является разработка GNU Emacs. «Базар», с другой стороны, относится к методу, в котором код разрабатывается публично через Интернет, как в случае разработки ядра Linux.

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

Частично в ответ на идеи, представленные в «Соборе и базаре», Netscape выпустила исходный код своего веб-браузера Communicator в качестве бесплатного программного обеспечения в начале 1998 года. (Исходный код Communicator позже станет основой Mozilla FireFox 1.0). Вдохновленные коммерческим потенциалом, который Netscape увидел в этом выпуске исходного кода, группа энтузиастов свободного программного обеспечения (в том числе Рэймонд, Линус Торвальдс, Филипп Циммерман и многие другие) стремились ребрендинг движения за свободное программное обеспечение и сместить его акцент с этических или философских соображений. мотивы. Группа выбрала «открытый исходный код» в качестве своего ярлыка для свободно распространяемого программного обеспечения в надежде, что оно лучше отразит деловую ценность совместной, управляемой сообществом модели разработки.

Вскоре после этого Раймонд и Брюс Перенс основали Open Source Initiative (OSI), чтобы стимулировать как использование нового термина, так и распространение принципов открытого кода. OSI также разработала Open Source Definition - список из десяти принципов, которым должна придерживаться лицензия на программное обеспечение, чтобы его можно было считать открытым исходным кодом:

  1. * Бесплатное распространение * - Лицензия не должна ограничивать какие-либо стороны от продажи или передачи программного обеспечения в качестве компонента более широкого распространения программного обеспечения, содержащего программы из нескольких источников.

  2. * Исходный код * - Программа должна включать исходный код и разрешать распространение в исходном коде, а также в скомпилированной форме.

  3. * Производные работы * - Лицензия должна разрешать модификации и производные работы, а также разрешать их распространение на тех же условиях, что и лицензия исходного программного обеспечения.

  4. * Целостность исходного кода автора * - Лицензия может ограничивать распространение исходного кода в измененной форме, только если лицензия допускает распространение «файлов исправлений» с исходным кодом с целью изменения программы во время сборки.

  5. * Нет дискриминации в отношении лиц или групп * - Лицензия не должна быть дискриминационной по отношению к любому лицу или группе лиц.

  6. * Нет дискриминации по отношению к сферам деятельности * - Лицензия не должна ограничивать использование программы в определенной области деятельности.

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

  8. * Лицензия не должна быть специфичной для продукта * - Права, прилагаемые к программе, не должны зависеть от того, входит ли программа в конкретный дистрибутив программного обеспечения.

  9. * Лицензия не должна ограничивать другое программное обеспечение * - Лицензия не должна накладывать ограничения на другое программное обеспечение, которое распространяется вместе с лицензионным программным обеспечением.

  10. * Лицензия должна быть нейтральной в отношении технологии *. Нельзя предоставлять лицензию для какой-либо отдельной технологии или стиля интерфейса.

Различия между свободным и открытым программным обеспечением

Что касается большинства людей, разница в значении между «свободным программным обеспечением» и «программным обеспечением с открытым исходным кодом» незначительна и обусловлена ​​небольшим различием в подходе или философии. С точки зрения Инициативы открытого исходного кода оба термина означают одно и то же, и их можно использовать взаимозаменяемо практически в любом контексте. Они просто предпочитают ярлык «с открытым исходным кодом», потому что считают, что он дает более четкое описание программного обеспечения и намерений его создателей о том, как его следует использовать.

Однако для лагеря «свободного программного обеспечения» «открытый исходный код» не в полной мере передает важность движения и потенциальных долгосрочных социальных проблем, вызванных проприетарным программным обеспечением. Фонд свободного программного обеспечения считает, что OSI слишком озабочена продвижением практических преимуществ непатентованного программного обеспечения (включая его прибыльность и эффективность модели разработки, основанной на сообществах) и недостаточно заинтересована в этической проблеме ограничения прав пользователей на изменять и улучшать код на своих условиях.

Является ли данный фрагмент программного обеспечения бесплатным или открытым, зависит от того, под какой лицензией оно распространяется, и от того, одобрена ли эта лицензия в рамках Инициативы открытого исходного кода, Фонда свободного программного обеспечения или обоих. Существует много частичных совпадений между тем, какие лицензии утверждены какой организацией, но есть несколько исключений. Например, соглашение с открытым исходным кодом НАСА является лицензией, одобренной OSI, которую FSF считает слишком ограничительной. Таким образом, FSF препятствует любому использовать программное обеспечение, распространяемое по этой лицензии. В целом, однако, есть хороший шанс, что если его можно назвать свободным программным обеспечением, оно также подойдет под определение программного обеспечения с открытым исходным кодом.

Альтернативные имена

За прошедшие годы было предложено несколько других названий этого вида программного обеспечения, чтобы положить конец этой дискуссии. «Бесплатное программное обеспечение с открытым исходным кодом», часто сокращаемое до «FOSS», является одним из наиболее широко используемых и считается безопасным нейтральным между ними. Термин «программное обеспечение libre» («libre» происходит от нескольких романских языков и примерно означает «состояние свободы») получил свое собственное толкование настолько, что акроним «FLOSS» (что означает «свободный / libre и программное обеспечение с открытым исходным кодом) также стало довольно распространенным явлением.

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

Другая проблема, связанная с программным обеспечением, являющимся общественным достоянием, связана с тем, что не каждая страна в мире признает контент, не защищенный авторским правом. Это делает невозможным сделать всемирно признанное заявление о том, что часть программного обеспечения находится в открытом доступе. Таким образом, ни FSF, ни OSI не поощряют разработчиков выпускать программное обеспечение в открытый доступ.

Заключение

Термины «свободное программное обеспечение» и «программное обеспечение с открытым исходным кодом» взаимозаменяемы для большинства контекстов, и то, предпочитает ли кто-то одно другому, обычно сводится к семантике или их философскому мировоззрению. Однако для многих программистов, которые хотят разрабатывать программное обеспечение и распространять его среди общественности, или для активистов, которые надеются изменить то, как люди видят и взаимодействуют с технологиями, разница может быть важной. Таким образом, при выпуске нового программного обеспечения важно тщательно взвесить все «за» и «против» различных лицензий, включая частные лицензии, и выбрать ту, которая лучше всего соответствует вашим конкретным потребностям.

Если вы хотите узнать больше о том, какая лицензия программного обеспечения подходит для вашего следующего проекта, License List Фонда свободного программного обеспечения предоставляет подробные описания обоих бесплатных и несвободные лицензии. Кроме того, может также представлять интерес страница Licenses & Standards Инициативы открытого исходного кода.

Related