Все программное обеспечение по модели разработки можно разделить на две группы:
o Программы с закрытым исходным кодом (Proprietary Software) – тексты программ не предоставляются пользователя;
o Программы с открытым кодом (Open Source Software) - тексты программ предоставляются пользователям. При этом выделяются понятия:
· Исходный текст (код) программы – последовательность действий, описанная на любом из языков программирования в текстовом виде, необходимая для выполнения какой либо задачи на компьютере. Распечатка исходного текста дает полное представление о логике работы программы.
· Бинарный (исполняемый) код программы – результат автоматической обработки исходного текста программы, где текст языка программирования заменяются последовательностью нулей и единиц, необходимых для управления центральным процессором компьютера. Распечатка бинарного кода не дает представления о логике работы программы.
· Лицензия – свод правил, регулирующих права на использование, модификацию и распространение программы во всех ее проявлениях – в бинарном виде и в исходных текстах и разделение ответственности в случае нарушения таковых.
В последнее время мировая общественность и государственные органы развитых стран все больше и больше внимания уделяют программному обеспечению с открытым исходным кодом (интерес своим происхождением обязан Linux).
Интернет может значительно сократить стоимость обеспечения пользователей некоторыми типами программ, такими, как ОС, компиляторы и утилиты. Интернет предоставляет возможность создания бесконечного количества доступных удаленному пользователю абсолютно идентичных копий компьютерных программ, мультимедиа-презентаций либо интересных дискуссий по электронной почте.
Программы с открытым кодом разрабатываются международным сообществом программистов. Международное сообщество программистов - это свободное объединение свободных людей. Но это организованное сообщество. Это сообщество возглавляют лидеры – признанные неформальные авторитеты. Любой участник сообщества программистов может провозгласить себя лидером, но не каждый лидер сможет увлечь за собой сообщество. Международное сообщество ряда серьезных программ имеет более сложную организацию, которая имеет не только лидеров проекта в целом, но и лидеров национальных групп. Такая организация проектов позволяет выпускать более качественные переводы программ на национальные языки. На национальном уровне свободные программы поддерживаются специализированными программистскими предприятиями, которые участвуют в международной разработке программ.
Большинство разработчиков программ с открытыми исходниками делают это в погоне за мечтой, а не для пополнения своих банковских счетов. Их мотивировки могут различаться, но, попросту говоря, способности многих выдающихся программистов используются не полностью на тех должностях (часто в корпоративной среде), на которых им приходится работать.
Сторонники разработки программ с открытыми кодами отмечают следующее:
· все пользователи, использующие вычислительную технику для обеспечения нужд бизнеса, заинтересованы в соблюдении авторских прав разработчиков программного обеспечения, как гарантии его дальнейшего развития;
· современный уровень развития общества, практически не оставил сфер экономики, где возможна коммерческая деятельность без использования вычислительной техники;
· для подавляющего большинства форм хозяйственной деятельности программное обеспечение не является средством образования прибыли и выполняет вспомогательную функцию, обеспечивая сопутствующий документооборот, тем самым увеличивая стоимость произведенного продукта или услуги за счет роста накладных расходов;
· борьба за снижение затрат – наиболее естественная рыночная стратегия, и она в первую очередь распространяется на вспомогательное производство (делопроизводство, программное обеспечение).
Следовательно, как считают сторонники открытых программ, нарушение лицензии на использование программного обеспечения не всегда следует относить к преднамеренной преступной деятельности. Это может быть вынужденное (навязанное рынком) поведение, обусловленное необходимостью обмена электронными документами в процессе хозяйственной деятельности.
По способам распространения программное обеспечение делят на следующие виды:
Свободное ПО – это множество программных решений, в которых права пользователя («свободы») на неограниченные запуск, изучение, распространение и изменение (совершенствование) программ защищены юридически при помощи свободных лицензий.
В соответствии с современным законодательством большинства стран, программный продукт и его исходный код по умолчанию охраняется авторским правом, которое даёт правообладателю (чаще всего правообладателем является организация-наниматель автора служебных произведений), полную власть над изменением, распространением, способом использования и поведением программы, включая случаи, когда исходный код опубликован. Сила власти правообладателя настолько велика, что даже изучение или попытки исправления ошибок программ путём дизассемблирования могут преследоваться уголовным правом.
Чтобы избавить пользователя от проблем, вызванных перекосом законодательства об охране результатов интеллектуальной деятельности в сторону правообладателя, сами правообладатели могут передать пользователю права на четыре вышеперечисленные свободы действий. Это достигается путём выпуска исходного кода программного обеспечения на условиях одной из особого рода лицензий, называемых свободными лицензиями. Несмотря на то, что по условиям свободных лицензий выданные пользователям разрешения правообладатель отозвать не может, свои права, гарантированные законодательством, он сохраняет.
Свободное ПО легко коммерциализируется — существует множество бизнес-моделей, где исключена необходимость оплаты копий программы. Например, высокую популярность имеет бизнес-модель, когда предприниматель может заработать за счёт предоставления услуг технической поддержки.
Свободное ПО - это программы, лицензия которых требует, чтобы они (программы) вплоть до исходного текста находились в открытом доступе, а их исходный текст мог подвергаться изменениям (модификации, улучшению) и свободно распространяться. Для обозначения свободного программного обеспечения используются ниже перечисленные понятия: Программное обеспечение Open Source; Программы с открытым исходным текстом; Свободно распространяемые программы.
Ниже перечисленные понятия противоречат принципам свободного программного обеспечения: Бесплатные программы; Хакерские программы; Программы, исходный текст которых - коммерческая тайна; Программы без права свободного использования.
Свободное программное обеспечение доступно не только в исходных текстах, но и в бинарном виде, годном для выполнения на компьютере. С точки зрения пользователя, свободные программы мало чем отличаются от коммерческих программ:
Предусмотрена автоматическая установка и конфигурация;
Есть документация, система контекстной справки;
Есть возможность автоматического удаления программы с компьютера.