Прежде чем вы узнаете, что такое программное обеспечение с открытым исходным кодом, вы должны знать, что такое исходный код и двоичный код. Когда кто-то пишет компьютерную программу, он не просто пишет код, который будет непосредственно использоваться машинами. Вместо этого они пишут исходный код, который находится в незашифрованном виде с использованием определенного языка программирования, а затем этот код компилируется/интерпретируется с использованием специальных программ для генерирования двоичного кода. Машины могут понимать и работать только с двоичными кодами. Двоичные коды - это большие куски файлов, которые похожи только на 0101001010, и они представляют собой компьютерную инструкцию, которую машины могут понять и использовать для выполнения работы.
До 1980 года, исходный текст почти всегда предоставлялся авторами бесплатно, с разрешением распространять программу и изменять ее, как хотелось пользователю, без дополнительной оплаты. Но в 1980-е годы ситуация начала меняться, разработчики поняли, сколько усилий необходимо для разработки программ, поэтому перестали предоставлять исходный текст и продолжали распространять только двоичные файлы (либо бесплатно, либо за плату). Появились компании-разработчики программным обеспечением, которые начали создавать «Лицензии» на свое программное обеспечение и соответственно взимать с пользователей плату. У каждой лицензии были свои юридические условия, которые позволяли вам как пользователю делать некоторые специфические вещи в программе/исходном коде и мешали вам делать другие вещи. Например, многие программы требуют от вас подписания Лицензионного соглашения с конечным пользователем (End User License Agreement (EULA)), в котором говорится, что у вас нет права изменять, распространять или читать исходный текст программы, которой вы собираетесь пользоваться. Вы имеете право использовать программу только так, как указано в соглашении, и у вас нет доступа к исходному коду. Мы называем эти программы закрытым исходным кодом или проприетарными программами.
В 1985 году человек по имени Ричард Столмен, которому не понравилась нынешняя ситуация, создал так называемый Фонд свободного программного обеспечения (FSF), который пропагандировал свободное программное обеспечение. Он разработал 4 критерия по которым программное обеспечение считалось свободным:
Все это не требует предварительного письменного разрешения автора программы пользователю. Просто увидев лицензию и зная, что это лицензия свободных программ, вы можете делать все 4 вещи, изложенные выше, и именно это называется свободными программами. Сегодня существуют десятки лицензий свободных программ, которыми разработчик программ пользуется, чтобы поместить свою программу под них. Наиболее известной из них является GPL (GNU Public License), которая была первоначально выпущена в 1989 году. Сегодня в мире существуют миллионы свободных программ.
В 1998 году людям не понравилась иллюзия, созданная термином «свободное программное обеспечение», потому что это может подтолкнуть людей к мысли, что речь идет о бесплатности (как о бесплатном кофе), а не о свободе. Поэтому, чтобы устранить эту иллюзию, была создана инициатива Open Source, и термин open source (открытый исходный код) стал использоваться для программного обеспечения, которое соответствует критериям свободного программного обеспечения. Сегодня мы говорим так обо всем программном обеспечение, к которому можно свободно получить его исходный код , как о программном обеспечение с открытым исходным кодом (оно должно быть лицензировано в рамках утвержденной лицензии с открытым исходным кодом). Есть некоторые небольшие технические подробности о реальной разнице между свободными программами и открытыми исходными текстами, но оба они могут рассматриваться как две стороны одной медали. Свободное программное обеспечение - это философское движение, которое считает, что создание свободного программного обеспечения - это моральный выбор, а все несвободное программное обеспечение аморально. Тем не менее, движение с открытым исходным кодом заявляет, что это техническое движение, которое полностью сосредоточено на коде, как его улучшить и сотрудничать вокруг него, и не является философским движением и не смотрит на тему с этой точки зрения. Сегодня большинство программ, с которыми вы, вероятно, столкнетесь в своей жизни, имеют открытый исходный код. Такие вещи, как Firefox, известный веб-браузер, или Linux, известная операционная система, или WordPress, известная CMS, все с открытым исходным кодом. Мы употребляем термин «открытый исходный код» чаще, чем термин «свободное программное обеспечение».
Да.
Не все программное обеспечение с открытым исходным кодом является бесплатным. Авторы программного обеспечения могут решить потребовать от вас плату перед загрузкой программного обеспечения. Но вам по-прежнему предоставляется исходный код вместе с правами на его распространение и модификацию, как и для любого другого программного обеспечения с открытым исходным кодом. Это, конечно, означает, что первый пользователь, который скачает программу, имеет право и возможность просто взять исходный код и бесплатно передать его всем остальным. Вот почему, хотя разработчики с открытым исходным кодом могут взимать плату за свое программное обеспечение, использование такой модели, как правило, нецелесообразно. Вместо этого большинство проектов с открытым исходным кодом зарабатывают деньги, предоставляя услуги, поддержку, дополнения и другие дополнительные функции только для тех, кто будет это оплачивать.
У каждого разработчика на это свои причины:
Не забывайте, что открытый исходный код не только для разработчиков. Даже самые обычные пользователи, которые не являются разработчиками, вносят свой вклад в проекты с открытым исходным кодом многими способами, например, тестируя, продвигая его, предоставляя поддержку другим пользователям и многое другое.
Нет.
Мы используем термин «open source» и во многих других областях. Например, у нас есть нечто, называемое «открытой аппаратурой», - это любое электронное устройство, которое предоставляет свою конструкторскую схему или драйверы аппаратуры под лицензией Open Source. У нас есть так называемое «Открытое обучение», которое представляет собой процесс обучения с использованием методологий и инструментов под свободными лицензиями. Принцип Open Source и во многих других местах.