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

Понятие открытого программного обеспечения, перспективы и ключевые направления его использования.
Рубрика: Педагогика
Теги: ИКТ
Автор: Андрей Нестеров ✔ 21.01.2017

Нестеров А.К. Открытое и свободное программное обеспечение // Энциклопедия Нестеровых

Содержание
  1. Сущность открытого программного обеспечения
  2. Понятие открытое и свободное программное обеспечение
  3. Определение программного обеспечения с открытым кодом от Olien Source Initiative и Free Software Foundation
  4. Причины распространения открытого программного обеспечения
  5. Лицензии свободного и открытого программного обеспечения
  6. Использование свободного программного обеспечения с открытым кодом
  7. Безопасность программного обеспечения с открытым кодом
  8. Распространение программного обеспечения и систем с открытым кодом
  9. Примеры внедрения свободного и открытого программного обеспечения в мировой практике
  10. Перспективы использования свободного программного обеспечения и систем с открытым кодом в различных сферах деятельности
  11. Приоритетные направления использования свободного программного обеспечения и систем с открытым кодом
  12. Использование свободного программного обеспечения и систем с открытым кодом в телекоммуникационных компаниях
  13. Открытое и свободное программное обеспечение в государственных и муниципальных учреждениях
  14. Свободное программное обеспечение и системы с открытым кодом в образовании
  15. Выводы
  16. Список литературы и источников
  17. Приложение 1
  18. Приложение 2

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

Сущность открытого программного обеспечения

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

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

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

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

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

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

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

К концу 90-х годов прошлого века свободные программы, несмотря на свой очевидный потенциал, не привлекали должного внимания со стороны большинства компаний, занятых в сферах, связанных с использованием компьютерных технологий. Традиционная аргументация и самопозиционирование разработчиков свободного программного обеспечения при взаимодействии с бизнесом неэффективны, а для ведения успешного диалога с коммерческими организациями нужны другие, более прагматичные аргументы, нежели те, что использовались до этого. Одновременно с созданием в 1998 году организации "Инициатива открытых кодов" (Open Source Initiative, OSI) Эриком Реймондом и Брюсом Перенсом, ими был предложен и термин "открытое программное обеспечение" ("open source") вместо термина "свободное программное обеспечение" ("free software"). Определение "free software" было введено Ричардом Столлмэном, основателем проекта GNU, который также ввел и понятие свободной лицензии GPL (GNU Public License).

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

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

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

Несмотря на то, что большинство программ с открытым кодом являются одновременно свободно распространяемыми, существуют и программные комплексы и отдельные программы, которые имеют открытый код, но не являются свободными. Исходный код таких программ находится в открытом доступе, но запрещено его использование для создания других программ. Известным примером такой программы является UnRAR. Также существуют примеры свободных программ с закрытым кодом, например, IBM Lotus Symphony.

Есть отдельная категория программ, которые имеют открытый код, но распространяются на коммерческой основе. Копии таких программ считаются коммерческим программным обеспечением с открытым исходным кодом. Такого рода программы называют также Open Core. Они представляют собой программный комплекс, одновременно содержащий в себе отдельные элементы свободного, открытого и проприетарного программного обеспечения. Разработчики идут на такой шаг, чтобы законно получить статус "Open Source". Зачастую существует открытая бесплатная версия программы и коммерческая версия. Разница между ними заключается в отсутствии в бесплатной версии некоторых функций, которые включены в коммерческую версию.

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

Ричард Столлмэн утверждал, что популярность термина "open source" несколько вредит свободному программному обеспечению. В настоящее время многие пользователи и разработчики не против проприетарного программного обеспечения и продолжают использовать его в своих целях. Такие пользователи и разработчики ограничиваются термином "open source", не используя понятий свободного обеспечения. Умалчивание этических и культурных достоинств свободных программ нежелательно, подобный компромисс в рамках терминологии "open source" может повредить распространению свободного программного обеспечения. В интервью журналисту портала linux.com Столлмэн сказал, что "Even most users of the GNU + Linux system still use proprietary programs, because there are free software developers who don't care about the ethical ideals of free software. Probably they describe themselves as open source supporters, and they let in non-free software. They don't see it as unacceptable. They see it purely as a matter of what is convenient" [30].

В то же время крупные корпорации, по его мнению, намеренно используют термин "open source", не употребляя при этом терминов и понятий, связанных именно со свободным программным обеспечением. Наиболее одиозной, по мнению Столлмана, в этом плане является корпорация Microsoft: "Microsoft is still quite wealthy and powerful, and still using its money to create new obstacles for us. At the same time, we face the new problems of non-free software in Web applications – both with proprietary software installed via browsers, and with Web servers themselves" [30].

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

В противовес Брюс Перенс, являющийся одним из инициаторов введения в обиход термина "open source", всегда утверждал, что открытое программное обеспечение – это один из способов донести до коммерческих компаний идею свободного программного обеспечения. По его мнению, данная задача была успешно выполнена. "My intent has always been for Open Source to simply be another way of talking about Free Software, tailored to the ears of business people, and that it would eventually lead them to a greater appreciation of Richard Stallman's arguments. This has come to pass, and I hope you'll continue to make it so" [31].

Несмотря на цели и задачи авторов термина "open source", которые хотели ликвидировать неоднозначность восприятия открытого программного обеспечения, оно нередко используется применительно к программам, которые противоречат по своей сути определению организации Open Source Initiative. Хотя по замыслу Перенса и Рэймонда, программное обеспечение с открытыми кодами должно было стать не столько противопоставлением, сколько дополнением к свободному программному обеспечению, поскольку, как считали основатели Open Source Initiative, свободному программному обеспечению недоставало коммерческой составляющей.

Все эти негативные факты, связанные с определением понятия программного обеспечения с открытым кодом, существенно затрудняют распространение этого типа программного обеспечения в современном обществе. Кроме того, спекуляция на статусе "Open Source" позволяет недобросовестным разработчикам распространять программное обеспечение с проприетарными ограничениями под видом открытого и свободного или условно-свободного программного обеспечения.

Определение программного обеспечения с открытым кодом от Open Source Initiative и Free Software Foundation

Open Source Initiative разработан и опубликован документ "The Open Source Definition" ("Определение программного обеспечения с открытым кодом") [50]. Документ состоит из 10 пунктов, согласно которым конкретную программу можно считать соответствующей или нет статусу "Open Source". Оригинал документа приведен в Приложении 1.

Согласно определению, данному в документе, одной публикации исходных кодов недостаточно для того, чтобы программа имела статус "Open Source". Лицензия на программное обеспечения не должна ограничивать распространение программы и препятствовать созданию на ее основе производных произведений. В определении также перечислены антиконкурентные и ограничительные условия, которые недопустимы для лицензий на программное обеспечение с открытым кодом.

Приведем подробное значение положений "The Open Source Definition" в переводе Сергея Кузнецова [15].

1. Свободное повторное распространение.

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

2. Исходный код

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

3. Производные продукты

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

4. Сохранность авторского исходного кода

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

5. Отсутствие пристрастий по отношению к отдельным лицам или группам лиц

Для получения максимальной пользы от процесса разработки программного обеспечения с открытыми кодами у как можно большего числа людей и групп должны иметься одинаковые права на свой вклад в open source. Поэтому мы запрещаем наличие в любой лицензии на программное обеспечение с открытыми кодами условий, не допускающих кого бы то ни было к участию в этом процессе. В некоторых странах, включая США, имеются экспортные ограничения на некоторые типы программного обеспечения. В лицензиях, соответствующих данному определению концепции открытых кодов, могут содержаться предупреждения о применимых ограничениях и напоминания об обязанности соблюдения закона; однако в них самих не должны содержаться подобные ограничения.

6. Отсутствие пристрастий к областям применения и деятельности

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

7. Распространение лицензии

Смысл этого пункта состоит в запрете закрытия программного обеспечения косвенными способами, такими как требование соглашения о неразглашении.

8. Лицензия не должна специализироваться для каких-либо продуктов

Этот пункт предотвращает еще один класс лицензионных ловушек.

9. Лицензия не должна ограничивать другое программное обеспечение

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

10. Лицензия должна быть нейтральной по отношению к технологии

Этот пункт в особенности затрагивает лицензии, в которых требуется явные действия для установления контакта между лицензиаром и лицензиатом. Методы, в которых принятие лицензии подтверждается нажатием "согласительной" кнопки (click-wrap), могут конфликтовать с такими важными методами распространения программного обеспечения, как скачивание по FTP, антологии CD-ROM и зеркалирование Web-сайтов; такие методы могут также затруднять повторное использование кода. Лицензии, соответствующие данному определению, должны допускать возможность того, что (a) распределение программного обеспечения может производиться через каналы, отличные от Web, не поддерживающие методы click-wrap, и (b) защищенный лицензией код (или его повторно используемая часть) может выполняться в среде без графического пользовательского интерфейса, в которой невозможна поддержка диалоговых окон.

Можно сравнить определение Open Source Initiative с определением Free Software Foundation, которое заключается в четырех принципах, согласно которым авторы свободных программ передают любому пользователю следующие права и свободы:

– "Нулевая свобода". Программу можно свободно использовать с любой целью

– "Первая свобода". Можно изучать, как программа работает и адаптировать её для своих целей. Условием этого является доступность исходного кода программы.

– "Вторая свобода". Можно свободно распространять копии программы.

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

Оригинал The Free Software Definition опубликован на сайте Free Software Foundation [49].

Очевидно, что в содержательном отношении определения Open Source Initiative и Free Software Foundation практически не отличаются друг от друга. Суть сводится к идентичному набору прав для пользователей программного обеспечения. Большинство проектов "свободного программного обеспечения" и проектов"программного обеспечения с открытым кодом" отвечают как определению Open Source Initiative, так и определению Free Software Foundation.

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

Разница проявляется в популяризации данных категорий.

"Термин "программное обеспечение с открытым кодом" более популярен в деловых кругах, где коммерческие интересы диктуют сохранение максимального нейтралитета в отношении этических и культурных вопросов, при сосредоточении основного внимания на вопросах экономической целесообразности. А термин "свободное программное обеспечение" более популярен среди энтузиастов и разработчиков" [5]. В аналитических публикациях исследователей и правительственных организаций, а также крупных корпораций, которые занимаются разработкой, поддержкой и развитием систем с открытым кодом, проявляется стремление рассматривать явление во всей его полноте. В результате наметилась устойчивая тенденция к созданию обобщающего термина, который бы объединял в себе оба направления движения свободного программного обеспечения.

В настоящее время в мире широко распространились более расширенные определения "Free and Open Source Software" (FOSS) и FLOSS (Free/Libre and Open Source Software). Оба определения идентичны по смыслу и означают "свободное и открытое программное обеспечение". Отличие лишь в том, что во втором варианте слово "свободный" приводится как по-английски, так и по-французски, поскольку в английском языке слово free также имеет значение "бесплатный", которое иногда препятствует чёткому пониманию явления. Данная трактовка активно используется применительно к программному обеспечению, которое является свободным или открытым в соответствии с определениями Free Software Foundation и Open Source Initiative, если не требуется явно разделять эти понятия.

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

Таким образом, открытость программного обеспечения означает коллективную работу над проектом по его созданию, в которой может принять участие любой желающий, а открытость приложений отнюдь не ограничивается свободным доступом к исходному коду. В целом, согласно определению Open Source Initiative, открытый подход к созданию программного обеспечения направлен на повышение его качества и надежности за счет независимой экспертизы и быстрой эволюции исходного кода продукта. Для получения сертификата OSI программное обеспечение должно выпускаться под лицензией, гарантирующей права на свободное использование, повторное распространение и модификацию [16].

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

Причины распространения открытого программного обеспечения

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

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

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

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

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

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

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

Лицензии свободного и открытого программного обеспечения

Исходные коды открытых программ выпускаются либо как общественное достояние, либо на условиях "свободных" лицензий. Свободная лицензия позволяет использовать исходный код программы для своих нужд с минимальными ограничениями, не противоречащими определению Open Source Initiative. Таким ограничением может быть требование ссылаться на предыдущих создателей или требование сохранять свойство открытости при дальнейшем распространении той же самой или модифицированной открытой программы. В некоторых случаях, например, Apache или FreeBSD, эти ограничения очень малы, в других, например, GNU General Public License, достаточно распространять программное обеспечение вместе с исходным кодом и текстом лицензии, не изменяя её.

Наиболее распространены 4 лицензии открытого программного обеспечения:

  1. Универсальная общественная лицензия GNU – GNU General Public License (GPL)
  2. Программная лицензия университета Беркли – Berkeley Software Distribution (BSD).
  3. Программная лицензия Apache Software Foundation – Apache Software License.
  4. Общественная лицензия Mozilla Foundation – Mozilla Public License (MPL)

Тексты всех свободных лицензий собраны на сайте Free Software Foundation [51].

Для того, чтобы гарантировать свободы, указанные в The Free Software Definition, в 1988 году была создана GNU General Public License (GPL). Лицензия GPL разрешает свободное использование, модификацию, копирование исходного кода программы, его отдельных частей, в том числе и в коммерческих целях. В случае использования их в своих разработках разработчик обязуется в дальнейшем предоставлять свои исходные коды по первому требованию.

Лицензия GPL утверждает, что любой, кто распространяет скомпилированную программу, на которую распространяется действие GPL, должен также предоставить её исходный код, а также волен вносить изменения в программу до тех пор, пока эти изменения также будут доступны в виде исходных текстов. Это гарантирует, что если программа однажды была "открыта" обществу, она не может быть "закрыта" за исключением тех случаев, когда все авторы каждой из частей кода, включая модификации, дадут на это согласие. В этом заключается принцип наследования прав или "copyleft", который был придуман Ричардом Столлмэном и призван защищать свободное программное обеспечение в будущем использовании. На большинство программ Linux распространяется действие GPL.

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

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

Со временем, возникали и другие версии лицензии свободного ПО, но до сих пор сохраняется понятие "GPL совместимая лицензия", указывающее на близость этой лицензии принципам впервые юридически закрепленным в GPL. На сегодняшний день, последней версией GPL является версия 3, выпущенная в 2007 году. После ее появления некоторые разработчики предпочли сохранить условия использования своих программ в рамках версии GPL 2.1, другие приняли новую, более строгую лицензию.

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

  1. лицензируя работу на условиях GNU GPL, автор не отказывается от права считаться её автором;
  2. свобода запуска программы с любой целью;
  3. свобода изучения того, как программа работает, и её модификаций, необходимым условием для этого является доступ к исходному коду;
  4. свобода распространения копий программы;
  5. свобода улучшения программы, и выпуска улучшений в публичный доступ необходимым условием для этого является доступ к исходному коду.

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

Другой популярной лицензией является лицензия университета Беркли. BSD лицензия была создана в качестве лицензионного соглашения, которые применяли для распространения UNIX-подобных операционных систем BSD. Лицензия BSD также предоставляет право неограниченного использования в сторонних разработках, но, в отличие от GPL, позволяет в дальнейшем сделать продукт закрытым. BSD-лицензия в отличие от GPL не требует предоставлять исходный код программы. Программное обеспечение, выпущенное под лицензией BSD, разрешается распространять дальше в виде бинарных файлов или исходных текстов только при условии соблюдения нескольких условий. Данные об авторе не могут использоваться с целью рекламирования программы. Это также освобождает автора от ответственности за ущерб, который может быть получен в результате использования программного обеспечения.

Использование этой лицензии ближе к помещению программы в категорию общественного достояния.

Лицензии данного типа применяются во многих проектах свободного программного обеспечения, помимо BSD-версии UNIX, для которых лицензия BSD была изначально создана, а также отдельные программные элементы, написанные с использованием исходных кодов UNIX отдельными программистами.

Права на исходный дистрибутив BSD официально принадлежат попечителям университета Калифорнии (Regents of the University of California) – управляющему органу университета Калифорнии. Причина этого заключается в том, что BSD был разработан в кампусе Беркли университета Калифорнии. Это указание изначальных прав сохранилось в современных версиях BSD (NetBSD, FreeBSD, OpenBSD, DragonFly BSD).

Часть программного обеспечения для Linux находится под действием лицензии BSD.

Основными достоинствами лицензии BSD являются:

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

Недостатком лицензии BSD является принадлежность исходного дистрибутива BSD попечителям университета Калифорнии.

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

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

В результате лицензия Apache обеспечивает следующие преимущества при ее использовании:

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

В тоже время существенными минусами лицензии является необходимость информировать Apache Software Foundation о факте использования исходного кода, лицензированного под лицензией Apache, а также необходимость при распространении программного обеспечения помещать файлы LICENSE и NOTICE в корневую директорию. При этом в каждом лицензируемом файле должна быть сохранена вся исходная информация о копирайтах или патентах, в каждый изменённый файл должна добавляться информация о проведённых изменениях.

Лицензия MPL последней версии 1.1 была разработана в Mozilla Foundation и содержит в себе черты лицензии BSD и GPL. В первую очередь MPL используется в качестве лицензии для Mozilla Suite, Mozilla Firefox, Mozilla Thunderbird и других программ разработанных Mozilla. Она также была адаптирована другими разработчиками, в особенности Sun Microsystems, в качестве лицензии для программного решения OpenSolaris.

Исходный код, скопированный или изменённый под лицензией MPL, должен быть лицензирован по правилам MPL. В отличие от более строгих свободных лицензий, код под лицензией MPL может быть объединен в одной проприетарной программе.

Free Software Foundation считает MPL свободной лицензией с оговоркой, что данная лицензия не гарантирует соблюдения принципа "copyleft". Также в организации Free Software Foundation не рекомендуют использовать MPL в чистом виде, то есть без использования множественного лицензирования совместно с GPL или совместимой с ней лицензией. Наиболее известными продуктами, лицензированными множественным лицензированием MTL и GPL, являются Mozilla Suite и Firefox. Open Source Initiative также считает MPL открытой лицензией.

В таблице приведен сравнительный анализ 4 основных лицензий, под которыми распространяется программное обеспечение с открытым кодом.

Сравнительный анализ 4 основных свободных лицензий

Лицензия

GPL

BSD

Mozilla public license

Apache software license

Требуется указывать имя автора

Да

Да

Да

Да

Измененные файлы должны быть помечены

Да

Нет

Да

Нет

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

Нет

Нет

Нет

Да*

Производные произведения должны распространяться на условиях первоначальной лицензии

Да

Нет

Да**

Нет

Указана территория, на которую предоставляется лицензия

Нет

Нет

Да

Нет

Отсутствие гарантий на ПО

Да

Да

Да

Да

Предоставляется право применить другую лицензию

Нет

Нет указано

Да

Не указано

* Если нет письменного разрешения об использовании наименования продукта создателей лицензии.

** В данном случае речь идет об исходном тексте.

Также отдельно следует выделить лицензии Массачусетсского технологического института – MIT License, а также лицензию Консорциума Всемирной паутины (World Wide Web Consortium, W3C) – W3C License.

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

Наиболее активно лицензии MIT используются в сфере научных разработок и связаны с программными комплексами, которые выполняют различного рода задачи в научных исследованиях. Однако применение лицензий не ограничено этой сферой. Под лицензиями MIT выпускаются и отдельные программы, программные комплексы и библиотеки различных языков программирования, наиболее известными из которых являются библиотека JavaScript "jQuery", растровый графический редактор "Paint.NET" для платформы Windows, PHP5 фреймворк "Symfony".

W3C является организацией, разрабатывающей и внедряющей технологические стандарты для Интернет-проектов, технологий и различного рода разработок, связанных с Интернет-коммуникациями. Цель W3C – помочь компьютерным программам достичь способности ко взаимодействию в сети Интернет путем обеспечения применения единых стандартов в Сети. Лицензия W3C не является таковой в общепринятом смысле. Фактически, существует набор открытых стандартов, которые не защищены никакими патентами и могут использоваться всеми желающими без ограничений и отчислений консорциуму. Использование данных стандартов способствует унификации Интернет-проектов, технологий и программных комплексов, которые связаны с работой Интернет-ресурсов. При этом стандарты W3C составлены таким образом, что могут использоваться частично, не нарушая при этом других стандартов. Наиболее популярные стандарты имеют несколько степеней внедрения, иначе говоря, версий. Стандарты W3C серьезно проработаны, детализированы и доступны для любых категорий пользователей, при этом сфера интересов консорциума охватывает, прежде всего, проекты с открытым исходным кодам, обеспечивая их разработчикам существенную поддержку в рамках соблюдения общепринятых стандартов. Являясь в настоящее время самой авторитетной организацией в области стандартизации Интернет-технологий, W3C стремится создать единую систему отображения информации в сети Интернет, которая одинаково будет восприниматься всеми пользователями.

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

Однако, детальная проработка стандартов W3C накладывает существенный недостаток на их внедрение – любой стандарт W3C проходит 4 стадии согласования: рабочий проект, последний созыв, возможная рекомендации и предлагаемая рекомендация.

Особо следует заметить, что Open Source Initiative, которая существует в первую очередь для того, чтобы предоставлять техническую поддержку программ с открытым исходным кодом, не предлагает особую лицензию, но заинтересована в поддержке различного вида лицензий на программное обеспечение с открытым исходным кодом. В данном случае, идея, лежащая в основе OSI, заключается в привлечении большего числа компаний, работающих с открытыми исходными текстами, позволяя им писать свои собственные opensource-лицензии и сертифицировать их в OSI. Многие компании хотят предоставлять исходный код, но не хотят использовать GPL. Так как они не могут полностью изменить GPL, вместо этого им предлагается разработать свою собственную лицензию и сертифицировать её в этой организации [27].

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

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

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

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

Большая часть электронных писем пересылается через Интернет-серверы со свободным программным обеспечением. Большинство Web-серверов работают под управлением свободного программного обеспечения. Подобное программное обеспечение лежит в основе деятельности Google. Согласно OSI, фактически все основные компоненты Интернета, включая почтовые системы, http-серверы и FTP-серверы, реализованы на основе систем с открытым кодом. Стандартными составляющими в программном комплексе сервера является следующий набор: Linux, Apache, MySQL и PHP. Вместе они образуют аббревиатуру LAMP, в которой, правда, PHP, обозначенный буквой P, может быть заменен на Perl или Python, в зависимости от аудитории и программных особенностей сервера.

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

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

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

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

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

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

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

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

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

Однако, в идеале, сама свободная лицензия должна быть принята каждым государством в мире, так как некоторые пункты лицензии могут конфликтовать с конституциями отдельных стран. В частности, в настоящее время большинство лицензий на программы, программные комплексы и системы с открытым кодом вступают в определенные конфликты с правовыми и налоговыми системами некоторых стран, к которым относятся Россия, США, Япония, Канада, КНДР, Австралия и другие. В основном, конфликты возникают при использовании коммерческими организациями систем с открытым кодом, распространяемых на условиях лицензий GPL, BSD, Apache и лицензий, совместимых с GPL. Суть проблем заключается, в основном, в бюрократических процедурах, которые противоречат самой идее свободно распространяемого программного обеспечения с открытым кодом.

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

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

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

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

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

"В некоторых отчетах для Комиссии по ценным бумагам и биржам США компания Microsoft открыто заявляла о том, что популяризация и распространение открытых систем представляют собой существенную угрозу ее бизнес-модели" [16].

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

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

Однако по опубликованным данным множество открытых систем имеют существенно более низкие рейтинги уязвимостей, чем их частные аналоги. Например, "в Web-сервере с открытым кодом Apache HTTP Server (httpd.apache.org) обнаружено существенно меньше уязвимостей, чем в Microsoft Internet Information Server, и лишь немногим больше, чем в Netscape Enterprise Server" [4].

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

Таким образом, скрытие исходного кода не означает повышения уровня безопасности.

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

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

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

Уровень дефектности свойственен любой системе и пакету программ. Систем с открытым или закрытым кодом имеет множество недостатков, и их процент непосредственно влияет на безопасность системы. По данным Software Engineering Institute, "опытный программист допускает приблизительно один дефект на 100 строк кода. Если в течение жизненного цикла программного обеспечения 99% этих дефектов будут обнаружены и исправлены, то в пакете программ, состоящем из 1 млн. строк исходного кода, останется примерно 1 тыс. дефектов" [39].

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

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

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

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

К тому же, "существуют и другие причины полагать, что системы из семейства Linux и другие альтернативы типа FreeBSD, достаточно безопасны. Они обладают архитектурными преимуществами, одно из которых – строгое разграничение привилегий, реализуемое на всех уровнях системы по умолчанию. Кроме того, политика выпуска исправлений безопасности для таких систем принципиально отличается от зачастую чересчур расслабленного подхода Microsoft" [13].

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

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

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

Распространение программного обеспечения и систем с открытым кодом

Среди наиболее известных и продаваемых программных продуктов с открытым кодом – операционные системы Linux и FreeBSD, система управления базами данных MySQL, скриптовый язык программирования общего назначения PHP, HTTP-сервер Apache, HTTP-сервер Nginx, а также сервер приложений JBossAS.

На сегодняшний день Linux является самым известным примером использования систем с открытым кодом, а также и самой распространенной во всех странах мира системой с открытым кодом, работающей на множестве процессоров, различной архитектуры. Первая версия ядра системы была представлена миру 20 лет назад 17 сентября 1991 года. В отличие от большинства других операционных систем, GNU/Linux поставляется не как монолитное решение с ядром Linux в центре, существуют сотни вариантов поставки этой операционной системы, в которых программы GNU соединяются с ядром Linux и многими другими программами. Такие варианты поставки вместе называются дистрибутивами. Наиболее известными дистрибутивами GNU/Linux являются Ubuntu, Debian GNU/Linux, Red Hat, Fedora, Mandriva, SuSE, Gentoo, Slackware, Archlinux. Российские дистрибутивы – ALT Linux, ASPLinux, Calculate Linux, НауЛинукс и другие.

Статистика w3schools [52] позволяет отследить следующую динамику:

  • По статистике Linux в июле 2011 года занимал 3 место в мире по распространенности среди пользовательских и клиентских операционных систем, после операционных систем семейства Windows и Mac. По данным на июль 2011 года, семейство Windows в совокупности занимало 85,4% рынка, Mac – 7.8%, Linux – 5,3%, решения для мобильных устройств – 1%.
  • В декабре 2016 года семейство Windows занимает 77,8% рынка, Mac – 9,8%, решения для мобильных устройств – 6,4%, Linux – 5,6%. Несмотря на то, что Linux стал занимать 4 место, нужно учитывать, динамику роста мобильных операционных систем.

По данным на январь 2017 года, Linux-системы используются на 37% веб-сайтов в Интернете [54].

Linux чаще всего используют в следующих областях:

  • Серверы, требующие высокого аптайма, поскольку Linux позволяет проводить техобслуживание системы без отключения от основных функций.
  • Компьютеры нестандартной архитектуры, например, суперкомпьютеры – из-за возможности быстрой адаптации ядра операционной системы и большого количества ПО под нестандартную архитектуру.
  • Системы военного назначения – по соображениям безопасности.
  • Компьютеры, встроенные в различные технологически сложные устройства, например, банкоматы, терминалы оплаты, мобильные телефоны, маршрутизаторы и т.п. – из-за широких возможностей по конфигурированию Linux под задачу, выполняемую устройством, а также отсутствия платы за каждое устройство.
  • Массовые специализированные рабочие места – также из-за отсутствия платы за каждое рабочее место и по причине их ограниченной вычислительной мощности, которой может не хватать для проприетарных ОС.
  • Старые компьютеры с ограниченными ресурсами быстродействия и оперативной памяти, для них используются быстрые рабочие окружения или оконные менеджеры, не требовательные к ресурсам (например, KDE, Gnome или Xfce).

Другой популярной операционной системой с открытым кодом является FreeBSD. FreeBSD разрабатывается как целостная операционная систем, это отличает ее от GNU/Linux – в которой ядро разрабатывается одной группой разработчиков, а набор пользовательских программ – другими. В силу специфики лицензии BSD, которая допускает коммерческое использование на основе проприетарной лицензии, а также использование исходного кода в проприетарных продуктов, исходный код операционной системы FreeBSD использовался в различных коммерческих продуктах, в том числе и крупных коммерческих корпораций. Наиболее заметные примеры таких программ – использование сетевого кода BSD в продуктах корпорации Microsoft, а также использование многих компонентов FreeBSD в операционной системе Mac OS X.

Существуют так же и другие открытые операционные системы, например:

  • OpenSolaris – проект по разработке версии операционной системы Solaris с открытыми исходными текстами.
  • OpenBSD – основным отличием OpenBSD от других свободных операционных систем, является изначальная ориентированность проекта на создание наиболее безопасной, свободной и лицензионно чистой из существующих операционных систем.
  • NetBSD – свободно распространяемая, защищенная, кросс-платформенная операционная система. Немного похожа на UNIX, но таковой не является.

Система управления базами данных MySQL является собственностью компании Oracle Corporation, получившей её вместе с поглощённой Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License или под собственной коммерческой лицензией. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации. MySQL является решением для малых и средних приложений. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы. MySQL имеет двойное лицензирование. MySQL может распространяться в соответствии с условиями лицензии GPL. Однако по условиям GPL, если какая-либо программа включает исходные коды MySQL, то она тоже должна распространяться по лицензии GPL. Это может расходиться с планами разработчиков, не желающих открывать исходные тексты своих программ. Для таких случаев предусмотрена коммерческая лицензия, которая также обеспечивает качественную сервисную поддержку.

Скриптовый язык программирования общего назначения PHP интенсивно применяется для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, используемых для создания динамических веб-сайтов. Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений, а также благодаря простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов. В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в августе 2017 года PHP находился на 10 месте среди языков программирования [53]. Крупнейшим сайтом, использующим PHP, является Wikipedia и др.

HTTP-сервер Apache является кроссплатформенным программным обеспечением, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS. HTTP-сервер Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle и IBM WebSphere. По данным Netcraft на январь 2016 года, более 304 млн. веб-сайтов обслуживаются HTTP-сервером Apache, что составляет 33,56% от общего числа веб-сайтов [41]. Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д.

HTTP-сервер Nginx (выступает также как SMTP/IMAP/POP3-прокси сервер) работает на Unix-подобных операционных системах. Разработка ведется с 2002 года, автором является российский программист Игорь Сысоев. Первый релиз выпущен 7 октября 2004 года, последняя на данный момент версия 1.11.5 выпущена 11 октября 2016 года. Nginx используется для статических веб-сайтов и как прокси-сервер перед динамическими сайтами. По данным Netcraft на ноябрь 2016 года [42], более 200 млн. веб-сайтов обслуживаются HTTP-сервером Nginx, что составляет 18,22% и делает его вторым по популярности.

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

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

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

OpenOffice.org состоит из шести компонентов:

  1. Текстовый редактор и редактор web-страниц Writer;
  2. Редактор электронных таблиц Calc;
  3. Средство создания и демонстрации презентаций Impress;
  4. Векторный редактор Draw;
  5. Система управления базами данных Base;
  6. Редактор для создания и редактирования формул Math.

OpenOffice.org является альтернативой пакету программ Microsoft Office.

Наиболее известными проектами для рисования векторных изображений и редактирования фото являются открытые программы Incskape и GIMP.

Amarok – программа для проигрывания аудиофайлов для GNU/Linux, Mac OS X, других Unix-подобных операционных систем и Microsoft Windows.

В рамках проекта Mozilla, запущенного некоммерческой организацией Mozilla Foundation, создается не только интернет браузер Firefox. Фонд Mozilla координирует выпуски почтового клиента Mozilla Thunderbird и Mozilla Messaging. Firefox выпускается для Microsoft Windows, BeOS, Mac OS X, Linux и множества других Unix-подобных операционных систем. Код браузера – свободное ПО и распространяется под тройной лицензией GPL/LGPL/MPL.

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

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

Примеры внедрения свободного и открытого программного обеспечения в мировой практике

Ядро Linux трудится на множестве самых разнообразных устройств, в виде прошивок для телефонов и бытовой техники. Linux поддержали многие производители серверных программ, в том числе и не производящие открытое ПО. В последние годы правительства многих стран обратили свои взгляды системы с открытым кодом как способ разорвать порочный круг, навязанный им монополией Microsoft. За последнее десятилетие было немало случаев, когда крупные организации делали выбор в пользу альтернативных операционных систем, особенно из семейства Linux. В числе организаций, совершивших такой выбор: муниципальные и государственные учреждения и школы, корпорации, харизматичные лидеры компаний, чьи предприятия серьезно пострадали из-за чрезмерной строгости Microsoft в вопросе лицензирования. Рассмотрим несколько масштабных проектов под управлением систем с открытым кодом, которые были предприняты в мировой практике.

  • Департамент общественных финансов правительства Франции в ноябре 2009 года, принял решение о переводе 130 000 рабочих станций на использование свободного программного обеспечения от Mozilla взамен коммерческих аналогов от IBM и Miscrosoft.
  • С октября 2008 года Агентство информационных систем министерства обороны США развивает платформу совместной работы Forge.mil. В апреле 2009 года был запущен ее первый компонент под названием SoftwareForge. К 2011 году было запущено около двадцати компонентов платформы, из планируемых 32 компонентов платформы.
  • Токийская фондовая биржа в январе 2010 объявила о переходе на новую систему под управлением серверов Fujitsu и операционной системы Red Hat Enterprise Linux.
  • В октябре 2009 года, Лондонская фондовая биржа подтвердила информацию о намерении заменить существующую систему, основанную на технологии Microsoft.NET, на аналог на базе Linux.
  • Университет итальянского города Вермона перевел свои настольные компьютеры на Linux и open source. Постепенный переход начался в 2009 году с приложений Firefox, Thunderbird и OpenOffice.
  • В июне 2009 года, почтовый сервис США завершил миграцию 1300 серверов, контролирующих почтовый трафик, на GNU/Linux.
  • На Гаванской компьютерной конференции 11 февраля 2009 года была представлена операционная система Nova – кубинская версия Linux. Данная система должна обеспечить Кубе "технологический суверенитет". Антиамериканский настрой властей Кубы вызван предположением, что исходные коды продуктов Microsoft известны органам безопасности США, а значит, использование Windows представляет потенциальную угрозу.
  • 6 января 2009 года, Министерство информации и коммуникаций Вьетнама утвердило программу перевода правительственных учреждений страны на Linux и свободное программное обеспечение OpenOffice.org, Mozilla Firefox и Mozilla Thunderbird. Завершен перевод был в 2010 году.
  • В Московском государственном университете 25 ноября 2009 состоялась презентация самого мощного cуперкомпьютера в СНГ и странах Восточной Европы. На презентации присутствовал Президент РФ Дмитрий Медведев. Управляющая операционная система – Linux.
  • 25 февраля 2009 года, на сайте Московской православной духовной академии появилась новость, о том, что академия будет использовать дистрибутив Linux на базе Debian. Дистрибутив называется "Школьный Линукс Сервер" и разрабатывается ОАО "ВНИИНС".
  • 15 марта 2010 года Председатель Госдумы и глава "Единой России" Борис Грызлов поддержал идею создания российской операционной системы на базе программного обеспечения с открытым кодом.
  • Стратегию реализации российской программной платформы предложила компания ALT Linux, предполагается провести полную интеграцию свободного программного обеспечения в государственные структуры, в том числе создание на базе СПО решений в сфере электронного правительства.

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

Поставщики приложений с открытым кодом, например, Centric CRM и SugarCRM, только начинают приобретать известность. Все поставщики систем с открытым кодом позволяют клиентам изменять и настраивать исходные коды. При этом SugarCRM поставляет свое программное обеспечение согласно правилам лицензирования Mozilla Public License, а это означает, что права компании SugarCRM распространяются и на доработанные версии программных продуктов. Centric CRM также позволяет вносить изменения в исходные коды своих программ, но при этом перепродавать или распространять измененные приложения нельзя без отдельного договора с поставщиком.

Наиболее значимым проектом по переходу с проприетарных систем на использование систем с открытым кодом за последние годы является пример транснациональной корпорации Google. Компания решила отказаться от Windows, это далеко не первое предприятие, отказавшееся использовать продукты Microsoft в критически важных IT-инфраструктурах. Google осуществил миграцию на Linux на всех своих серверах для управления своими огромными фермами баз данных и другими серверными приложениями. На все новые сервера, рабочие станции, а также персональные рабочие места сотрудников компании будут устанавливаться MacOS X или Linux. Несмотря на то, что в Google давно уже использовали Linux в качестве системы управления серверами, значительная часть оборудования находилась под управлением систем от Microsoft.

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

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

Другим знаковым примером является голландский опыт программы Netherlands in Open Connection. Программу Netherlands in Open Connection, утвержденную в 2007 и завершившуюся в 2011 г., отличает взвешенный и практичный подход: вполне допустимо любое сочетание открытого, свободного, проприетарного и прочего программного обеспечения – лишь бы оно было разумно и экономически обоснованно. Даже с учетом того, что программа не была реализована полностью, а график сорван, от 51 до 70% организаций госсектора внедрили открытые стандарты в систему госзакупок, перешли на открытый формат документов для офисных приложений и т.д. Голландский эксперимент примечателен в плане детальной проработанности процесса и документации для перехода на системы с открытым кодом, регулярности мониторинга, и, в частности, убеждает в том, что открытым должен быть не только исходный код, но и все результаты процесса перехода.

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

В России первым масштабным проектом по внедрению систем с открытым кодом стала программа Министерства информационных технологий и связи РФ "СПО в российских школах" [20]. Он также был организован командой ALT Linux.

Проект начинался в виде эксперимента по использованию систем с открытым исходным кодом в образовательных учреждениях в трех регионах: Пермском крае, Томской области и Республике Татарстан. Планировалось, что в случае успеха, к концу 2009 года пакет с открытым программным обеспечением будет стоять на каждом компьютере во всех российских школах. В рамках этого интерес к проекту был проявлен ведущими отечественными поставщиками дистрибутивов Linux, в частности, ASP Linux и ALT Linux. При этом основной целью являлось не организация поставок и доработок дистрибутивов Linux, а создание инфраструктуры обучения и поддержки пользователей. В ходе реализации проекта были достигнуты серьезные результаты, которыми можно воспользоваться для будущих проектов внедрения систем с открытым кодом. Основными результатами программы следует считать следующие:

  • создание пакета открытого программного обеспечения для средних образовательных учреждений, комплекта методических материалов;
  • создание специального дистрибутива Альт Линукс 5.0 Школьный, который может использовать любая школа в образовательных задачах;
  • на свободной основе выпущен комплект разработчика (Software Development Kit – SDK), используемый при создании школьных дистрибутивов Linux;
  • количество школ, в которых был осуществлен переход на системы с открытым кодом, превысило 2200 единиц;
  • накоплен богатый опыт по внедрению систем с открытым кодом в средних образовательных учреждениях.

Также косвенным результатом реализации проекта стало издание распоряжения от 17 декабря 2010 г. №2299-р, о плане перехода федеральных органов власти и бюджетных учреждений на СПО (2011 – 2015 гг.) и создание Национальной Программной Платформы (НПП) в рамках Программы "Информационное общество (2011-2020 гг)". Успех проекта по внедрению открытого программного обеспечения в школах уже на начальном этапе позволил ускорить работу по данным направлениям.

Внедрение систем с открытым кодом в коммерческих организациях реализуется в несколько этапов:

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

Рассмотрим опыт внедрения открытого программного обеспечения, которое было осуществлено в датской компании DanRus Agro. Инициатором выступило руководство компании – один из топ-менеджеров, являясь сторонником Linux, предложил перевести всю работу на свободное и открытое программное обеспечение, воспользовавшись для этого услугами аутсорсинговой IT-компании. Предварительный анализ перехода осуществлялся нанятой IT-компанией по принципу соответствия будущей программной платформы критериям ITIL. "ITIL – IT Infrastructure Library (библиотека инфраструктуры информационных технологий), т.е. некое средство/технология, помогающая максимально эффективно организовать работу всех подразделений в организации, так или иначе связанных с работой на компьютерах, рабочих станциях и серверах" [3]. Критерии ITIL представлены в Приложении 2. Согласно результатам анализа и оценке соответствия критериям ITIL был сделан следующий вывод: ITIL велит экономить, управлять и контролировать то, чем пользуется организация, – значит, Open Source идеально подходит для DanRus Agro, потому что он бесплатный (экономия денег), имеет открытый код (контролируем) и масштабируем (легко управляем в разных средах).

Проектирование и внедрение также осуществлялось силами сторонней организации в тесном взаимодействии с сотрудниками IT-отдела. Выбор системы для будущей программной платформы был осуществлен методом тестирования. Было протестировано 15 дистрибутивов Linux. Выбор был сделан в пользу Linux Ubuntu 11.04, который используется компанией Dell для фабричной установки на производимые компьютеры.

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

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

Системная интеграция заняла по времени около 36 часов. Поскольку процесс связан с остановкой рабочих процессов, в организации DanRus Agro решили провести все работы в течение двух выходных дней. Запуск обновленной программной платформы на базе Linux Ubuntu прошел успешно, и в понедельник работа всех отделов компании продолжилась в обычном режиме.

Обеспечение совместимости программного обеспечения и документов с проприетарными продуктами, в частности, Microsoft Office потребовало некоторого времени. Трудности возникли из-за использования в компании специфических форм документов, разработанных с помощью Visual Basic и использовавшихся в MS Word и Excel. При переходе на открытое программное обеспечение были выявлены ошибки совместимости OpenOffice.org, последней версией которого на тот момент была OpenOffice.org 3.3. Так документы, созданные с использованием форм документов и сохраненные в форматах, совместимых с продуктами Microsoft, открывались у партнеров DanRus Agro с ошибками. В качестве временной меры, чтобы не останавливать работу компании, было решено использовать комплект офисных программ IBM Lotus Symphony, который относится к свободным продуктам, но имеет закрытый код. Немногим позже ошибки совместимости имеющихся форм документов были полностью устранены, и в DanRus Agro была полностью налажена работа на основе OpenOffice.org 3.3. Одновременно с этим в DanRus Agro был завершен последний этап внедрения новой программной платформы на базе Linux Ubuntu, и в информационно-вычислительную сеть предприятия были включены все рабочие места сотрудников и отдельные рабочие станции компании.

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

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

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

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

Наиболее важным было выяснить перспективы будущего использования программного обеспечения с открытым кодом. Так, среди IT-специалистов насчет будущего систем с открытым кодом наблюдается двойственное мнение: почти половина считает, что за подобным программным обеспечением будущее, другие же придерживаются противоположного мнения или безразличны к данному вопросу. Поскольку люди, не относящиеся к сфере IT-технологий, демонстрируют, в целом, более низкий уровень компьютерной грамотности, их мнение можно оценивать косвенным образом. В частности, примерно 40% пользователей предпочли бы воспользоваться программным обеспечением, которое находится под свободными лицензиями, а примерно 30% уже используют на своих компьютерах свободный софт. При этом не выделено какого-то конкретного преимущества, за которое пользователи делают выбор в пользу открытого программного обеспечения – все основные преимущества распределены в равной степени.

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

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

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

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

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

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

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

Одной из основных сфер, имеющих наиболее высокие перспективы для использования систем с открытым кодом, является телекоммуникационный сектор, который по праву считается одним из лидеров по количеству и опыту внедрения проектов, основанных на OC Linux. Вообще, развитие Linux тесно взаимосвязано с Интернетом, так как широкое распространение и применение OC Linux получила в качестве web-сервера, а развитие Интернет неразрывно связано с UNIX – именно на базе UNIX разрабатывались стек протоколов TCP/IP и первые серверы электронной почты, DNS, Internet News, IRC, WWW.

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

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

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

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

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

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

В настоящее время крупные компании, занимающиеся сборкой и поставкой серверных решений, например, IBM, предлагают телекоммуникационным компаниям использовать в своей работе open source решения для оптимального решения проблем, связанных с масштабированием и интенсивным ростом телекоммуникационных компаний. Специфические особенности телекоммуникационных компаний требуют особого подхода к организации систем. Поэтому традиционным решением является разработка индивидуальной программной платформы и ее последующая интеграция с аппаратным обеспечением телекоммуникационной компании. В результате такого подхода в телекоммуникационной компании создается собственная биллинговая система, а за основу для системы берется в подавляющем числе случаев ядро Linux. Разработкой подобных решений на базе решений с открытым исходным кодом в мире занимается большое количество разработчиков, в том числе специализирующихся исключительно на open source решениях. В результате телекоммуникационная компания получает собственное бесконечно масштабируемое решение для организации системы биллинга и платформу, способную работать с любой серверной архитектурой в будущем. Причем, в случае необходимости, доработки в систему в силу тех или иных причин, например, расширения функционала, вносятся в значительно более короткие сроки.

Задачи, которые ставятся телекоммуникационной компанией перед разработчиком открытого программного обеспечения на базе ядра Linux:

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

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

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

Зачастую документация проприетарных систем по различным причинам оказывается неполной, неточной или вовсе недоступной. В 100% случаев проприетарные программы имеют недокументированные особенности и возможности, которые разработчик программы не счел важными или же намеренно не включил в документацию.

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

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

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

Выделим основные особенности внедрения open source решений в телекоммуникационной сфере:

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

Открытое и свободное программное обеспечение в государственных и муниципальных учреждениях

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

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

За последние два года в мировой практике появилось множество проектов по внедрению открытого и свободного программного обеспечения в государственном и муниципальном секторе. Системы с открытым кодом и свободное программное обеспечение могут приносить существенную выгоду одинаково эффективно в любых регионах мира: США, Европе, России, Азии, Латинской Америке, Ближнем востоке и т.д. Однако рынок услуг по внедрению систем с открытым кодом уже долгое время находится в стадии формирования. До сих пор в большинстве стран, отсутствует инфраструктура поддержки в государственных ведомствах, которая бы отвечала за внедрение open source решений в государственном и муниципальном секторе. В то же время, отсутствуют и типовые программы перевода учреждений на использование систем с открытым кодом.

Вместе с тем мировая практика последнего десятилетия накопила значительный опыт распространения систем с открытым кодом в государственном секторе. На основе изучения отдельных проектов внедрения open source решений в государственных и муниципальных учреждениях можно выделить определенные закономерности внедрения и определить возможные перспективы использования систем с открытым кодом в государственном и муниципальном секторе.

Наибольшая эффективность внедрения систем с открытым кодом во всех странах мира наблюдается в силовых ведомствах и муниципалитетах. Объяснение этому довольно простое.

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

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

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

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

Во время подготовительного этапа проводится инвентаризация аппаратного и программного обеспечения, уточняется перечень задач, которые предстоит решить в ходе миграции. Первый этап миграции занимает около 1,5-2 месяцев. В это время сотрудники муниципальных учреждений переходят к использованию свободного прикладного программного обеспечения под управлением Windows. Стандартный набор программ состоит из офисного пакета OpenOffice.org, веб-браузера Firefox, почтового клиента Thunderbird.

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

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

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

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

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

Из этой ситуации есть два варианта выхода, каждый из которых равновероятен в обозримой перспективе.

Во-первых, подчинение интересов государственных структур и ведомств внедрению эффективных информационных систем на базе разработок с открытым кодом. Как следствие, данный подход требует создание в рамках государственных структур достаточно крупного подразделения, которое будет непосредственно заниматься разработкой программного обеспечения для государственных ведомств. В данном случае приоритет имеют именно специализированные информационные системы, используемые в различных ведомствах. Тогда как за основу для внедрения вполне можно брать в избытке существующие дистрибутивы систем с открытым кодом. Например, тот же Linux Ubuntu, OpenOffice.org, Mozilla Firefox и Thunderbird, а также дополнительных сопутствующих программ.

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

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

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

Многие выступают против продукции Microsoft, в первую очередь, Windows и Microsoft Office, в образовательной сфере главным образом потому, что таким нехитрым способом одна известная корпорация прививает детям стереотип "компьютер=Windows". Появилось даже распространенная шутка на эту тему: "Образовательная игла Microsoft". В дальнейшем при использовании Windows в качестве основной операционной системы складывается проблема одностороннего обучения, когда уже студент работает на машине под управлением Windows и, не зная альтернативы, думает что это единственная операционная система, которая может удовлетворить его потребности в использовании компьютера и периферийного оборудования.

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

Внедрение систем с открытым кодом в образование является одной из стратегических задач ЮНЕСКО, поставленных Окинавской Хартией "Глобального Информационного Общества", подписанной президентами многих стран мира. Целью является внедрение новейших информационных технологий в образование для подготовки молодежи к жизни в глобальном информационном обществе. С учетом стабильности и возможности использования Linux на всех моделях персональных компьютеров как новейших марок, так и уже используемых в школах и вузах переход на Linux обходится дешевле обновлений Windows. Использование систем с открытым кодом не требует от вузов, школ и органов образования приобретения никаких лицензий ни на установку, ни на обновление офисных пакетов программ ни в среде Linux, ни в среде Windows.

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

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

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

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

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

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

  • Первым уровнем использования систем с открытым кодом в образовании является освоение этих технологий школьными и вузовскими преподавателями, специализирующимися в сфере информационных технологий. Это позволяет им использовать их в повседневном образовательном процессе, всесторонне развивая своих учеников и студентов.
  • Вторым уровнем использования систем с открытым кодом в образовании является изучение и освоение этих технологий студентами, для которых информационные технологии – их будущая специальность. Особо важно для студентов IT-специальностей изучение и освоение программирования на языке C/C++, поскольку это из самых распространенных языков для написания открытого программного обеспечения. Владение языком C/C++ позволяет работать с исходными текстами программ с открытым исходным кодом и проводить при необходимости их модернизацию и адаптацию к условиям применения.
  • Третий уровень использования – это ознакомление с технологиями Linux учащихся средних школ и, прежде всего, освоение Linux учащимися средних школ с физико-математическим и информационно-технологическом профилем обучения.
  • Четвертый уровень использования систем с открытым кодом в образовании заключается в прикладном использовании программного обеспечения с открытым исходным кодом для образовательных целей. Например, для написания курсовых и дипломных проектов.
  • Пятым уровнем использования систем с открытым кодом в образование является развертывание в вузах, университетах и научных институтах исследовательских программ на основе использования для обработки данных операционной системы Linux и специализированных приложений с открытым кодом.

Выводы

Системы с открытым кодом тесно связаны со свободным программным обеспечением. Большинство программ с открытым кодом являются свободно распространяемыми. Особенно сильны позиции открытого и свободного программного обеспечения в корпоративном сегменте: в таких областях как языки программирования, операционные системы, интегрированные среды разработки приложений, базы данных, программное обеспечение для web-серверов и сетевой инфраструктуры, где оно успешно, на равных конкурирует с проприетарным. Причем такие зрелые решения, как Red Hat, Java, MySQL и др. можно, а, в ряде случаев даже более предпочтительно использовать в бизнес-целях вместо проприетарных.

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

Основными факторами, влияющими на рост популярности открытых программных продуктов являются следующие:

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

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

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

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

Интерфейсы дистрибутивов Linux (включая предустановленные комплекты программ) от российских разработчиков ALT, Astra Linux, Calculate, Роса и многих других стали простыми и дружелюбными для пользователя, визуализация радует глаз, удобство работы тоже на высоте. Любая рабочая станция и домашний компьютер могут удовлетворить потребности пользователей посредством применения операционных систем на основе Linux и входящего в комплект программного обеспечения. Появились также медиацентры, которые не требуют проприетарных программ и Windows, в принципе, серверные дистрибутивы для разворачивания сервера для "1С:Предприятие" на Linux.

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

Литература и источники

1. Батаев А.В. Операционные системы. – М.: Академия, 2010.

2. Булычева О.С. Технико-экономические аспекты развития мирового рынка программного обеспечения с открытым исходным кодом. // Информационные системы и технологии. – 2011. – №6. – С.56-77.

3. Вендров А.М. Проектирование программного обеспечения экономических информационных систем. – М.: Финансы и статистика, 2010.

4. Воробьев Л.В., Давыдов А.В., Щербина Л.П. Системы и сети передачи информации. – М. Академия, 2009.

5. Голицына О.Л. Информационные технологии. – М.: Инфра-М, 2010.

6. Грекул В.И., Коровкина Н.Л., Куприянов Ю.В. Методические основы управления ИТ-проектами. – М.: Интернет-университет информационных технологий, 2011.

7. Гусятников В.Н., Безруков А.И. Стандартизация и разработка программных систем. – М.: Финансы и статистика, 2010

8. Дмитрик Н.А. Способы осуществления субъективных гражданских прав и исполнения обязанностей с использованием сети Интернет: Автореферат дис. – канд. юр. наук. Москва, 2007.

9. Емельянова Н.З., Партыка Т.Л., Попов И.И. Проектирование информационных систем. – М.: Форум, 2009.

10. Зыков С.В. Основы современного программирования. – М.: Инфра-М, 2009.

11. Иртегов Д.В. Операционные системы. – СПб: Бином, 2011.

12. Карпов Ю.Г. Стартапы по разработке программ с открытым исходным кодом приносят больше прибыли в долгосрочной перспективе. // Менеджмент в России и за рубежом. – 2011. – №4. – С.28-31.

13. Карпов Ю.Г. Теория и технология программного обеспечения. – СПб: БХВ-Петербург, 2008.

14. Кузнецов М. Решения Open Source в телекоме // Connect. – 2006 – №11.

15. Кузнецов С. Определение Open Source (с комментариями). http://citforum.ru/gazeta/114/

16. Маккензи Дж. Растущие возможности для открытого программного обеспечения во время кризиса. // пер. под ред. Маликовой С.В. – СПб: Питер, 2010.

17. Мертенс П. Интегрированная обработка информации. Операционные системы в промышленности. / пер. под ред. Костровой М.Н. – М.: Финансы и статистика, 2007.

18. Молчанов А.Ю. Системное программное обеспечение. – СПб.: Питер, 2010.

19. Назаров С. В., Широков А. И. Современные операционные системы. – М.: Бином, 2011.

20. Официальный сайт проекта "СПО в российских школах" http://freeschool.altlinux.ru/

21. Середа С.Н. Открытое программное обеспечение: проблемы лицензирования и доказательства легальности // Текст доклада на круглом столе "Тема года в IT: лицензирование программного обеспечения – проблемы и пути решения. Возможности Open Source Software" http://www.consumer.stormway.ru/osp_law.htm

22. Столлингс В. Принципы операционных систем. – СПб: Вильямс, 2004.

23. Сюнтюренко О.В. Свободное и открытое программное обеспечение: залог успеха или простая альтернатива? // Администрирование сетей Windows и Linux. – 2011. – №3. – С.49-58.

24. Тексты всех свободных лицензий // The GNU Operating System http://www.gnu.org/licenses/license-list.html

25. Терехов А.Н. Технология программирования. – М.: Интернет-университет информационных технологий, 2007.

26. Хантер Р. Основные концепции программного обеспечения. – СПб: Вильямс, 2007.

27. Alan Hicks "Slackware Linux" – Walnut Creek, Slackware Linux, Inc. 2005.

28. Bitzer J., Schröder P.J.H. The economics of open source software development. – Emerald Group Publishing, 2006.

29. Brown K. Opening the Open Source. – CA: O’Reilly, 2002.

30. Bruce Byfield "Richard Stallman looks back at 25 years of the GNU project" 26.09.2008 http://www.linux.com/archive/feature/147983

31. Bruce Perens. "State of Open Source Message: A New Decade For Open Source" 02.08.2008 http://perens.com/works/articles/State8Feb2008/

32. Classen, H.W. A practical guide to software licensing for licensees and licensors. – IL: American Bar Association, 2008.

33. D. Wheeler Why Open Source Software/Free Software (OSS/FS)? Look at the Numbers! // November 7, 2004. www.dwheeler.com/oss_fs_why.html.

34. David Gelles and Richard Waters "Google ditches Windows on security concerns" // Financial Times – May 31 2010 http://www.ft.com/intl/cms/s/2/d2f3f04e-6ccf-11df-91c8-00144feab49a.html

35. Eric S. Raymond The Art of Unix Programming. – MA: Addison-Wesley, Reading, 2003.

36. Eric S. Raymond The Cathedral & the Bazaar. – CA: O’Reilly, 2001.

37. Fitzgerald F. Understanding Open Source Software development. – MA: Addison-Wesley, 2002. – pp. 9-17.

38. Fitzgerald F., Hissam B., Lakhani S.A. Perspectives on free and open source software. – MA: MIT Press, 2005.

39. Humphrey W. Reflections on Management: How to Manage Your Software Projects, Your Teams, Your Boss, and Yourself. – MA: Addison-Wesley, Reading, 2010.

40. Kenwood C. A Business Case Study of Open Source Software. MITRE Corporation. July 2001

41. Netcraft – January 2016 Web Server Survey http://news.netcraft.com/archives/2016/01/26/january-2016-web-server-survey.html

42. Netcraft – November 2016 Web Server Survey – https://news.netcraft.com/archives/2016/11/22/november-2016-web-server-survey.html

43. Papoza J, eWeek Labs: Open Source Quicker at Fixing Flaws, Ziff-Davis Media, Inc. (September 30, 2002)

44. Software License Management Study Guide. – MI: Ibsma, ECP Media LC, 2009.

45. Stallman R. Avoiding Ruinous Compromises. http://www.gnu.org/philosophy/compromise.html

46. Stallman R. Various Licenses and Comments about Them http://www.gnu.org/licenses/license-list.html

47. Stallman R. Why "Open Source" misses the point of Free Software. http://www.gnu.org/philosophy/open-source-misses-the-point.html

48. Stallman R., Gay J. Free software, free society: selected essays of Richard M. Stallman. – Free Software Foundation. 2002.

49. The Free Software Definition http://www.gnu.org/philosophy/free-sw.html

50. The Open Source Definition http://opensource.org/docs/osd

51. The GNU Operating System http://www.gnu.org/licenses/license-list.html

52. Statistics OS http://www.w3schools.com/browsers/browsers_os.asp

53. TIOBE Programming Community Index http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

54. Usage statistics and market share of Linux for websites http://w3techs.com/technologies/details/os-linux/all/all

Приложение 1

The Open Source Definition

Introduction

Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:

1. Free Redistribution

The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.

2. Source Code

The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost preferably, downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed.

3. Derived Works

The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.

4. Integrity of The Author's Source Code

The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software.

5. No Discrimination Against Persons or Groups

The license must not discriminate against any person or group of persons.

6. No Discrimination Against Fields of Endeavor

The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

7. Distribution of License

The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.

8. License Must Not Be Specific to a Product

The rights attached to the program must not depend on the program's being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution.

9. License Must Not Restrict Other Software

The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software.

10. License Must Be Technology-Neutral

No provision of the license may be predicated on any individual technology or style of interface.

Приложение 2

Критерии ITIL

1. Предоставление сервисов (Service Delivery):

– Управление уровнем сервисов (Service Level Management). Цель процесса – обеспечить эффективный сервис, то есть определить качественные и количественные характеристики. Главное тут – соблюдать баланс между реальными возможностями ИТ и требованиями бизнеса. На этом этапе выполняются такие процессы, как переговоры с клиентом, оценка требований клиента, анализ и обзор производительности сервисов и прочее. В итоге мы получим определенные цифры конфигурации сервисов и расчет затрат. Возможные использования метрик расчетов: расчет стоимости закупки серверов под определенные производственные мощности, расчет времени на внедрение и поддержки сервисов, учет времени возможного обучения персонала и т.д.

– Управление возможностями (Capacity Management). Цель процесса – поддержка оптимального и эффективного по стоимости обеспечения ИТ-сервисов путем оказания помощи организации в использовании ИТ-ресурсов. Будем осуществлять деятельность по управлению над производительностью, рабочими нагрузками, ресурсами, отслеживание стоимостей, планирование емкостей и прочее. В итоге мы получаем: данные о стоимостях, проектную документацию и планы, анализ использования емкостей и т.д.

– IT Service Continuity Management. Цель – гарантированная доступность сервисов ИТ. На этом процессе определяем риски, выявляем слабые места и угрозы. В итоге получаем план работы в непредвиденных случаях и имеем гарантию над доступностью сервисов.

– Управление стоимостями и оплатами (Cost & Charging Management). Цель – предоставить клиентам действительную информацию о стоимости сервисов и обеспечить возврат затрат.

2. Поддержка сервисов (Service Support):

– Управление инцидентами (Incident Management). Цель – восстановить сервис в наименьшие сроки. В деятельность входят: прием запросов, регистрация инцидентов, категоризация инцидентов, уведомление клиентов и прочее. Примеры расчета метрик: количество запросов, время реакции на запросы, оценка сложности и тенденции запросов по сервисам.

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

– Управление конфигурациями (Configuration Management). Целью является помощь в управлении экономическими значениями ИТ-сервисов. Реализация средств мониторинга, идентификации, контроллинга и пр. Достаточно сложный этап при внедрении, возможны проблемы, такие как трудности верификации, распределение ответственностей внутри организации. В итоге мы получаем полный отчет согласно полученным данным.

– Software Control & Distribution. Этап выбора прикладного программного обеспечения, то есть выбор возможной реализации того или иного программного обеспечения для реализации сервисов.

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


Вопросы и комментарии



Задать вопрос

Имя:

Email: (обязательно!)