Разница между бесплатным и open source программным обеспечением. Знакомьтесь: программное обеспечение с открытым кодом По с открытым исходным кодом

Как создаются компьютерные программы

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

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

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

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

Что же такое Open Source?

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

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

Что это означает

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

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

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

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

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

Ресурсы

«Open Source» - это фраза торговой марки, описывающая лицензии на программное обеспечение, которые соответствуют определению Open Source. Торговая марка управляется Инициативой Open Source , организацией, основанной на принципах сотрудничества, которая запустила Linux и движение за свободное программное обеспечение. Только программное обеспечение, которое соответствует критериям, описанным в определении открытого источника, может называть себя открытым исходным кодом.

Задолго до того, как термин «открытый исходный код» вошел в употребление, существовало сообщество людей, приверженных идее «Свободное программное обеспечение», фразе, которая относится не к стоимости, а к свободе ее использования и модификации (думать о свободе как о в «свободе слова», а не «свободном пиве»). Это сообщество по-прежнему активно продвигает идеалы свободного программного обеспечения. Чтобы узнать больше об этом, Вы можете посетить The Free Software Foundation https://www.fsf.org/ .

Для подробного изучения того, как и почему разрабатывается программное обеспечение с открытым исходным кодом, прочитайте превосходное эссе Эрика С. Раймонда "The Cathedral and the Bazaar" .

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

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

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

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

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

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

Что такое ПО с открытым исходным кодом?

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

Сообщество людей, работающих с программным обеспечением, позволит любому изучать и изменять код с открытым исходным кодом для любых целей, которые они хотят. Движение с открытым исходным кодом нарушило все барьеры между разработчиками / программистами и поставщиками программного обеспечения, которые побуждают всех открывать сотрудничество. Наконец, ярлык «программное обеспечение с открытым исходным кодом» был официально опубликован на стратегической сессии в Пало-Альто, штат Калифорния, в 1998 году, чтобы способствовать принятию во всем мире этого нового термина, который сам по себе напоминает академическую свободу.

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

Это знак сертификации, принадлежащий Инициативе с открытым исходным кодом (OSI). Термин «программное обеспечение с открытым исходным кодом» относится к программному обеспечению, которое разрабатывается и тестируется посредством открытого сотрудничества, что означает, что любой обладающий необходимыми академическими знаниями может получить доступ к исходному коду, изменить его и распространить собственную версию обновленного кода.

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

Что такое проприетарное программное обеспечение?

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

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

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

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

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

Примеры проприетарного программного обеспечения включают iTunes, Windows, macOS, Google Earth, Unix, Adobe Flash Player, Microsoft Word и т. Д.

Разница между открытым исходным кодом и проприетарным программным обеспечением

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

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

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

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

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

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

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

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

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

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

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

Сводная информация о программном обеспечении с открытым исходным кодом

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

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

Что можно считать открытым кодом?

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

Все знакомы с Microsoft Office , аналогом которого, но уже с открытым кодом, является Open Office . Браузеры Mozilla Firefox и Google Chrome также являются программным обеспечением с открытым исходным кодом. Подобных продуктов очень много, многие используют большое количество софта и не подозревают, что что-то из этого может быть Open Source программой.

Особенности Open Source

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

Лицензия Open Source программ

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

Плюсы и минусы Open Source программ

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

Вторым важным плюсом является то, что мы можем модернизировать данные программы . Хороший программист, разобравшись в коде, может добавить в программу новые опции или улучшить работу уже имеющихся функций. Например, пользователь MacOS не может изменить свою операционную систему, в отличие от Linux , которую каждый может не только настроить по своему усмотрению, но и добавить какие-либо индивидуальные функции. В итоге у него получится совершенно новый продукт, которым очень удобно пользоваться. Если получившаяся программа действительно хороша, то ее можно запатентовать и даже продать (!)

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

Сегодня многие организации переходят на использование программ именно с открытым исходным кодом. Это позволяет снизить расходы и минимизировать вероятность взлома системы.

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

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

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

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

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

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

Компьютерный код, лежащий в основе всех крупных криптовалют и проектов открытого блокчейна, разрабатывается как ПО с открытым исходным кодом. Регуляторы и директивные органы, пытающиеся понять, что такое криптовалюты, но не знакомые с таким ПО, могут заблуждаться, считая, что эти системы разрабатываются (и должны разрабатываться) одной или несколькими коммерческими компаниями. Хотя многое известное программное обеспечение действительно разрабатывается подобным образом (например, Windows корпорации Microsoft или RDBMS компании Oracle), с проектами с открытым исходным кодом дела обстоят иначе, и это отличие может и должно формировать общественное мнение. ПО с открытым исходным кодом создаётся в сотрудничестве, бесплатно распространяется, публикуется открыто и развивается в качестве продукта сообщества, а не собственности одной компании или лица. В этом случае нет монополии, нет одной компании или индивидуума, которые бы создавали и продавали ПО, владели бы им. Точно так же, как нет единственной компании, владеющей сетью биткоина, не существует одной-единственной компании, производящей ПО, которое, функционируя на связанных в интернете компьютерах, образует эту сеть. Подобная децентрализация несёт некоторые фундаментальные блага, которые может быть тяжело понять людям, не знакомым с разработкой ПО. Чтобы лучше осознать мощь и характер открытого исходного кода, будет полезно получить некоторое представление об одном особенно успешном образце ПО с открытым исходным кодом. Речь идёт об операционной системе Linux.

Открытый исходный код повсюду

Трудно подсчитать, сколько раз за день вы пользуетесь Linux, ведь именно эта операционная система лежит в основе работы большинства серверов в интернете. Всякий раз, когда вы посещаете Facebook, Google, Pinterest, Википедию и тысячи других крупных сайтов, сервисы, которые предоставляют вам эти (такие разные) сайты, вы имеете дело с компьютерами, которые, скорее всего, работают на операционной системе Linux. Linux можно найти и гораздо ближе; скорее всего, он у вас под рукой. Скажем, операционная система Android-смартфонов основана на Linux. Если у вас есть Chromebook, то вы пользуетесь ноутбуком на основе Linux. Эта операционная система всё чаще используется в телевизорах, термостатах, мультимедийных системах в самолётах, автомобилях и т.д.

Почему это интересно? Потому что Linux - это не продукт одного программиста или даже группы программистов; в отличие от MacOS или Windows, его не разрабатывала одна или даже дюжина корпораций. У Linux есть тысячи соавторов. Как сообщила в 2015 году Linux Foundation (некоммерческая организация, способствующая открытому развитию операционной системы), приблизительно 14 000 разработчиков из более чем 1300 различных компаний внесли вклад в виде фрагментов программного кода. В одном лишь 2015 году в усовершенствовании кода впервые поучаствовали 2355 разработчиков. Таким образом, путём экстраполяции можно подсчитать, что к 2017-му свою лепту внесли приблизительно 18 000 человек, и это число будет расти.

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

Преимущества открытого исходного кода

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

Рэймонд выделил несколько преимуществ модели открытого исходного кода. Ключевые в контексте нашей дискуссии - следующие:

  • Каждый достойный образец ПО начинается с удовлетворения личного желания разработчика. Мотивацией большинства разработчиков проектов с открытым исходным кодом служит желание лично использовать создаваемые продукты. Они не связаны контрактом, обязывающим их создать что-то для другого; у них есть личная потребность, которую они удовлетворяют. Таким образом, возникает качественно иная мотивация, порождающая детальное знание проблемы.
  • Хорошие программисты знают, что писать. Великие знают, что переписывать (и использовать повторно). Когда разработка осуществляется открыто, можно избежать избыточности, и проблематичные, усложнённые или излишние коды можно идентифицировать и упростить.
  • Когда вы теряете интерес к программе, то ваш последний долг по отношению к ней состоит в том, чтобы передать её в руки компетентного преемника. Люди приходят в проект с открытым исходным кодом и покидают его в зависимости от своих интересов и компетенции. Никто не застревает в работе над проектами, которые больше не интересны. Появляются свежие головы, предлагающие различные точки зрения на давние проблемы или новые перспективы развития.
  • Восприятие пользователей в качестве коллег-разработчиков - самый лёгкий путь к улучшению кода и эффективной отладке ПО. Многие пользователи открытого исходного кода помогают выявлять проблемы и даже предлагают решения. Грань между потребителем и производителем программ с открытым исходным кодом размыта: работа над ПО прозрачна, она ведётся на глазах у публики, и участие в процессе создания доступно всем.
  • При наличии достаточно большой базы бета-тестеров и разработчиков практически любая проблема будет быстро квалифицироваться, а её решение наверняка окажется для кого-то очевидным. Этот постулат назван Законом Линуса в честь Линуса Торвальдса, создателя ядра Linux, который долгое время оставался главным разработчиком этой операционной системы. Когда процесс разработки кода носит закрытый характер, разработчики рискуют пропустить слабое место или не заметить определённую ошибку. Разработка в среде опытных пользователей с уникальным видением повышает вероятность выявления и устранения багов, что делает ПО с открытым исходным кодом более безопасным и отказоустойчивым.

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

Закон и свободное ПО

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

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

Открытый исходный код в криптовалютах и токен-проектах

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

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

Клиент Bitcoin Core - результат работы более чем 450 независимых разработчиков, которые в общей сложности внесли свой вклад в развитие кода более 15 000 раз. ПО доступно для свободного использования и модификации в соответствии с лицензией свободного программного обеспечения MIT, а вся история разработки доступна для обозрения в публичном репозитории на Github - облачном сервисе, позволяющем любому создать аккаунт, загрузить новый код и отслеживать изменения. Если созданный вами репозиторий открыт для всеобщего обозрения, комментариев и предложений об изменениях, то вам даже не нужно платить за аккаунт Github.

Публичный репозиторий также отслеживает так называемые форки оригинального клиента. Форк создаёт клон изначального ПО, который затем можно модифицировать с той или иной целью, не изменяя изначальное хранилище. Разработчики без ограничений совершают форки для репозитория Bitcoin Core на Github, чтобы создать либо специфические приложения, совместимые с биткоином (например, кошелёк для смартфонов), либо новую криптовалюту, которая перестаёт быть совместимой с сетью биткоина и подразумевает создание новой криптовалютной сети (например, так было с лайткоином или Zcash). На сегодняшний день оригинальный клиент Bitcoin Core пережил форк более 10 000 раз, и появляющиеся новые репозитории демонстрируют, что создание производных продуктов продолжается.

На эфириум сейчас приходится как минимум 121 репозиторий, каждый из которых фокусируется на определённом аспекте проекта (например, языках программирования для написания смарт-контрактов, графических браузерах для взаимодействия конечного пользователя с сетью эфириума, совместимых клиентах для участия в работе сети и т.д.). Есть не менее восьми проектов, направленных на разработку совместимых с эфириумом клиентов, а над наиболее популярными клиентами (go-ethereum и Parity) трудятся сотни независимых разработчиков. Код эфириума и его полная история, как и код, а также история биткоина, доступны для публичного обозрения на Github и в других сетевых хранилищах, и все коды выпускаются в соответствии с лицензией LGPL-3, требующей выпускать все будущие производные разработки с такой же лицензией.

Даже недавние проекты, реализованные по инициативе коммерческих стартапов, демонстрируют приверженность кредо открытого исходного кода. Zcash Company разрабатывает протокол Zcash посредством публичного репозитория. Несколько ведущих разработчиков не работают на компанию, а специально созданная некоммерческая организация призвана следить за тем, чтобы постепенно произошёл переход от разработки, осуществляемой компанией, к разработке силами сообщества. База исходного кода Zcash выпускается с лицензией Массачусетского технологического института. Protocol labs, разработчик Filecoin, намерен создать аналогичную открытую модель и уже протестировал её в своём проекте IPFS, работая с кодом в открытых репозиториях и выпуская его с лицензией MIT.

Почему открытый исходный код важен

Криптовалюты и открытые блокчейны способны обеспечить функционал, который был бы регулируемым, если бы его источником была одна-единственная корпорация. Централизованные эмитенты цифровой валюты, такие как Liberty Reserve или E-gold, представляли собой финансовые сервисы и должны были регистрироваться в Управлении Министерства финансов США по борьбе с финансовыми преступлениями, а также получать лицензию, позволяющую переводить деньги, в каждом штате. Если такие токены будут продвигаться на рынке для привлечения инвесторов, они могут быть приравнены к ценным бумагам, и в таком случае потребуется регистрация в Комиссии по ценным бумагам и биржам США. Эти ограничения имеют смысл, поскольку централизованные сервисы связаны с риском того, что сторона, находящаяся в центре всей схемы, не сможет выполнить свои обещания, адекватно протестировав продукт и сделав его безопасным.

Однако технологии вроде биткоина способны предложить аналогичный функционал, будучи открытыми и никому не принадлежащими сетями. Здесь нет никакой корпорации. К этим сетям присоединяются пользователи, а открытое программное обеспечение стимулирует их стремление к сотрудничеству. В конечном счёте все участники приходят к согласию относительно каждого фрагмента данных, необходимых для создания валюты. Децентрализация держится на двух столпах: открытых механизмах консенсуса и программном обеспечении с открытым исходным кодом. Если бы код не был открытым, то как бы участники (не знакомые друг с другом люди в интернете) сумели бы понять систему, к которой они присоединяются, и довериться ей?

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

Программное обеспечение с открытым исходным кодом (Open source) - способ разработки ПО, при котором создаваемый исходный код программ открыт, то есть, общедоступен для просмотра и изменения. Это позволяет всем желающим использовать уже созданный код для своих нужд и, возможно, помочь в разработке открытой программы.

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

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

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

ОС Microsoft Windows

Рис. 39. Логотип OC Windows.

MS Windows (произносится Ви́ндоуз) - семейство операционных систем компании Microsoft (Майкрософт). Глава корпорации Microsoft – Билл Гейтс .

Начиная с 1995 года Windows - самая популярная операционная система на рынке персональных компьютеров – стандарт де-факто. К 2005-му году Microsoft Windows была установлена более чем на 89% персональных компьютеров.

Однако многие пользователи сделали выбор в пользу ОС Windows так как совсем не знакомы с альтернативами, такими как MacOS, Linux, BSD. В России до начала 2000-х годов почти все персональные компьютеры продавались с предустановленной операционной системой Windows. Борьба с распространением пиратских версий программных продуктов привела к появлению интереса к другим операционным системам. Так, например, стало возможным приобрести персональный компьютер с предустановленной бесплатной ОС Linux .

Хронология выпусков версий Windows


· Windows 1.0 (1985)

1. Windows 2.0 (1987)

2. Windows/386 (1987)

3. Windows 3.0 (1990)

4. Windows 3.1 (1992)

5. Windows NT 3.1 (1993)

6. Windows NT 3.5 (1994)

7. Windows 95 (1995)

8. Windows NT 4.0 (1996)

9. Windows 98 (1998)

10. Windows 2000 (2000)

11. Windows Me (2000)

12. Windows XP (2001)

13. Windows 2003 (2003)

14. Windows Vista (2007)

15. Windows рабочее название Vienna (2010)


Интегрированные программные продукты и прикладное ПО

Операционная система Microsoft Windows включает в себя стандартные приложения, такие как браузер Internet Explorer , почтовый клиент Outlook Express , проигрыватель Windows Media Player .

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

Рис. 40. Логотип пакета MS Office.

Для MS Windows существует очень удобный и освоенный большинством пользователей пакет прикладных программ Microsoft Office , включающий:

Текстовый процессор MS Word ,

Табличный процессор MS Excel ,

Органайзер MS Outlook ,

Приложение для подготовки презентаций MS PowerPoint ,

Приложение для управления базами данных MS Access .

Не стоит забывать, что и ОС Windows и абсолютное большинство популярных прикладных программ под Windows имеют лицензию copyright, т.е. являются проприетарным ПО. Соответственно каждая копия такой программы должна приобретаться за деньги. Например, на конец 2006 года цена на Windows XP Home Edition Russian BOX (SP2) - $185, Office 2003 Russian CD – $322.

Используя нелицензионное (пиратское) ПО, защищенное лицензией copyright, вы нарушаете законодательство о защите авторских прав.

ОС GNU/Linux

Рис. 41. Логотип ОС GNU/Linux – пингвиненок Tux.

Операционная система GNU/Linux (произносится «гну ли́нукс») - свободная UNIX-подобная операционная система. Обычно, по историческим причинам и для краткости, эта система называется просто «Linux». Это самая мощная альтернатива MS Windows, популярная в качестве серверной и резко набирающая популярность в качестве настольной (desktop) операционной системы в последние годы, в связи с усилением контроля за соблюдением лицензионного использования ОС Windows со стороны Microsoft в версиях XP и Vista.

К операционной системе GNU/Linux также часто относят программы, дополняющие эту операционную систему, и прикладные программы, делающие её полноценной многофункциональной операционной средой.

В отличие от большинства других операционных систем, GNU/Linux не имеет единой «официальной» комплектации. Вместо этого GNU/Linux поставляется в большом количестве так называемых дистрибутивов , в которых программы GNU соединяются с ядром Linux и другими программами. Самые распространённые в мире дистрибутивы:

Американский Red Hat и его наследник Fedora Core ;

Немецкий SuSE ;

Французский Mandriva (бывший Mandrake );

Не имеющий национальной принадлежности международный дистрибутив Debian GNU/Linux ;

Один из самых старых дистрибутивов Slackware ;

Сравнительно молодой и активно развивающийся дистрибутив Gentoo ;

Молодой, но перспективный дистрибутив Ubuntu Linux .

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

На рынке серверных операционных систем Австралии Linux уже заняла около 30%. За австралийцами последовали и бразильцы. Бразильское правительство решило отказаться от расходования средств на программное обеспечение и перейти с продуктов Microsoft на системы с открытым кодом, в частности, ОС Linux. Главная причина изменений – экономическая. В нашей стране рынок Linux пока невелик.

Файловая система

Вся информация в компьютере хранится в файлах, с которыми и работает операционная система.

Файл (file) - это поименованная последовательность байтов , место постоянного хранения различных видов информации.

Файлы организованы в каталоги, также называемые директориями (directory) или папками (folder). Каталог - это файл, который хранит сведения о других файлах: имя, размер, дату создания, адрес файла на диске.

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

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

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

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

Все файлы условно можно разделить на две части - текстовые и двоичные .

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

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

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

Каждый файл на диске имеет обозначение (полное имя ), которое состоит из 2 частей: имени и расширения , разделенных точкой.

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

В ранних операционных системах длина расширения была ограничена тремя символами, в современных операционных системах это ограничение отсутствует.

Операционная система или менеджер файлов могут устанавливать соответствия между расширениями файлов и приложениями.

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

Драйверы

C ПК могут сопрягаться разнообразные устройства: видеокарта, звуковая карта, принтер, сканер, манипуляторы, дисководы, цифровые фотоаппараты, сотовые телефоны… Каждое из них имеет свой набор команд – свой «язык». Чтобы конкретная операционная система могла управлять конкретным устройством, прибегают к помощи программ–«переводчиков», знающих с одной стороны язык команд конкретного устройства, а с другой – язык конкретной операционной системы, под управлением которой должно работать это устройство.

Такая программа называется драйвером (driver) и поставляется вместе с устройством его производителем. Производители аппаратного ПО, как правило, также размещают драверы, созднных ими устройств, на своих web-сайтах.