Что такое программное обеспечение с открытым исходным кодом и почему оно важно?

Гики часто описывают программы как «программное обеспечение с открытым исходным кодом» или «бесплатное программное обеспечение». Если вам интересно, что именно означают эти термины и почему они имеют значение, читайте дальше. (Нет, «бесплатное программное обеспечение» не означает только то, что вы можете скачать его бесплатно.)

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

Кредит изображения: Куинн Домбровски на Flickr

Определение открытого исходного кода

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

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

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

Firefox, Chrome, OpenOffice, Linux и Android - некоторые популярные примеры программного обеспечения с открытым исходным кодом, в то время как Microsoft Windows, вероятно, является самой популярной частью программного обеспечения с закрытым исходным кодом.

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

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

Однако «свободные программы» относятся не к этому. «Свободный» в свободном программном обеспечении означает «свободный как в свободе», а не «бесплатный как в пиве». Лагерь свободного программного обеспечения, возглавляемый Ричардом Столлманом и Фондом свободного программного обеспечения, сосредоточен на этике и морали использования программного обеспечения, которое может контролироваться и изменяться пользователем. Другими словами, лагерь бесплатного программного обеспечения сосредоточен на свободе пользователей.

Ричард Столмен. Изображение Fripog на Flickr.

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

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

Типы лицензий

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

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

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

Преимущества для пользователей

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

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

Когда рабочий стол Linux, такой как Ubuntu, представляет новый интерфейс рабочего стола, который не нравится некоторым пользователям, у пользователей появляется больше возможностей. Например, когда был выпущен GNOME 3, многие пользователи настольных компьютеров Linux также были отключены. Некоторые взяли код старой версии GNOME 2 и изменили его, чтобы он работал в последних дистрибутивах Linux - это MATE. Некоторые взяли код для GNOME 3 и изменили его, чтобы он работал так, как они предпочитали - это Cinnamon. Некоторые пользователи просто перешли на существующие альтернативные рабочие столы. Если бы Windows была с открытым исходным кодом, у пользователей Windows 8 было бы больше выбора и гибкости. Просто взгляните на CyanogenMod, популярный дистрибутив Android, управляемый сообществом, который добавляет функции и поддерживает новые устройства.

Программное обеспечение с открытым исходным кодом также позволяет разработчикам «встать на плечи гигантов» и создавать собственное программное обеспечение. Посмотрите на Android и Chrome OS, операционные системы, созданные на базе Linux и другого программного обеспечения с открытым исходным кодом. Ядро Apple OS X - а значит, и iOS - тоже было построено на открытом исходном коде. Valve яростно работает над переносом своей игровой платформы Steam на Linux, поскольку это позволит им создавать собственное оборудование и управлять своей судьбой таким образом, который невозможен в Microsoft Windows.

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