Домашняя » как » Что такое программное обеспечение с открытым исходным кодом и почему оно имеет значение?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    GPL, или GNU General Public License, широко используется многими проектами с открытым исходным кодом, такими как 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..


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