Что такое free software
Freeware
Freeware ( /ˈfɹiːwɛə(r)/ ; от англ. free [ of charge ] — «бесплатный» и software — «программное обеспечение») — программное обеспечение, лицензионное соглашение которого не требует каких-либо выплат правообладателю. Freeware обычно распространяется в бинарном виде, без исходных кодов и является проприетарным ПО. [1]
Содержание
Различия между Freeware и свободным программным обеспечением
Важно отличать Freeware от свободного программного обеспечения, которое предоставляет каждому помимо права на использование программного обеспечения, право модификации и ряд других прав. Freeware может распространяться без исходных текстов и может содержать ограничения на коммерческое использование, модификацию и т. д. [2] [3]
Различия между Freeware и условно-бесплатным программным обеспечением
В отличие от условно-бесплатного программного обеспечения (Shareware), Freeware не предполагает никакой платы разработчику и соответственно, никаких дополнительных услуг, таких как улучшенные версии, за эту плату не предполагается.
Существует также способ распространения ПО, занимающий среднее положение между shareware и классическим freeware, когда некая программа выпускается в двух вариантах: платная полная версия и бесплатная облегчённая, но при этом, в отличие от большинства shareware-программ, использование которых по окончании ознакомительного срока нелегально, здесь никаких ограничений по времени использования бесплатная версия не имеет, а ограничения накладываются на какие-либо «продвинутые» возможности программы, а иногда также воспрещается её использование в особо оговоренных в EULA случаях (чаще всего — в коммерческих целях). Такова, например, бесплатная версия программы Micro-Cap, которую можно легально использовать в течение неограниченного времени, однако, у неё сильно сокращена библиотека моделируемых элементов, воспрещено использование в коммерческих целях, искусственно уменьшена скорость моделирования.
Проблема именования бесплатного и свободного программного обеспечения
Многие тексты на тему программного обеспечения составляются на английском языке, в котором слова «свободный» и «бесплатный» переводятся одинаково, как free. Это создаёт путаницу в именовании. [2] Так появился термин Freeware, а для именования свободного и открытого программного обеспечения — термин FLOSS (Free/Libre and Open Source Software). Однако, Фонд свободного программного обеспечения рекомендует именовать свободное программное обеспечение как free software. [4]
См. также
Примечания
Свободное ПО • Свободное и открытое • Freeware (Свободно распространяемое) • Открытое • Проприетарное • В общественном достоянии
On-premises • Pre-installed • Бандл • SaaS (Software on-demand) • Software plus services
10 мифов о свободном ПО
Разбираемся, почему free software — это не всегда бесплатно и зачем open source начинающему программисту.
Есть программисты, которые объединяются в команды и после работы бесплатно создают полезные программы. Есть компании, которые нанимают этих программистов, а потом выкладывают в открытый доступ исходные тексты приложений и сервисов, чтобы другие люди могли их исследовать, изменять под себя и распространять дальше. А продвигают все эти «странные» идеи известные всему миру айтишники, такие как Ричард Мэттью Столлман, Брюс Перренс, Лоуренс Лессиг.
Миф 1
Свободное ПО = бесплатное
Фанат Free Software Foundation, использую Linux и недолюбливаю Windows. Пишу истории про кодинг и программы на Python. Влюблен в LISP, но пока что не умею на нем программировать.
Свободное ПО может быть платным, это не запрещено. Но оно не может быть проприетарным, то есть закрытым и нарушающим «четыре свободы» GNU:
Свободное ПО называется free software, а бесплатное — freeware. В отличие от свободных, бесплатные программы бывают закрытыми и могут распространяться в виде исполняемых файлов, по которым нельзя понять их внутреннюю структуру. Например, популярная программа для очистки Windows от мусора CCleaner — бесплатная, но не свободная.
Миф 2
Свободное ПО == open source (открытые исходники)
Две главных организации, которые продвигают идеи открытого и свободного ПО, — Open Source Initiative (OSI) и Free Software Foundation (FSF). Они чуть по-разному понимают термины «свободный» и «открытые исходники». FSF больше внимания уделяет свободам пользователей и использует термин free software. OSI же считает, что слово free сбивает людей с толку, намекая на бесплатность, и подчёркивает значение открытых исходников и метод разработки программ. Для OSI основной термин — open source software.
По сути и OSI, и FSF занимаются одним делом, а все их разногласия — в небольших философских акцентах.
У каждой программы есть лицензия — юридические условия, на которых её можно использовать. Обычно она ограничивает возможность исследовать устройство, модифицировать код и создавать на его основе новые программы. Это относится даже к тем из них, код которых выложен в открытый доступ. Пример — WinRAR, популярный архиватор челябинца Евгения Рошаля: исходники открыты, но делать с ними ничего нельзя. Такие программы тоже считаются несвободными.
Миф 3
Если есть исходный код — это open source
На самом деле нет. Для этого нужен полностью понятный код, который можно легко прочесть. Несвободными являются даже те программы, которые прошли обфускацию — когда исходный текст прогоняют через специальный сервис и делают его трудночитаемым. Часто так поступают с программами на интерпретируемых языках, особенно с разными скриптами на JavaScript, Perl или PHP. Они переводятся в машинный язык только в момент выполнения, и потому их исходники всегда доступны. В коде после обфускации не разобраться — теряются стройность и красота, остаётся только функциональность.
Вот классический пример исходника на языке C, всё логично и ясно даже без комментариев:
Он же после обфускации:
Попробуете понять, что тут происходит? И представьте, что таких строк тысячи или десятки тысяч, как бывает в обычных программах.
Миф 4
Свободное ПО — это лицензия GNU GPL
Многие связывают свободное ПО с самой известной лицензией — GNU GPL от Free Software Foundation. На самом деле свободных лицензий очень много: МIT, BSD, Mozilla Public License (MPL), Common Development and Distribution License (CDDL), Apache Software License. Да и у авторов GPL есть разные версии их свободной лицензии: для документов, «железа» и программ.
Все они говорят о «четырёх свободах» и открытых исходниках, но есть отличия в мелочах. Например, можно ли использовать код в составе проприетарных программ, допустимо ли делать закрытой свою версию кода или выпустить его под другой, пусть даже свободной лицензией.
Миф 5
Свободное ПО — для любителей, а не для серьёзных программистов
К открытым проектам может присоединиться и профессионал, и новичок, и просто любитель кодинга: повышать квалификацию, нарабатывать портфолио и репутацию. Работа над свободным ПО в мире программистов считается хорошим тоном. Конечно, писать критически важные части ядра Linux или FreeBSD так просто вам не дадут, но какие-то небольшие и менее приоритетные задачи выполнять можно сразу.
Миф 6
Свободное ПО — недоработанное и у него меньше функций
Спорное утверждение. Да, открытые программы для работы с растровой и векторной графикой сильно отстают от коммерческих аналогов, но в них всё равно можно полноценно работать. А свободный 3D-редактор Blender массово используют в Голливуде — например, в нём сделаны спецэффекты «Человека-паука 2».
Большинство серверов в мире работает на Linux, FreeBSD или OpenBSD. Да и программируем мы в основном на свободных языках. Веб тоже держится на СПО : браузеры Chromium и Mozilla Firefox, серверы Ngnix и Apache, базы данных MySQL и PostgreSQL, свободный движок для сайтов WordPress — список можно продолжать долго. Это отлично проработанные программы, которые по многим параметрам превосходят коммерческие аналоги.
Миф 7
Свободное ПО только для программистов, простому человеку не разобраться
Миф 8
На свободном ПО не заработать
Этот миф перекликается с темой бесплатных программ. Многие из них действительно распространяются «безвозмездно, то есть даром», а программисты помогают разработке как волонтёры, в свободное от работы время. Но крупные компании, фонды и отдельные люди жертвуют немалые деньги, чтобы стимулировать ключевых специалистов на свободных проектах.
Например, разработчик браузера Firefox, Mozilla Foundation, существует на государственные гранты, пожертвования, помощь от крупных компаний и за счёт коллабораций. Корпорация Google одно время платила фонду, чтобы быть в браузере поисковиком по умолчанию. Эти деньги шли на зарплату программистам, пиарщикам, тимлидам, маркетологам, формировали рекламный бюджет и так далее. Похожая финансовая модель и у других сообществ — того же Linux Foundation или проекта GNU.
Зачем корпорации спонсируют такие проекты? Они пользуются многими свободными программами и хотят, чтобы софт был лучше и надёжнее, быстрее обновлялся. В бизнесе повсеместно применяются веб-серверы Ngnix и Apache, свободный офисный пакет LibreOffice, операционные системы Linux или FreeBSD. Поэтому всем важно, чтобы вовлечённые в их создание программисты достойно зарабатывали.
К примеру, Линус Торвальдс с 1997 по 2003 год работал в компании Transmeta, где ему платили зарплату и давали возможность разрабатывать ядро Linux, а Гвидо ван Россум спокойно занимался Python в DropBox. К свободному ПО серьёзно относятся и многие ИТ-гиганты — те же Oracle, Google и даже Microsoft спонсируют сообщества напрямую или предоставляют им своих разработчиков.
Миф 9
Свободное ПО легко взломать, потому что исходный код открыт для всех
С одной стороны, каждый может найти ошибки в исходных кодах программ и воспользоваться ими. А с другой, команды, работающие над СПО, не так скованы жёсткими дедлайнами и корпоративными интересами — они не замалчивают ошибки, быстро выпускают обновления и не жертвуют качеством в угоду коммерции. А открытость исходников даёт возможность каждому проверить код и порекомендовать изменения.
Свежий пример: в мае 2020 года вышла новая версия музыкального редактора Audacity 2.4.0, а через день один из пользователей обнаружил проблему: при определённых условиях терялись данные. Буквально за 5-6 часов сообщество программистов протестировало программу, свежий релиз отменили, в центре загрузок оставили предыдущую версию. А ещё через день проблему устранили и вышла исправленная, с номером 2.4.1.
Производители коммерческого софта ориентированы на продажи, поэтому могут иногда замалчивать факты о безопасности или не решают проблемы вовремя, отдавая приоритет новым разработкам. А обнаружить «дыры» проприетарных программ не так уж и сложно — хакеры по всему миру регулярно отчитываются о новых багах версий Windows.
Миф 10
Конкуренты используют ваш код, а вы останетесь ни с чем
Как в науке, где учёные обмениваются знаниями и технологиями, это обычный вариант. В целом он помогает эволюции и гарантирует счастье пользователей. В бизнесе не принято возмущаться, если вашу маркетинговую механику отследят, доработают и используют конкуренты. И никто не считает плохим стартап, который улучшил потребительские свойства какого-то товара, а потом забрал себе часть его рынка. Всегда на первый план выходят компетенции команды и отдельных специалистов, качество бизнес-процессов, поддержки и умение удовлетворить потребности пользователей.
Известные компании всё больше ориентируются на свободный код и видят в нём выгоду. Например, в марте 2020 года «ВКонтакте» выложили на GitHub под свободными лицензиями код фронтенда своих мобильных приложений, а на порталах графических редакторов Figma и Sketch (под лицензией Creative Commons) появилась вся их графика. Это поможет сторонним разработчикам мини-приложений для соцсети создавать более профессиональные решения.
Зачем всё это начинающему программисту
Свободное программное обеспечение — не просто форма разработки приложений, но и философия. Поэтому идеи подхватили в разных сферах: появились лицензии для свободных аппаратных платформ, для творческих людей (семейство Creative Commons) и даже проекты open source велосипедов и автомобилей.
Для новичка в программировании свободное ПО — отличный способ набить руку, наработать портфолио и принести пользу людям, а для программиста-профи или бизнесмена — достойно зарабатывать, пусть и без космической маржи.
Как новичку присоединиться
к open source проекту
Вот несколько свободных проектов на разных языках программирования. Присоединяйтесь и добавляйте их себе в портфолио.
Python
JavaScript
Что почитать и посмотреть об open source и free software
Программное обеспечение с открытым исходным кодом, доступным для просмотра, изучения и изменения всеми желающими.
Python Software Foundation License — BSD-подобная лицензия на свободное ПО, совместимая с GNU General Public License (GPL).
На конференции для разработчиков Build 2020 Microsoft представила
менеджер пакетов в стиле Linux. Он работает в командной строке и командой в пару строк может обновить все программы.
Frontend — клиентская сторона пользовательского интерфейса к программно-аппаратной части сервиса.
Нумерация списка этих свобод от 0 до 3 — фишка авторов-программистов.
Фонд FSF считает официальным английский текст GNU GPL, а российское законодательство признает только лицензии, переведенные на русский язык. Поэтому правовой статус GPL в России немного туманный.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Free software
Свободное программное обеспечение (Free software) — программное обеспечение с открытым исходным кодом, пользователи которого имеют права на его неограниченную установку, запуск, свободное использование, изучение, распространение и изменение данного кода, а также распространение копий и результатов изменения. Свободное программное обеспечение является безопасной, надежной и финансово привлекательной платформой для построения информационных систем в корпорациях и государственном секторе. Свободное программное обеспечение обеспечивает технологическую независимость разработки и использования программного обеспечения от монополиста, независимость в выборе аппаратной платформы; отсутствие обязательной платы за право использования продуктов.
Содержание
История
Движение СПО зародилось в 1983 году, когда Ричард Столлман сформировал идею о необходимости свободы использования программного обеспечения (англ. software freedom) пользователями. В 1985 году Столлман основал Фонд свободного программного обеспечения, чтобы обеспечить организационную структуру для продвижения своей идеи.
Бизнес-модели СПО, как правило, основаны на принципе расширения возможностей — например, новые объекты применения, обучение, интеграция, настройка или сертификация. В то же время, некоторые бизнес-модели, которые работают с проприетарным программным обеспечением, не совместимы со свободным программным обеспечением, особенно те, которые заставляют пользователей платить за лицензию, чтобы законно использовать программный продукт.
Когда появились первые компьютеры, то все программы для них представляли собой СПО в том смысле, какой вкладывается в это понятие сейчас. Например, стоимость программ, установленных на компьютерах IBM, была включена в цену аппаратного обеспечения.
В 1969 году правительство США объявило, что включение свободных программ в комплект аппаратных средств нарушает принципы конкуренции. Поэтому в 1970 и начале 1980-х годов в индустрии программного обеспечения начали использовать технические меры, чтобы предотвратить изучение и модифицирование ПО, а в 1980 году был принят закон об авторском праве для компьютерных программ.
В 1983 году Ричард Столлман, член хакерского сообщества MIT Лаборатории искусственного интеллекта, объявил начало проекта GNU, разочаровавшись в последствиях изменения культуры компьютерной индустрии. В январе 1984 года началась разработка программного обеспечения для операционной системы GNU и был создан Фонд свободных программ. Ричард Столлман разработал свободное программное обеспечение и понятие free software (свободное программное обеспечение) для того, чтобы обеспечить свободу копирования ПО для всех.
Термин open source (открытый код) был создан гораздо позднее, в 1998 году Эриком Реймондом и Брюсом Перенсом, которые считали, что термин free software в английском языке неоднозначен, т.к. может означать и «свободный», и «бесплатный», а потому смущает многих коммерческих предпринимателей.
Четыре основные свободы
Программа свободна, если она предоставляет пользователям все эти четыре свободы в достаточном объеме. В противном случае она не свободна. Нужно подчеркнуть, что эти принципы оговаривают только доступность исходных текстов программ для всеобщего использования, критики и улучшения, и права пользователя, получившего исполнимый или исходный код программы, но никак не оговаривают связанные с распространением программ денежные отношения, в том числе не предполагают и бесплатности. [Источник 1]
Использование
Если привязаться к сегодняшнему дню и проблемам РФ, то можно вычленить следующие задачи, которые решает использование СПО :
Любой процесс или продукт имеет свои достоинства и недостатки. Рассмотрим некоторые достоинства использования СПО.
В качестве недостатков следует отметить следующее:
Тем не менее независимо от указанных недостатков, повышение независимости государственных организаций от иностранных поставщиков проприетарного ПО, расширение возможности контроля и самостоятельного развития программных решений, получение экономических преимуществ от внедрения и использования решений на базе СПО, предполагает в будущем широкое использование последнего в России.
Федеральным органам исполнительной власти и государственным внебюджетным фондам осуществлять переход на использование отечественного офисного программного обеспечения:
Нужно заметить, что у большого количества предпринимателей средний или низкий уровень компьютерной грамотности, кроме того, на анализ и экспертизу проблем использования ПО тратить деньги они не хотят. Специалисты же по IT-технологиям плохо представляют товарно-денежные отношения рынка, на котором живет и ведет свою деятельность компания, справедливо считая, что их задача – это работа с ПО и получение за это личного вознаграждения. В результате использование и внедрение того или иного ПО происходит либо на доверительном, либо на командном уровне, что в общем-то неверно.
Типы свободных лицензий
Не говоря об основной лицензии, сегодня можно найти достаточно много других законодательных актов, регулирующих эту сферу деятельности. Однако, как правило, самая распространенная и наиболее применяемая свободная лицензия – это GNU GPL разных версий. Кроме того, есть еще и такие разновидности, как MIT и BSD. Самый главный плюс такого ПО состоит как раз в том, что его можно использовать дома, в школах и университетах или в любых других организациях.
Общественная лицензия GNU
Декларировав критерии свободного ПО, члены Фонда свободного ПО стали распространять свои программы в соответствии с этими принципами, никак не оформляя это документально, иначе говоря, первоначально свободные программы распространялись вообще без лицензии. Однако произошедший с самим Ричардом Столлманом прецедент убедил его в том, что документальное оформление необходимо для свободного ПО.
Ричард Столлман занимался разработкой текстового редактора Emacs на основе исходных текстов Джеймса Гослинга. Тогда Гослинг свободно раздавал свои исходные тексты всем заинтересованным. Однако в некоторый момент Гослинг продал права на распространение Emacs компании UniPress и компания попросила Столлмана прекратить распространение его версии Emacs, так как права принадлежат им. Этот инцидент заствил Столлмана переписать заново те части исходного текста Emacs, которые теперь принадлежали UniPress, после чего он разработал собственную лицензию на программное обеспечение.
Лицензия, сформулированная Столлманом, должна была работать так же, как и лицензии на патентованное программное обеспечение: это типовой договор автора программы (обладателя авторских прав) с пользователем, в котором автор оговаривает права пользователя по отношению к программе. В отличие от коммерческой лицензии, в лицензии Столлмана оговариваются те права, которые пользователь получает по отношению к свободной программе: получать исходные тексты программ, изменять их, распространять изменённые и неизменённые версии (см. перечисленные выше критерии свободного ПО). Кроме того, в этой лицензии оговаривается принципиальное для Столлмана условие распространения свободного ПО: ни один пользователь не имеет права, сделав модифицированную версию свободной программы, распространять её, не соблюдая всех принципов свободного ПО, ограничивая тем самым права других пользователей по отношению к программе. Иначе говоря, нельзя модификацию свободной программы сделать несвободной.
Лицензия, содержащая такое условие, получила название «copyleft». Здесь игра слов: по-английски авторское право называется «copyright», буквально «копироватьправо», а «copyleft», соответственно, «копироватьлево». Действительно, условие «copyleft» прямо противоположно по смыслу авторскому праву: авторское право призвано ограничить пользователя в копировании и распространении копий продукта, а «авторское лево», наоборот, строго запрещает его ограничивать. Впоследствии лицензия Столлмана получила название «Общественная лицензия GNU» (GPL, GNU Public License).
В настоящее время помимо GPL известны и другие лицензии, под которыми может распространяться свободное ПО. Самая распространённая из таких лицензий — Лицензия BSD. Лицензия BSD отличается от GPL главным образом тем, что в ней отсутствует условие «copyleft», то есть на основании свободного ПО, распространяемого под этой лицензией, можно производить несвободные модификации. Однако лицензия BSD и другие лицензии до тех пор будут оставаться лицензиями на свободное программное обеспечение, пока они соответствуют условиям, оговорённым принципами свободного ПО, объявленными Фондом. [Источник 3]
Сообщество разработчиков и пользователей
Однако главное условие существования свободного ПО — не лицензия, а люди, которые готовы делиться текстами своих программ и совершенствовать тексты чужих. Свободное ПО унаследовало модель открытой научной разработки, а вместе с ней — и специфическую организацию сообщества разработчиков и пользователей, в некоторых отношениях напоминающую академическое сообщество.
У любого пользователя программного обеспечения непременно возникают вопросы, когда он пытается применить его для решения своих задач. Традиционная коммерческая модель разработки и использования программного обеспечения основана на том, что исходные тексты программ являются коммерческой тайной производителя, а пользователь получает готовый продукт — скомпилированную программу. Такая программа является несвободной. Пользователь несвободной (патентованной) программы платит за неё производителю, который взамен предоставляет ему некоторые гарантии, одна из которых — отвечать на вопросы о работе программы. Специально для этого производитель организует службу поддержки, которая по телефону и по электронной почте отвечает на вопросы пользователей.
Пользователь свободно распространяемой программы не получает вместе с ней никаких гарантий: автор сделал её исходный текст открытым для общества, но при этом не брал на себя обязательств объяснять всем, как работает программа. Поэтому получить ответ на свой вопрос пользователь может из двух источников: документации, более опытных пользователей, так же есть возможность подписаться на специальную рассылку относящейся к той или иной определенной свободно распространяемой программе, где и возможно задать свой вопрос. Любой пользователь свободной программы может направить свой вопрос в список рассылки. Списки рассылки читают разработчики программы и её активные пользователи, и обычно среди них находится тот, кто ответит на вопрос. Так получается, что пользователи свободных программ, в отсутствие централизованной службы поддержки, организуются в сообщество для взаимопомощи.
В любой программе непременно имеются ошибки. Производитель патентованной программы оплачивает работу отдела контроля качества, который занимается поиском ошибок. Тем не менее, некоторые ошибки этот отдел пропускает, и они достигают пользователя. Пользователь несвободной программы, столкнувшись с ошибкой, не может выявить её причину (поскольку ему недоступны исходные тексты программы), но, скорее всего, способен описать ошибку и условия, в которых она происходит. Он может сообщить об ошибке производителю программы (обычно посредством обращения всё в ту же службы поддержки), и если там решат, что ошибка действительно в программе, а не в работе пользователя, о ней будет сообщено разработчикам. В итоге пользователь может ожидать, что в следующей версии программы ошибка будет исправлена.
У свободно распространяемой программы обычно нет оплачиваемого отдела контроля качества. Значит, пользователь может столкнуться с ещё большим количеством ошибок, чем в патентованной программе. Тем актуальнее для него возможность сообщить об ошибке разработчикам программы. Раньше в сопровождающей программу документации было принято указывать электронный адрес, по которому разработчики принимали сообщения об ошибках, bug report. Некоторые вводили стереотипную форму для таких сообщений, чтобы облегчить и автоматизировать их обработку. Уже это требует существенно более высокой связности сообщества во всём мире, существенно большей, чем достаточно для закрытой разработки.
Разработчики и контролёры-испытатели патентованного продукта могут ходить на службу в один и тот же офис, и там обмениваться информацией или тратить определённую долю рабочего времени на составление и анализ строгих отчётностей, содержащих сообщения об ошибках и рапорты об устранении неисправностей. Такая организация труда эффективна, если круг разработчиков невелик, а ввести общую дисциплину относительно легко. Для открытого проекта круг потенциальных разработчиков не ограничен ничем, поэтому эффективность разработки в гораздо большей степени зависит от того, насколько просто всем членам сообщества договариваться между собой, а также от «сознательности» пользователей.
Простому и упорядоченному приёму и перенаправлению сообщений об ошибках служат системы отслеживания ошибок (Bug Tracking System), самые известные из которых разработаны участниками больших проектов для себя, а благодаря свободным лицензиям используются повсеместно. Таковы GNUTS (разработанная в GNU), Bugzilla (Mozilla Fundation), JitterBug (проект Samba) или Debian BTS. Более ранние версии ориентируются на электронную почту, более поздние включают в себя WWW-интерфейс. Например, при помощи Bugzilla организуется сайт в Internet, на котором пользователь может заполнить форму сообщения об ошибке. Каждое сообщение имеет свой номер, по которому можно попасть на «персональную» страницу данной ошибки, где отражаются все происходящие по её поводу события, от первоначального сообщения (открытия) до исправления (закрытия). При каждом изменении в состоянии ошибки Bugzilla рассылает всем заинтересованным лицам (включая, естественно, сообщившего об ошибке и занимающихся данной программой разработчиков) письма по электронной почте. Поскольку Bugzilla позволяет оставлять комментарии и прикладывать файлы, она является полноценным средством для общения пользователя с разработчиком по поводу ошибки в программе.
Принципиальное преимущество пользователя свободной программы заключается в том, что у него, в отличие от пользователей несвободных программ, всегда есть возможность заглянуть в исходные тексты. Конечно, для многих пользователей исходные тексты не более понятны, чем двоичные исполняемые файлы. Однако при достаточном уровне познаний в программировании пользователь может установить причину ошибки в программе и устранить её, исправив соответствующим образом исходный текст. А если пользователь заинтересован в развитии программы, то с его стороны будет разумно не только сообщить автору об ошибке, но и прислать ему свои исправления к исходному тексту программы: автору останется только применить эти исправления к тексту программы, если он найдёт их корректными и уместными. Пересылать автору исправленный текст программы целиком непрактично: он может быть очень большим (десятки тысяч строк), и автору будет нелегко разобраться, что же изменено (а вдруг изменения сделаны неграмотно?).
Чтобы облегчить и автоматизировать процесс внесения исправлений, Ларри Уолл в 1984 году разработал утилиту patch («заплатка»), которая в формализованном (но хорошо понятном человеку) виде описывает операции редактирования, которые нужно произвести, чтобы получить новую версию текста. С появлением этой утилиты пользователь, обнаруживший и исправивший ошибку в программе, мог прислать автору небольшую заплатку, по которой автор мог понять, какие изменения предлагаются, и автоматически «приложить» их к своему исходному тексту. С появлением patch гораздо больше пользователей стало включаться в разработку программ с доступным исходным текстом, немалую роль и здесь сыграла сеть Usenet. Файлы-заплатки с исправлениями — обязательный атрибут сегодняшней разработки свободных программ.
Если пользователю программы не хватает в ней какой-то функции, то при должной квалификации он вполне может запрограммировать её сам и включить в исходный текст программы. Естественно, ему выгодно, чтобы его дополнение попало в «главный», авторский вариант программы (его называют «upstream») и появлялось во всех последующих версиях: можно точно так же оформить его в виде patch и выслать автору. Этой возможности лишён пользователь несвободной программы, даже если он достаточно квалифицирован. Единственный способ включить в программу нужную ему функцию — обратиться к производителю (если программа патентованная) с соответствующей просьбой, и надеяться, что производитель сочтёт предложенную функцию действительно необходимой.
Чем больше у свободной программы активных пользователей, готовых вносить исправления и дополнения и делиться ими, тем надёжнее работает и быстрее развивается программа. Причём такая свободная модель отслеживания и исправления ошибок для программы, у которой тысячи активных пользователей, может оказаться гораздо более эффективной, чем у любой патентованной программы: ни одна компания не может себе позволить такой огромный штат сотрудников в отделе контроля качества. Поэтому действительно популярная свободная программа может оказаться гораздо надёжнее патентованных аналогов.
Написать большую программу в одиночку довольно сложно и даже не всегда возможно, особенно если автор занимается этим в свободное от работы время. Большинство современных свободных программ пишется группой разработчиков. Даже если начинал писать программу один человек, и она оказалась интересной, к разработке могут присоединиться активные пользователи. Чтобы они могли не только вносить отдельные исправления, но и вообще всю разработку вести совместно, нужны специальные инструменты. Помимо patch, для организации совместной разработки ПО применяются системы контроля версий. Функции системы контроля версий состоят в том, чтобы организовать доступ к исходным текстам программы для нескольких разработчиков и хранить историю всех изменений в исходных текстах, позволяя объединять и отменять изменения и пр. Самая ранняя свободная система контроля версий, RCS использовалась ещё на заре свободного ПО абонентами сети Usenet, затем на смену ей пришла более развитиая CVS, но сегодня и она считается во многом устаревшей, и всё чаще заменяется Subversion, Arch и другими.
Очень многие свойства сообщества разработчиков и пользователей свободных программ проистекают из того, что все его участники обычно занимаются этой программой из интереса или потому, что эта программа — необходимый для них инструмент (например, зарабатывания денег). Время, потраченное ими на программу, не оплачивается, поэтому нет никакой надежды, что обстоятельства не переменятся и разработка не прекратится вовсе. Нередки случаи, когда разработка программы начинается благодаря одному автору-энтузиасту, который привлекает многих к участию в разработке, а потом энтузиазм лидера гаснет, а вместе с ним затухает и разработка. К сожалению, сегодня существуют тысячи свободных программ, так никогда и не достигших версии 1.0, хотя «выгорание» лидеров и не единственная этому причина. Кроме того, программа может быть необходимой, но «неинтересной», а потому не найдётся и свободных разработчиков.
Место свободных программ на сегодняшнем рынке ПО очень значительно, и многие коммерческие и государственные предприятия используют свободное ПО прямо или опосредованно. Собственно, опосредованно все пользователи Internet задействуют, например, свободную программу Bind, предоставляющую службу DNS. Многие организации, особенно предоставляющие услуги через Internet, используют свободный web-сервер Apache, от работы которого непосредственно зависит их прибыль, не говоря уже о серверах на платформе Linux. Выгода использования свободного ПО очевидна: за него не приходится платить, а если приходится — оно стоит гораздо дешевле патентованных аналогов. Главный недостаток с точки зрения коммерческого пользователя: разработчики свободных программ не несут никаких обязательств по качеству программы, кроме моральных. Поэтому сегодня большие корпорации, например, Intel или IBM, находят необходимым поддерживать проекты по разработке свободного ПО, оплачивая сотрудников, которые работают в рамках этих проектов.
Философия
В европейской культуре столь долго вырабатывались правила собственности по отношению к материальным предметам, что распространение этих прав на предметы нематериальные — программные продукты — выглядит делом естественным и не вызывает сомнений. А поводов для сомнений немало. Главное отличие программного продукта от материальных объектов — т. н. безущербное копирование, для которых законодательно запрещать нанесение ущерба, то есть признавать право распоряжаться вещью только за одним человеком — за её хозяином. Никаких дополнительных механических или юридических приспособлений при этом не требуется.
Иное дело — программный продукт. Сколько бы средств ни было вложено в его разработку, процедура его копирования (переписывания с одного носителя данных на другой) резко отличается от процедуры воспроизведения табурета. Она не требует участия ни одного из авторов программы, ни, по большому счёту, вообще человека. Единственная расходная статья при этом — цена носителя данных и амортизация копировального устройства. В результате такого копирования получается два экземпляра программы, создающие удобства уже для двух человек. Таким образом, если человек оценивает приносимые программой удобства выше стоимости носителя данных, копирование — благо. Если же относиться к программному продукту, как материальной вещи, и закреплять право её использования за одним каким-то человеком, возникает множество неурядиц, каждую из которых приходится решать искусственными, а зачастую и противоестественными методами.
Например, придётся изыскивать, какой ущерб всё-таки наносится «хозяину» программы при её безущербном копировании. Обычно при этом фигурирует понятие «упущенная выгода», то есть та прибыль, которую хозяин мог бы получить, но не получил из-за того, что продукт скопировали. Приходится изобретать хитроумную аппаратуру, мешающую копированию, или причиняющую при этом ущерб. Приходится вводить в законодательство особую категорию прав, условно назовём её «патента, ограничивающую злоупотребления — и свободу — всего человечества в пользу хозяина патента. Причём далеко не всегда хозяин патента и автор изобретения — один и тот же человек.
Патентованные программы часто называют иногда «проприетарными» (от английского термина «proprietary») или просто «коммерческими» (что, строго говоря, неверно, так как «делать коммерцию» — то есть получать выгоду — можно различными способами, и многие успешные свободные проекты это подтверждают).
Цели и задачи свободного программного обеспечения в России
СПО создается и применяется в целях формирования такого рынка, любая услуга на котором, такая как, например, копирование, тиражирование, модификация, исправление ошибки, добавление функциональности и т.п., может продаваться и покупаться на конкурентном рынке свободной контрактацией двух сторон — поставщика и приобретателя услуги, без апелляции к третьей стороне. Свободное программное обеспечение позволяет решать следующие задачи:
Свободное программное обеспечение должно соответствовать следующим критериям:
Развитие свободного программного обеспечения в России
В ряде крупных организаций в 2014-2015 гг. стартовали проекты по тестированию СПО и миграции на него с проприетарных продуктов. Так, например, перевести ряд систем с Oracle на PostgreSQL планировали Сбербанк России, в связи с чем осенью начал тестирование этой СУБД. Возможность использования PostgreSQL изучал и ВТБ, где экспериментальной площадкой выступал Банк Москвы. О планах по переводу некритических систем на PostgreSQL сообщал также Банк Открытие. В решениях с открытым кодом заинтересованы, например, и структуры «Росатома». В РФЯЦ-ВНИИЭФ ведется разработка платформы на базе СПО на замену продуктам Microsoft, VMware и Oracle. [Источник 5]