- •Тема 5. Прикладное программное обеспечение Лекция 1. Основные понятия и классификация прикладного программного обеспечения
- •1.1. Основные понятия
- •1.2. Классификация прикладного программного обеспечения
- •Классификация прикладного программного обеспечения
- •1.2.1. Прикладное программное обеспечение общего назначения
- •1.2.2. Методо-ориентированное прикладное программное обеспечение
- •1.2.3. Проблемно-ориентированное прикладное программное обеспечение
- •1.3 Классификация прикладного программного обеспечения по классам решаемых задач
- •1.2.4. Прикладное программное обеспечение глобальных сетей
- •1.2.5. Прикладное программное обеспечение для организации (администрирования) вычислительного процесса
- •Лекция 2. Проприетарное, открытое и свободное программное обеспечение
- •2.1. Проприетарное программное обеспечение
- •2.2. Открытое программное обеспечение
- •2.3. Свободное программное обеспечение
- •Состав пакета OpenOffice.Org
2.2. Открытое программное обеспечение
Открытое программное обеспечение (англ. open source software) - это программное обеспечение с открытым исходным кодом. Исходный код создаваемых программ открыт, то есть доступен для просмотра и изменения. Это позволяет использовать уже созданный код для создания новых версий программ, для исправления ошибок и, возможно, помочь в доработке открытой программы.
«Открытая» лицензия не требует, чтобы открытое ПО предоставлялось бесплатно. Многие из наиболее успешных проектов открытого ПО, тем не менее, бесплатны. Открытое программное обеспечение имеет большие перспективы в России в связи с принятием правительством и президентом РФ решений по обеспечению национальной безопасности в сфере ИТ на основе внедрения открытого и свободного ПО в государственные и бюджетные организации.
Открытое и свободное ПО
Термин open source (англ. Открытое программное обеспечение) был создан вместе с определением в 1998 году Эриком Реймондом и Брюсом Перенсом, которые утверждали, что термин free software (Свободное программное обеспечение) в английском языке неоднозначен и отпугивает коммерческих предпринимателей.
Подавляющее большинство открытых программ является одновременно свободными. Определения открытого и свободного ПО не полностью совпадают друг с другом, но близки, и большинство лицензий соответствуют обоим.
Отличие между движениями открытого ПО и свободного ПО заключается в основном в приоритетах. Сторонники термина «open source» делают упор на эффективность открытых исходников как метода разработки, модернизации и сопровождения программ. Сторонники термина «free software» считают, что именно права на свободное распространение, модификацию и изучение программ являются главным достоинством свободного открытого ПО.
Существуют программы, попадающие по мнению некоторых под определение открытых, но не являющиеся свободными, например, UnRAR, распаковщик RAR-архивов. Его исходный код находится в открытом доступе, но лицензия запрещает использовать его для создания RAR-совместимых архиваторов.
По мнению Ричарда Столлмана, разрекламированность «Open Source» несколько вредит свободному ПО, так как некоторые разработчики и пользователи открытого ПО совсем не против собственнического ПО, и люди останавливаются на Open Source, не доходя до понятий о свободе.
Определение открытого программного обеспечения Open Source Initiative
Open Source является торговой маркой организации Open Source Initiative. Существует специальный комитет, решающий, может ли лицензия носить имя Open Source. Определение, которым он при этом руководствуется, приведено в The Open Source Definition.
Вынесенное OSI определение признается за руководство многими другими организациями - например, порталом SourceForge.net.
OSI накладывает на публичную лицензию десять требований, которые изначально были основаны на Debian Free Software Guidelines.
Лицензии
Исходные коды открытых программ выпускаются либо как общественное достояние, либо на условиях «свободных» лицензий - как, например, GNU General Public License или BSD License. Свободная лицензия позволяет использовать исходный код программы для своих нужд с минимальными ограничениями, не противоречащими определению OpenSource.org. Таким ограничением может быть требование ссылаться на предыдущих создателей или требование сохранять свойство открытости при дальнейшем распространении той же самой или модифицированной открытой программы (копилефт). В некоторых случаях (например, Apache или FreeBSD) эти ограничения очень малы, в других (например, GNU General Public License) достаточно распространять ПО вместе с исходным кодом и текстом лицензии, не изменяя её.
Российские разработчики открытого программного обеспечения
Российские разработчики в основном помогают развитию англоязычных проектов или выпускают локализованные редакции международных проектов (например, OpenOffice Pro на базе OpenOffice.org). Крупных российских проектов с открытыми кодами немного. Небольшие программы чаще бывают только бесплатными, без открытия исходных кодов.
Также, существует незначительное количество российских репозиториев открытого ПО (таких, как репозитарий Сизиф).
Определение Open Source (англ. Open Source Definition, OSD) используется организацией Open Source Initiative для определения степени соответствия лицензии на программное обеспечение стандартам Открытого программного обеспечения (Открытое ПО). Основываются на директивах Debian для свободного программного обеспечения, которые большей частью написаны Брюсом Перенсом.
Термин «Open Source» был создан как альтернатива термину «Free software», и открытые лицензии почти всегда являются свободными, и наоборот.
Определение состоит из десяти требований к лицензиям на Открытое ПО:
Свободное распространение. Это значит, что лицензия не должна налагать ограничений на продажу и распространение ПО.
Доступные исходные тексты. Даже если ПО не поставляется с исходными текстами, эти тексты должны быть легко доступны. Это должны быть именно редактируемые человеком исходные тексты, а не выход обфускаторов, препроцессоров и тому подобные промежуточные формы.
Возможность модификации. Простая возможность читать исходные тексты не позволяет экспериментировать с ними и выпускать модификации. Лицензия, претендующая на звание «открытой», должна разрешать не только чтение кода, но и модификацию, использование частей кода в других проектах и т. д.
Даже в случае неприкосновенности авторского исходного текста, производные программы и их исходные тексты должны свободно распространяться. Свободные лицензии могут оставлять за автором какие-то права — например, производная программа обязана нести другое имя или версию; либо она должна состоять из авторских исходных текстов и патчей к ним. Тем не менее, автор должен разрешать распространять откомпилированные двоичные файлы и исходные тексты производной программы в том или ином виде.
Отсутствие дискриминации против людей и групп людей. Некоторые страны, например, США, имеют некоторые ограничения на экспорт ПО. Свободная лицензия может напоминать, что такие правила есть, но не может ставить свои.
Отсутствие дискриминации по цели применения. Свободная лицензия должна разрешать все виды деятельности, включая генетические и ядерные исследования, коммерческое применение и т. д. Про коммерческое применение говорится особо: «Мы хотим, чтобы коммерческие пользователи подключались к сообществу, а не считали себя отрезанными от него».
Распространение лицензии. Права, связанные с Открытым ПО, должны быть применимы ко всем пользователям программы без заключения дополнительных соглашений, например, соглашения о неразглашении.
Лицензия не должна быть привязана к конкретному продукту. Права на программный код не должны зависеть от того, является ли программа частью какого-то продукта. Человек, распространяющий программу в отрыве от сборника или перенёсший часть кода в другой продукт, имеет такие же права, какие давал сборник. Это требование закрывает некоторые лицензионные лазейки.
Лицензия не должна ограничивать другие программные продукты. За исключением банальной несовместимости, пользователь имеет право выбирать, чем пользоваться. Например, нельзя требовать, чтобы остальные программы, поставляемые вместе с данной, также были открытыми.
Лицензия должна быть технологически нейтральной. То есть, лицензия не должна требовать что-либо от интерфейса или технологий, применяемых в производной программе.
