Open Source (открытый источник) подразумевает предоставление исходного кода программы в открытый доступ. Любой может его просмотреть и изучить.
От исходного кода к исполняемому файлу
Программа изначально представляет собой набор текстовых файлов и папок — исходный код. Процесс сборки преобразует эти файлы в один исполняемый файл (exe-файл или бинарник), запускаемый пользователем. При этом исходный текст конвертируется в последовательность нулей и единиц. Восстановить исходный код из бинарного файла практически невозможно.
Закрытый исходный код: проблемы
Отсутствие открытого доступа к исходному коду создаёт проблемы. Невозможно с уверенностью знать, как работает программа и что она делает. Существует риск вредоносного кода (троянских коней), сбора телеметрии (данных о пользователях, например, нажатиях клавиш) и других нежелательных действий. Программы с закрытым исходным кодом потенциально могут шпионить за пользователем, выполняя несанкционированные действия.
Преимущества Open Source
Открытый исходный код позволяет множеству людей проверять программу на ошибки и уязвимости. Хотя объём кода в крупных проектах огромен (ядро Linux — около 30 миллионов строк, Chromium — более 35 миллионов), коллективные усилия значительно повышают надёжность и безопасность. Существует даже полушутливый «закон Линуса Торвальдса»: чем больше людей смотрят на код, тем быстрее обнаруживаются ошибки.
Каждый желающий может участвовать в разработке Open Source проектов: скачать проект, изучить кодовую базу и внести изменения (требуются навыки программирования).
Open Source vs. Проприетарное ПО
Популярные программы с открытым исходным кодом: дистрибутивы Linux, продукты Mozilla (Firefox, Thunderbird), 7-Zip, LibreOffice, Obsidian, Blender, Git.
Проприетарное (закрытое) программное обеспечение скрывает свой исходный код. К нему относятся Windows, macOS, продукты Adobe (Photoshop), большинство видеоигр и многие другие приложения. Разработчики закрытого ПО защищают коммерческие интересы, предотвращая несанкционированное копирование, модификацию и распространение.
Свободное ПО и Copyleft
Ричард Столлман сформулировал четыре принципа свободного ПО (1993):
- Свободное использование программы с любой целью.
- Изучение принципов работы и адаптация под свои нужды.
- Свободное распространение копий.
- Свободное улучшение и публикация улучшенной версии.
Термин «Open Source» появился позже. Хотя исходный код доступен, его использование может быть ограничено лицензией, содержащей запреты на модификацию, распространение копий или анализ бинарного файла.
Столлман разработал лицензию GPL (GNU General Public License) и концепцию Copyleft — распространение ПО под лицензией, требующей распространения последующих версий и производных работ под той же лицензией. Это предотвращает использование открытого кода в проприетарных проектах.
Монетизация Open Source
Свободное ПО не обязательно бесплатное, но распространение под свободными лицензиями создаёт проблемы с монетизацией. Альтернативные способы: техническая поддержка, настройка программ, интеграция и улучшение функционала на заказ, спонсорство и донаты (как у Blender).
Не все программы должны быть с открытым исходным кодом. Выбор за разработчиками и пользователями. Однако программы, претендующие на доверие, должны обеспечивать прозрачность, предоставляя доступ к исходному коду. Это особенно важно для драйверов и сопутствующего ПО, глубоко интегрированного в систему. По возможности, следует отдавать предпочтение программам с открытым исходным кодом, особенно там, где нет существенной разницы между открытым и проприетарным ПО.