Критерии свободного программного обеспечения гласят что у пользователя есть право свободно программу

Обновлено: 25.06.2024

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

Итак, что же представляет собой открытое программное обеспечение? Пожалуй, самое распространенное определение этого термина раскрывает его главные особенности. Открытое программное обеспечение (англ. open source software) — это все ПО с открытым исходным кодом, программные продукты, на базе которого, доступны не только для просмотра, но и для изменения, что позволяет использовать уже созданный код для написания новых версий софта, для исправления ошибок и доработки открытой программы. Стоит отметить, что данное определение, по мнению сторонников open source, не в полной мере отображают саму суть понятия. С их точки зрения, открытое программное обеспечение представляет собой, помимо доступного для редактирования исходного кода, еще и целую философию, смыслом которой является создание информационного общества посредством всестороннего применения открытых программных продуктов во всех сферах деятельности человека.

В чем же прелесть открытого программного обеспечения? По мнению представителей этого течения, ПО с открытым кодом позволяет:

  1. подстраивать программный продукт под требования конкретного пользователя или группы пользователей;
  2. устранять ошибки предыдущих разработчиков;
  3. дорабатывать и совершенствовать программный продукт.

Кроме того, ПО на базе открытого кода в основном бесплатно, что особенно привлекает предприятия малого и среднего бизнеса, которые, к примеру, не в состоянии на сегодняшний день обеспечить себя лицензиями коммерческих программных продуктов. Также сторонники идеи открытости исходного кода в качестве преимущества open source software выделяют его безопасность, то есть открытое ПО в силу своей недостаточной популярности практически не подвержено вирусным атакам. А если угроза все же обнаружена, то устраняется она в кратчайшие сроки, так как к исходному коду имеет доступ, как правило, множество профессионалов и любителей, которые поддерживают связь друг с другом. Соответственно, угроза безопасности, будучи уже обнаруженной, быстро устраняется одним из членов сообщества, либо совместными усилиями.

Стоит отметить, что в глобальном представлении открытое ПО включает в себя непосредственно open source software, а также другие разновидности программных продуктов, которые могут распространяться безвозмездно и предоставлять исходный код для внесения изменений. К такому ПО относятся бесплатные (freeware) и свободные (free software) программы.

Итак, термин open source (открытое программное обеспечение) был впервые применен в 1998 году программистами Эриком Реймондом (Eric Steven Raymond) и Брюсом Перенсом (Bruce Perens). Они были уверены в том, что термин free software (свободное программное обеспечение) в английском языке является неоднозначным и в каком-то смысле может даже отпугивать предпринимателей, являющихся потенциальными пользователями такого софта. В настоящее время open source является торговой маркой организации Open Source Initiative, которая занимается распространением ПО с открытым кодом. Кроме того, существует также и специальный комитет, который решает, может ли лицензия той или иной программы носить имя open source.

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

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

Механизм работы свободного ПО заключается в том, что программный продукт и его исходный код по умолчанию охраняется авторским правом, которое дает правообладателю полную власть над распространением и изменением программы, даже в случае, когда исходный код общедоступен. То есть, автор имеет право, в том числе и продавать свой продукт. Однако как только пользователям не предоставляется права получать исходные коды программ, изменять их и распространять далее, то ПО становится несвободным — независимо от прочих условий.

Что касается условия распространения и использования программ free software, то зачастую их копирование запрещено, а обратная разработка, изменение, повторное распространение оговариваются в лицензионном соглашении.

Тем не менее, существуют программы, попадающие, по мнению некоторых экспертов, под определение открытых, но не являющиеся свободными. К таким программам относится, к примеру, UnRAR, распаковщик RAR-архивов. Дело в том, что его исходный код находится в открытом доступе, но лицензия запрещает использовать его для создания RAR-совместимых архиваторов.

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

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

Место свободных программ на сегодняшнем рынке ПО очень значительно, и многие коммерческие и государственные предприятия используют free software прямо или косвенно. Например, все пользователи сети интернет, хоть и опосредовано, задействуют свободную программу Bind, предоставляющую службу DNS. Кроме того, многие организации (в частности предоставляющие услуги через всемирную паутину) используют свободный web-сервер Apache, от работы которого может зависеть непосредственно прибыль предприятия, не говоря уже о серверах на платформе Linux.

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

Кстати, в настоящее время система GNU, более широко известная как GNU/Linux или просто Linux, достаточно распространена, особенно на рынке серверов, и является вполне завершенным программным продуктом. Она состоит из большого количества программ проекта GNU (в первую очередь системных утилит и GNU toolchain), ядра Linux — части системы, отвечающей за выполнение других программ, включающей драйверы устройств и т.п.,— и множества других свободных программ.

Поэтому сегодня существует тенденция, когда большие ИТ-корпорации, такие как Intel, Oracle или IBM стараются оказывать поддержку проектам по разработке свободного ПО, оплачивая работу сотрудников этих проектов, чтобы степень ответственности разработчиков была на высоком уровне. Зачем они это делают, ведь открытое и свободное ПО является для них конкурентным? Ответ прост — они видят в этом выгоду, которую стараются не сделать упущенной, так как каждый день на базе ПО с открытым кодом появляется множество программ, некоторые из которых в последствии могут стать сильными коммерческими продуктами.

Существует несколько основных лицензий, которые используются для распространения свободного ПО в настоящее время: AROS Public License, Лицензия BSD, CDDL, Common Public License, GNU Free Documentation License, GNU General Public License, GNU Lesser General Public License, Лицензия MIT, Mozilla Public License, Open Directory License и др. Для всех свободных лицензий, так или иначе, характерно соответствие принципам копилефта (copyleft — это каламбур от слова копирайт). В противоположность традиционному подходу к авторскому праву, при котором ограничивается свобода копирования произведений, принцип копилефта использует законы об авторском праве для обеспечения невозможности ограничить любому человеку права использовать, изменять и распространять, как само произведение, так и произведения, базирующиеся на нем. Идея копилефта заключается в том, что каждый, кто распространяет программу, как с изменениями, так и без них, не вправе ограничивать свободу ее дальнейшего распространения, либо модификации. Копилефт гарантирует, что каждый пользователь свободен в своих действиях.

Безусловно, открытое и свободное программное обеспечение все активнее захватывают аудиторию. Программы на основе открытого кода довольно успешно применяются как частными пользователями, так и коммерческими, государственными и общественными организациями. Софт на базе open source и free software уже используется в качестве предустановочного для некоторых моделей ноутбуков и нетбуков различных производителей. Кроме того, ПО с открытым кодом постепенно завоевывает рынок систем автоматизации для малых и средних предприятий.

Часто различают свободное и открытое ПО (open source) — хотя доступность исходного кода для СПО является обязательным, а многие открытые программы являются одновременно свободными. Выбор названия часто связан с используемым языком и с целями свободности или открытости.

Движение СПО зародилось в 1983 году, когда Ричард Столлман сформировал идею о необходимости свободы использования программного обеспечения (англ. software freedom) пользователями. В 1985 году Столлман основал Фонд свободного программного обеспечения, чтобы обеспечить организационную структуру для продвижения своей идеи.

Связанные понятия

Открытое программное обеспечение (англ. open-source software) — программное обеспечение с открытым исходным кодом. Исходный код таких программ доступен для просмотра, изучения и изменения, что позволяет убедиться в отсутствии уязвимостей и неприемлемого для пользователя функционала (к примеру, скрытого слежения за пользователем программы), принять участие в доработке самой открытой программы, использовать код для создания новых программ и исправления в них ошибок — через заимствование исходного кода.

Исхо́дный код (также исхо́дный текст) — текст компьютерной программы на каком-либо языке программирования или языке разметки, который может быть прочтён человеком. В обобщённом смысле — любые входные данные для транслятора. Исходный код транслируется в исполняемый код целиком до запуска программы при помощи компилятора или может исполняться сразу при помощи интерпретатора.

Форк (англ. fork — развилка, вилка) или ответвление — использование кодовой базы программного проекта в качестве старта для другого, при этом основной проект может как продолжать существование, так и прекратить его.

Интегри́рованная среда́ разрабо́тки, ИСP (англ. Integrated development environment — IDE), также единая среда разработки, ЕСР — комплекс программных средств, используемый программистами для разработки программного обеспечения (ПО).

Упоминания в литературе

Связанные понятия (продолжение)

Дистрибути́в (англ. distribute - распространять) — это форма распространения программного обеспечения.

Кросс-платформенность или межплатформенность — способность программного обеспечения работать с двумя и более аппаратными платформами и (или) операционными системами. Обеспечивается благодаря использованию высокоуровневых языков программирования, сред разработки и выполнения, поддерживающих условную компиляцию, компоновку и выполнение кода для различных платформ. Типичным примером является программное обеспечение, предназначенное для работы в операционных системах Linux и Windows одновременно.

Библиоте́ка (от англ. library) в программировании — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО).

Операцио́нная систе́ма, сокр. ОС (англ. operating system, OS) — комплекс взаимосвязанных программ, предназначенных для управления ресурсами компьютера и организации взаимодействия с пользователем.

Репозито́рий, хранилище — место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети.

Графи́ческий интерфе́йс по́льзователя (ГИП), графический пользовательский интерфейс (ГПИ) (англ. graphical user interface, GUI) — разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в виде графических изображений. Также называется графической оболочкой управления.

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

Среда́ рабо́чего стола́ (также графическое окружение рабочего стола, англ. desktop environment) — это разновидность графических интерфейсов пользователя, основанная на метафоре рабочего стола.

Система управления пакетами — набор программного обеспечения, позволяющего управлять процессом установки, удаления, настройки и обновления различных компонентов программного обеспечения. Системы управления пакетами активно используются в различных дистрибутивах операционной системы Linux и других UNIX-подобных операционных системах.

Закры́тый исхо́дный код — программа, лицензия которой не подходит под определение открытого ПО. Как правило, это означает, что распространяются только бинарные (скомпилированные) версии программы и лицензия подразумевает отсутствие доступа к исходному коду программы, что затрудняет создание модификаций программы. Доступ к исходному коду третьим лицам обычно предоставляется при подписании соглашения о неразглашении.

Файловый менеджер (англ. file manager) — компьютерная программа, предоставляющая интерфейс пользователя для работы с файловой системой и файлами. Файловый менеджер позволяет выполнять наиболее частые операции над файлами — создание, открытие/проигрывание/просмотр, редактирование, перемещение, переименование, копирование, удаление, изменение атрибутов и свойств, поиск файлов и назначение прав.

Виртуальная машина (VM, от англ. virtual machine) — программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы (target — целевая, или гостевая платформа) и исполняющая программы для target-платформы на host-платформе (host — хост-платформа, платформа-хозяин) или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы (см.: песочница); также спецификация некоторой вычислительной среды (например.

Те́кстовый реда́ктор — самостоятельная компьютерная программа или компонент программного комплекса (например, редактор исходного кода интегрированной среды разработки или окно ввода в браузере), предназначенная для создания и изменения текстовых данных в общем и текстовых файлов в частности.

Интерфейс командной строки (англ. Command line interface, CLI) — разновидность текстового интерфейса (CUI) между человеком и компьютером, в котором инструкции компьютеру даются в основном путём ввода с клавиатуры текстовых строк (команд), в UNIX-системах возможно применение мыши. Также известен под названием консоль.

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

Ути́ли́та (англ. utility) — вспомогательная компьютерная программа в составе общего программного обеспечения для выполнения специализированных типовых задач, связанных с работой оборудования и операционной системы (ОС).

Бра́узер, или веб-обозреватель (от англ. web browser, МФА: ; устар. бро́узер) — прикладное программное обеспечение для просмотра веб-страниц, содержания веб-документов, компьютерных файлов и их каталогов; управления веб-приложениями; а также для решения других задач. В глобальной сети браузеры используют для запроса, обработки, манипулирования и отображения содержания веб-сайтов. Многие современные браузеры также могут использоваться для обмена файлами с серверами FTP, а также для непосредственного.

Дистрибути́в операцио́нной систе́мы — это форма распространения системного программного обеспечения. Наличие дистрибутивов вызвано тем, что форма программного обеспечения, используемая для его распространения, почти никогда не совпадает с формой программного обеспечения работающей системы, за исключением использования Live CD..

Виртуализа́ция — предоставление набора вычислительных ресурсов или их логического объединения, абстрагированное от аппаратной реализации, и обеспечивающее при этом логическую изоляцию друг от друга вычислительных процессов, выполняемых на одном физическом ресурсе.

Компью́терная програ́мма — 1) комбинация компьютерных инструкций и данных, позволяющая аппаратному обеспечению вычислительной системы выполнять вычисления или функции управления (стандарт ISO/IEC/IEEE 24765:2010); 2) синтаксическая единица, которая соответствует правилам определённого языка программирования, состоящая из определений и операторов или инструкций, необходимых для определённой функции, задачи или решения проблемы (стандарт ISO/IEC 2382-1:1993).

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

Систе́ма управле́ния ба́зами да́нных, сокр. СУБД (англ. Database Management System, сокр. DBMS) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.

О программном обеспечении рассказывает другая статья.Переносимое приложение (также портативное, автономное, и — неточно, в качестве кальки — портированное; англ. portable application, portable app) — программное обеспечение, которое для своего запуска не требует процедуры установки и может полностью храниться на съёмных носителях информации, что позволяет использовать данное ПО на многих компьютерах. Переносимое приложение может быть настроено так, чтобы считывать свои конфигурационные настройки.

Интерфе́йс по́льзователя, он же по́льзовательский интерфейс (UI — англ. user interface) — интерфейс, обеспечивающий передачу информации между пользователем-человеком и программно-аппаратными компонентами компьютерной системы (ISO/IEC/IEEE 24765-2010).

Отла́дчик (деба́ггер, англ. debugger от bug) — компьютерная программа, предназначенная для поиска ошибок в других программах, ядрах операционных систем, SQL-запросах и других видах кода. Отладчик позволяет выполнять трассировку, отслеживать, устанавливать или изменять значения переменных в процессе выполнения кода, устанавливать и удалять контрольные точки или условия остановки и т.д.

Програ́ммное обеспе́чение (допустимо также произношение обеспече́ние) (ПО) — программа или множество программ, используемых для управления компьютером (ISO/IEC 26514:2008).

Ядро́ (англ. kernel) — центральная часть операционной системы (ОС), обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память, внешнее аппаратное обеспечение, внешнее устройство ввода и вывода информации. Также обычно ядро предоставляет сервисы файловой системы и сетевых протоколов.

Микроядро (англ. microkernel) или μ-ядро (англ. μ‑kernel) — ядро операционной системы, реализующее минимальный набор функций.

Систе́ма управле́ния содержи́мым (англ. Content management system, CMS, система управления контентом) — информационная система или компьютерная программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления содержимым, иначе — контентом (от англ. content).

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

Подсве́тка си́нтаксиса — выделение синтаксических конструкций текста с использованием различных цветов, шрифтов и начертаний.

Коммерческое программное обеспечение (англ. commercial software) — программное обеспечение, созданное с целью получения прибыли от его использования другими, например, путём продажи экземпляров.

Сценарный язык (язык сценариев, жарг. скриптовый язык; англ. scripting language) — высокоуровневый язык сценариев (англ. script) — кратких описаний действий, выполняемых системой. Разница между программами и сценариями довольно размыта. Сценарий — это программа, имеющая дело с готовыми программными компонентами.

Расширение браузера — компьютерная программа, которая в некотором роде расширяет функциональные возможности браузера. В зависимости от браузера, термин может отличаться от условленных обозначений, к примеру, plug-in (плагин), add-on (дополнение) или extension (расширение). Mozilla Firefox был разработан с целью создания маленького и простого в использовании веб-браузера, который расширялся бы за счёт продвинутых функций расширений. Microsoft Internet Explorer начал поддерживать расширения начиная.

Интерпретатор (англ. interpreter ıntə:'prıtə, от лат. interpretator - толкователь) — программа (разновидность транслятора), выполняющая интерпретацию.

Язык программи́рования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под её управлением.

Фа́йловая систе́ма (англ. file system) — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п. Файловая система определяет формат содержимого и способ физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имен файлов (и каталогов), максимальный возможный размер файла и раздела, набор.

Сервер приложений (англ. application server) — это программная платформа (фреймворк), предназначенная для эффективного исполнения процедур (программ, скриптов), на которых построены приложения. Сервер приложений действует как набор компонентов, доступных разработчику программного обеспечения через API (интерфейс прикладного программирования), определённый самой платформой.

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

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

Немного истории

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

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

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

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

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

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

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

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

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

Развитие открытого ПО

Собор и базар

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

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

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

Является ли та или иная программа свободной или открытой зависит от лицензии, по которой она распространяется и от того, одобрена ли эта лицензия Open Source Initiative, Free Software Foundation (или обеими организациями). В этом организации часто совпадают, но есть несколько исключений. Например, лицензия NASA Open Source Agreement одобрена OSI, но FSF считает ее слишком ограничительной. Таким образом, FSF отговаривает других от использования программного обеспечения, распространяемого по этой лицензии.

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

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

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

Еще одна проблема общедоступного ПО связана с тем, что контент, не защищенный авторским правом, признают далеко не все страны. Ни FSF, ни OSI не рекомендуют разработчикам выпускать общедоступное программное обеспечение.

Заключение

Если вы хотите узнать больше, ознакомьтесь с этим списком лицензий Free Software Foundation , в котором содержится подробное описание свободных и несвободных лицензий. Кроме того, вас также может заинтересовать страница лицензий и стандартов Open Source Initiative.

image

Минкомсвязи в конце декабря опубликовало свои взгляды в отношении внедрения свободного программного обеспечения (СПО) в госорганах. В документе перечислены преимущества свободных продуктов, главными из которых названы бесплатность и безопасность. Но так ли это на самом деле?

Свободное — значит бесплатное?

Существует распространенное мнение о том, что свободный софт является одновременно и бесплатным. В документе Минкомсвязи использован именно этот тезис:

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

Однако IТ-эксперты, в том числе основатель движения open source Ричард Столлман, с этим не согласны. Сам Столлман на каждом своем выступлении повторяет фразу:

Free — значит свободное, но не бесплатное. И все это не равно Open Source. Это три понятия, которые смешивать не стоит.

image

Свободный софт более безопасен

Поскольку, как мы только что выяснили, свободное ПО, бесплатное и Open Source — это три совершенно разные вещи, то кажется, что одна из них и должна быть более безопасной, чем проприетарные продукты. На самом деле это не так.

В документе Минкомсвязи сказано, что закрытые продукты менее безопасны, поскольку в них встречаются недокументированные возможности:

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

Но ведь и многие из открытых (свободных, бесплатных) приложений — тоже содержат недокументированные функции. Не всегда разработчики успевают (и не всегда хотят) надлежащим образом документировать возможности своего проекта. Более того, потенциальной угрозой является и целый ряд документированных функций (например, Userialize или Bash).

На самом деле, для того чтобы повысить уверенность в безопасности кода, достаточно следовать простому алгоритму:

В случае с бэкдором в RSA выяснилось, что компании заплатило АНБ — то есть виновника удалось найти. А вот откуда в пакете SSL взялась уязвимость Heartbleed — непонятно до сих пор.

Должно ли государство развивать российский Open Source

Еще одна выдержка из документа Минкомсвязи, в которой звучит тезис о том, что свободный софт соответствует национальным интересам:

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

Операционная система не нужна!

Десктопы

image

Все в облако

Казалось бы, все переехали на Chromium — но в этом нет ничего плохого. Если взять за основу существующую платформу, навесить на нее дополнительные функции и обеспечить цикл поддержки, это позволит создать конкурентоспособный продукт. А уже параллельно можно будет заняться и созданием собственного Chromium, если это необходимо.

Железное небо

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

Итого

Читайте также: