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

Обновлено: 02.07.2024

Часто различают свободное и открытое ПО (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 (интерфейс прикладного программирования), определённый самой платформой.

Свидетельство и скидка на обучение каждому участнику

Использование свободного программного обеспечения в системе образования Титов.

Описание презентации по отдельным слайдам:

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

1 слайд

Использование свободного программного обеспечения в системе образования Титова Екатерина Борисовна учитель информатики МАОУ СОШ № 37 г. Таганрог

Вопросы Что такое свободное программное обеспечение (СПО) В чём состоит его с

2 слайд

Вопросы Что такое свободное программное обеспечение (СПО) В чём состоит его сущность и особенности Сущность политики в области перехода на СПО в образовательных учреждениях Российской Федерации Какие шаги необходимо предпринять в образовательном учреждении для успешного перехода на применение СПО В чём состоят возможные риски и как их можно минимизировать Свободно распространяемое ПО

Что такое свободное ПО. Его сущность и особенности Свободное программное обес

3 слайд

Что такое свободное ПО. Его сущность и особенности Свободное программное обеспечение (СПО) - это программное обеспечение, распространяемое на условиях так называемых открытых или свободных лицензий. Одной из них является, например, лицензия GNU General Public License (GNU GPL). Синоним ПО с открытыми исходными кодами (open source) и свободно распространяемого ПО (free-software). Проприета́рное программное обеспечение - ПО, являющееся частной собственностью авторов или правообладателей и не удовлетворяющее критериям свободного ПО. Полусвободное ПО несвободное ПО, которое разрешает практически неограниченное использование, распространение и изменение

Пакет СПО или ПСПО – это дистрибутив (установочный пакет программ) операционн

4 слайд

Пакет СПО или ПСПО – это дистрибутив (установочный пакет программ) операционной системы АльтЛинукс 4.0 и набор прикладных программ для работы, например, создания презентаций, обучение программированию и т.д. АльтЛинукс (ALT Linux) - разновидность СПО, операционная система , под управлением которой работают различные прикладные программы, в том числе и кросс-платформенные (т.е. одинаково функционирующие и под Windows и под Linux).

Какие основные задачи выполняются с помощью ПСПО? Создание и редактирование т

5 слайд

Какие основные задачи выполняются с помощью ПСПО? Создание и редактирование текстов, электронных таблиц, мультимедийных презентаций. Обучение программированию. Редактирование графики Монтаж аудиозаписей. Сжатие и архивирование файлов. Защита от вирусов. …..

Преимущества СПО Отсутствие необходимости приобретать программное обеспечение

6 слайд

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

Недостатки СПО Неподготовленность массового пользователя. Возможная сложность

7 слайд

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

Нормативные документы перехода на ПСПО «Концепция развития разработки и испол

8 слайд

Основные задачи государственной политики в области СПО формирование общей инф

9 слайд

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

Риски перехода на СПО Недостаточный уровень кадрового обеспечения перехода на

10 слайд

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

 ПО используемое в образовательном процессе

11 слайд

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

Более 5 лет назад Владимир Путин подписал Распоряжение Правительства РФ от 17.12.2010 №2299-р "Об утверждении плана федеральных органов исполнительной власти и федеральных бюджетных учреждений на использование свободного программного обеспечения на 2011-2015 годы", которым было предусмотрено, в частности, создание Национальной программной платформы (НПП), но указанный план фактически не был реализован. В объяснение этого Минкомсвязи РФ сослалось на проведение ряда совещаний в 2014 году, в результате которых изменился подход к использованию свободного программного обеспечения в государственном секторе – было согласовано, что решение о внедрении свободных программ должно приниматься на местах в каждом конкретном случае, а не по указанию "сверху". [2]

Немногим позже вступило в силу Распоряжение Правительства РФ от 20.10.2010 "О государственной программе РФ "Информационное общество (2011-2020 годы)", которым предусматривалось развитие отечественной сборки операционной системы на свободном программном обеспечении. В данном направлении также не было достигнуто каких-либо существенных результатов, так как предлагаемые проекты представляли собой только переработанный западными разработчиками код. Стоит отметить, что до сих пор отсутствуют четко сформулированные базовые требования к принципам разработки свободного программного обеспечения и операционных систем для государственных нужд. [3]

На первый взгляд перспективной инициативой должно было стать создание Национального фонда алгоритмов и программ (НФАП) в рамках реализации Распоряжения Правительства РФ от 30.01.2013 №62 "О национальном фонде алгоритмов и программ для ЭВМ", предназначенного для сбора, обработки и хранения созданных или приобретенных за счет бюджетных средств программ для ЭВМ, программной документации, а также обеспечения государственных органов и организаций к этим программам и документам. Но на текущий момент в фонде единично востребованы всего 6 программ, разработанные, в основном, Минкомсвязью для служебного пользования,[4] из чего можно сделать вывод, что возможности этого ресурса используются в явной степени недостаточно.

По словам главы Минкомсвязи РФ Николая Никифорова, основной проблемой перехода госсектора на свободное программное обеспечение стало отсутствие полноценных конкурентоспособных пользовательских продуктов, не позволившее сотням тысяч госслужащих перевести свою работу на "свободную" программную плоскость. Тем не менее, в связи с постепенным расширением выбора качественного свободного программного обеспечения возможно его "точечное" применение в конкретных сферах. Например, переход на свободно распространяемые системы управления базами данных и систему межведомственного взаимодействия являются сегодня одной из основных задач Минкомсвязи РФ в рамках реализации программы по импортозамещению. [5]

На данный момент уже существуют отдельные примеры создания операционных систем на базе свободного программного обеспечения для государственных нужд. Еще более десяти лет назад была завершена разработка Мобильной системы вооруженных сил[6] и программно-аппаратного комплекса Атликс УЦ для Федеральной Службы Безопасности на базе Linux.[7] Говоря об относительно "свежих" разработках, можно упомянуть дистрибутив GosLinux, созданный для Федеральной службы судебных приставов и получивший сертификат ФСТЭК для возможности дальнейшего использования.[8] В обозримом будущем ожидается реализация инициативы по поэтапному переходу муниципалитетов с операционной системы Windows на Linux: сначала мелких, с количеством жителей до 10 тыс. человек (2017 год), потом в средних - до 100 тыс. человек (2018 год), а в 2018 году - во всех остальных.

Тем не менее, само по себе использование свободного программного обеспечения в госсекторе не способно избавить от рисков наложения международных ограничений на организации, которые осуществляют его дистрибуцию или поддержку. К примеру, 20 мая 2014 года американская компания RedHat во исполнение приказов Президента США №13660, 13661, 13662, касающихся наложения санкций на отдельные российские организации, разослала своим клиентам соответствующее письмо, извещавшее о прекращении поставки программного обеспечения и предоставлении услуг технической поддержки в отношении лиц, указанных в "санкционных" списках.[9] Серьезных перебоев в деятельности RedHat или ее клиентов данные ограничения не вызвали, тем не менее, описанный случай иллюстрирует необходимость использования государственным сектором не конкретно проприетарных или свободных информационных технологий, но технологий, подпадающих под регулирование российского законодательства, в частности – отечественного программного обеспечения.

Свободные программы для импортозамещения

По большей части именно наличие критериев отечественного программного обеспечения и механизма предоставления преференций при проведении государственных закупок отличают последние законодательные инициативы (указанные в Приказе Минкомсвязи РФ №96 от 01.04.2015 "Об утверждении плана импортозамещения программного обеспечения", Федеральном законе от 29.06.2015 №188 и др.), принятые в 2015 году, от тех, что без особого успеха, как показал предыдущий анализ, были предприняты ранее. С отличительными характеристиками описанного законодательного регулирования можно ознакомиться в заметке автора "Отечественное программное обеспечение: критерии, права и обязанности".

Говоря о различии отечественного программного обеспечения и программ с открытым исходным кодом, несмотря на его указание законодателем и существование по факту, в современной практике IT- индустрии не вызывает особых сомнений возможность регистрации и использования последнего в качестве отечественного.[10] Более того, данная позиция набирает все более уверенные обороты. К примеру, при рассмотрении проектов импортозамещения в области инфрастуктурного программного обеспечения в целях реализации Приказа №96 особое внимание уделялось опыту участия в международных проектах с использованием свободного программного обеспечения и степени импортонезависимости разработки.[11]

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

  • разработка нового специализированного решения "с нуля" с привлечением сторонних разработчиков и его дальнейшим распространением под свободной лицензией;
  • публикация программного обеспечения, уже разработанного государственным учреждением, под свободной лицензией в целях предоставления возможности его использования третьим лицам, снижения расходов на его содержание и развитие, а также для возможности заключения более выгодного соглашения о поддержке;[12]
  • доработка свободной программы, созданной в сложившемся сообществе сторонних разработчиков, под собственные нужды (например, системы управления документооборотом, рабочими потоками, контентом и т.д.).[13]

Если в первых двух случаях государство или российское лицо заключают с разработчиками соответствующие договоры, контролируют процесс разработки и в конечном итоге (при грамотном оформлении документации) выступают надлежащими правообладателями исключительного права на программный продукт, то в последнем ситуация не является столь однозначной в силу использования при разработке свободных программ, изначально созданных иными и в подавляющем большинстве иностранными лицами. При этом также необходимо учитывать внутреннюю специфику развития данной отрасли: в то время, когда у российских разработчиков появился доступ к зарубежному опыту, западные программисты уже долгое время реализовывали широкомасштабные проекты по разработке и внедрению свободных программ, поэтому логичным ходом в данной ситуации было присоединение к сформировавшимся интернациональным командам, а не создание новых соответствующих разработок с нуля.[14]

Таким образом, если говорить о создании программных продуктов с помощью свободного программного обеспечения, которые бы соответствовали уровню не только внутреннего, но и мирового рынка, очевидна необходимость тесного сотрудничества с западными сообществами разработчиков и использования уже существующих программ для их переработки под нужды конкретного заказчика. Но данная стратегия должна изначально базироваться на условиях свободной лицензии и нарушение этих условий (в частности, при закрытии исходного кода или распространении программы под проприетарной лицензией) влечет риск как нарушения договорных обязательств с разработчиками оригинальных программ, так и осложнение отношений с FSF (Free Software Foundation) и иными сообществами разработчиков свободных программ, что поставит под угрозу развитие данного направления в России.[15]

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

Что такое свободное программное обеспечение

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

На самом деле мы сталкиваемся со свободным (открытым) ПО и используем его каждый день, и многие представители такого класса программного обеспечения нам хорошо известны. Например, к свободному программному обеспечению относится операционная система Android , веб-браузер Chrome (точнее, он основывается на свободном браузере Chromium ), веб-браузер Mozilla Firefox . При этом специфика свободного (открытого) ПО заключается именно в предоставлении безвозмездных прав на использование программного обеспечения и раскрытии его исходного кода. Соответственно, бесплатное программное обеспечение, предоставляющее право его использования в ограниченных пределах без раскрытия исходного кода, к свободному (открытому) ПО не относится.

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

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

Свободные и открытые лицензии

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

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

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

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

Следует отметить, что подобный порядок заключения лицензионного договора (акцепт оферты на заключение лицензионного договора путем совершения определенных действий) допустим и по российскому законодательству, хотя встречалось мнение, что в случае заключения лицензионного договора путем начала использования программного обеспечения условие о письменной форме лицензионного договора, предусмотренное в пункте 2 статьи 1286 ГК РФ, не будет считаться соблюденным. В то же время в 2014 году в статью 1286 ГК РФ были внесены изменения [2] , предусматривающие упрощенный порядок заключения лицензионного договора в отношении программного обеспечения – в форме присоединения к условиям лицензии путем начала использования программного обеспечения.

Существует более двух десятков свободных лицензий, различаемых по возможному предмету лицензии (программное обеспечение, базы данных, документация, произведения в целом), объему предоставляемых прав и накладываемых ограничений. Ряд лицензий разрабатывается упомянутым выше Фондом свободного программного обеспечения, многие другие лицензии – различными коммерческими и некоммерческими организациями, которые в той или иной степени занимаются разработкой свободного программного обеспечения (например, лицензии Mozilla , Apache ), отдельно также стоит выделить семейство лицензий Creative Commons – некоммерческой организации, основной деятельностью которой является разработка типовых свободных лицензий с гибкой возможностью выбора предоставляемых прав и накладываемых ограничений.

Перечень большинства используемых свободных лицензий с указанием различий между ними можно найти в Википедии.

Использование свободного ПО

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

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

Воспроизведение, распространение и доведение до всеобщего сведения свободного программного обеспечения, если в него не вносились изменения, также допускается свободно с незначительными ограничениями (как правило – должны быть указаны сведения об авторе и текст лицензии в неизменном виде, либо ссылка на него). В описании к лицензии GNU GPL от Фонда свободного ПО даже подчеркивается, что Фонд одобряет и поощряет распространение копий свободного программного обеспечения за плату [3] .

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

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

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

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

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

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

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

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

В заключение вернемся к Astra Linux , о котором я говорил в начале. Как я уже говорил, Astra Linux основан на свободной операционной системе Debian , компоненты которой лицензированы несколькими свободными лицензиями, в том числе GNU GPL . Соответственно, разработчики Astra Linux обязаны лицензировать его также на условиях свободных лицензий.

Разработчики Astra Linux исполняют данную обязанность следующим образом. В публичном доступе, на безвозмездной основе и с открытым исходным кодом распространяется свободная версия операционной системы - Astra Linux Common Edition. При этом на коммерческой основе на условиях несвободной лицензии реализуется специальная версия (Astra Linux Special Edition), которая дополнительно содержит в себе специальное программное обеспечение и настройки операционной системы, направленные на повышение уровня информационной безопасности [6] .

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

Часто различают свободное и открытое ПО (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 (интерфейс прикладного программирования), определённый самой платформой.

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