Включите исполнение JavaScript в браузере, чтобы запустить приложение.

История open source

18 сен 2024
История open source: от идеи свободного ПО до монетизации крупных проектов. Современное состояние и перспективы открытого исходного кода

Введение в open source

Основы open source — открытого исходного кода — были заложены еще в 50-х годах XX века. Примерно в это же время велись разработки IBM 701. Разработчики безвозмездно делились друг с другом своими достижениями, а проприетарного программного обеспечения еще не существовало. Именно в этот период зародилась философия свободного ПО, которая сохраняет популярность и по сей день.

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

Ранние годы и философия

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

Появление идеи свободного ПО

Точкой отсчета в истории создания концепции свободного ПО принято считать начало пятидесятых годов XX века. Именно в этот период на рынке появились серийные IBM 701, предназначенные для госпредприятий, научных институтов и военных целей. Стоимость аренды одного такого агрегата достигала порядка 12-20 тысяч долларов в месяц, что в наши дни соответствует примерно 100 тысячам. При этом оборудование поставлялось без софта — программы передавались из рук в руки, а затем устанавливались на арендованное железо. Можно сказать, что для этих компьютеров впервые было создано ПО, соответствующее концепции свободного распространения. 

Для IBM 701 и последующих серий была создана внушительная основополагающая база ПО. Например, появилась примитивная на сегодняшний день операционная система Share Operating System или сокращенно SOS. Были разработаны языки программирования, в том числе высокоуровневые Speedcoding и Fortran. 

Появление IBM 701 стало толчком к дальнейшему развитию ЭВМ:

  • 1956 год — на рынок вышли Bendix G-15 и Librascope LGP-30;
  • 1960 год — появился мини-компьютер PDP-1, для обслуживания которого было достаточно одного оператора;
  • 1965 год — создан быстрый и компактный мини-компьютер PDP-8, тысячи единиц которого были проданы различным научным центрам и предприятиям.

Интересно, что для каждой из новых моделей компаниями-производителями разрабатывалось отдельное ПО. Именно так появились ОС Besys, CP/CMS, Compatible Time-Sharing System. Такие операционные системы продавались отдельно от железа и могли стоить дороже самого оборудования.

В 1965 году на основе Besys началась разработка инновационной ОС Multics, в которой планировалось реализовать в том числе иерархическое дерево в централизованной файловой системе, динамическое связывание и разделение памяти процессов. Над новинкой одновременно работали две компании: General Electrics и Bell Labs. Последняя вышла из проекта до его завершения, однако двое ее сотрудников решили продолжить работу.

Деннис Ритчи и Кен Томпсон использовали готовые наработки по Multics, и в 1969 году на свет появился проект Unix. Спустя четыре года новая система была представлена на рынке ПО, быстро завоевав популярность среди пользователей.

Аналитики выделяют пять причин быстрого роста востребованности Unix.

  • Требование антимонопольных регуляторов об отдельной продаже ПО. Компании-производители железа, которые поставляли собственные разработки, были вынуждены продавать программное обеспечение отдельно от оборудования. Появление инновационной операционной системы стало хорошей альтернативой продуктам монополистов.
  • Доступная цена. Антимонопольные требования распространялись и на Bell Labs, принадлежавшую телеком-гиганту AT&T, в результате чего разработчики не могли продавать свою ОС по завышенной стоимости.
  • Нацеленность на массовый рынок. Продукты технологических гигантов были в первую очередь ориентированы на корпорации и другие масштабные компании или научные центры. Поэтому появление Unix с опенсорс стало настоящим прорывом для любителей технического прогресса.
  • Возможность замены модулей. В Unix было предусмотрено несколько модулей, каждый из которых предназначался для решения конкретных задач. При необходимости их можно было заменить на другие.
  • Адаптивность под развитие технологий. В отличие от ОС, разработанных производителями железа, Unix можно было переносить с одного ПК на другой, а также быстро адаптировать под новые модели, вышедшие на рынок.

Unix нельзя было назвать свободным ПО, так как по требованию компании пользователям запрещалось вносить изменения в исходный код или передавать его кому-либо. Однако вмешательство антимонопольной службы частично переломило ход событий, обязав производителя предоставлять университетам операционную систему совместно с ограниченным доступом к исходному коду. Благодаря этому на основе Unix в Калифорнийском университете была создана новинка — ОС Berkley Software Distribution или BSD.

По сравнению с прототипом BSD выигрывала по всем параметрам, могла похвастаться регулярными обновлениями, внедрением передовых сетевых технологий и ценой в пределах 750-1000 долларов. В результате Unix стала терять свои позиции, а AT&T — прибыль.

Чтобы исправить ситуацию, монополист наложил ограничение на предоставление исходного кода. А в 1983 году отделившаяся от AT&T Bell Labs, на которую перестали давить антимонопольные законы, подняла стоимость своей ОС до десятков тысяч долларов. Это стало возможным благодаря началу разработки лицензий на ПО и появлению юридических запретов на внесение изменений в исходный код разработчиками, не имеющими отношения к компании-производителю. 

Финальной точкой стал суд между Apple Computer Inc. и Franklin Computer Corp., скопировавшей ОС Apple. После разгромной победы «Яблока» все ПО было признано проприетарным. 

Вклад Ричарда Столлмана и создание GNU

Ричард Столлман — основатель движения свободного ПО. То есть в развитии опенсорс история этого одиозного программиста сыграла по-настоящему решающую роль. 

Впервые с задачей разработки свободного ПО Столлман столкнулся в 1971 году, когда об авторском праве на программное обеспечение еще даже речи не шло. В составе команды лаборатории Al Lab, принадлежавшей компании MIT, вместе с Ричардом работали любители программирования, которых он сам называл хакерами. Вместе они разработали текстовый редактор EMACS для Unix. Впоследствии этот продукт был продан коммерческому дистрибьютору.

В начале восьмидесятых команда развалилась: многие разработчики перешли в частные компании, создание новых версий ПО оказалось осложнено появлением NDA, возможностей для сотрудничества становилось все меньше. Однако Ричард Столлман был уверен, что проприетарное ПО — это не то, что нужно развивающемуся обществу. По его убеждениям, у пользователей должна была быть возможность свободно распространять, изменять или дорабатывать существующее программное обеспечение. И он был готов отстаивать свою точку зрения, невзирая на возможные риски.

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

В результате в декабре 1984 года на свет появился проект GNU — программная система, полностью совместимая с Unix, но при этом с возможностью свободного распространения.

Важность лицензирования (GNU GPL)

GNU расшифровывается как Gnu’s Not Unix, что в переводе означает «GNU — это не Unix». По сути, Столлман создал копию коммерческой программы, поэтому пользователям было легко освоить ее и переносить с одного устройства на другое. Однако GNU была написана Ричардом с нуля, поскольку, по словам самого программиста, код Unix был абсолютно бесполезен из-за привязки к авторскому праву и запрету на его свободное распространение.

Столлман и его единомышленники:

  • сформулировали понятие свободного программного обеспечения;
  • разработали принципы, согласно которым любой пользователь GNU мог использовать ее, дорабатывать, исследовать, передавать другим людям.

В 1985 году был опубликован манифест GNU, целью которого стало получение технической и финансовой поддержки для ведения дальнейших разработок операционной системы. Тогда же был создан некоммерческий Фонд свободного ПО (FSF), объединивший программистов по всему миру. 

В процессе создания и обкатки GNU встал вопрос о юридической защите программы, созданной по принципам опен сорс. Так появилась лицензия GPL — General Public License или «Стандартная общественная лицензия», которая была представлена в 1989 году. Интересно, что в качестве антагониста «авторского права» в GPL присутствовало так называемое «авторское лево», то есть требование признать оригинальную программу и все ее последующие версии или дополнения свободным ПО. Эта идея прижилась лишь частично, поэтому впоследствии были разработаны лицензии, позволяющие превратить опен сорс ПО в проприетарный продукт.

Проект GPL продолжал развиваться, и в 1991 году была выпущена его адаптивная версия — LGPL или Lesser General Public License, что в переводе означает «малая общедоступная лицензия». Эта лицензия позволяет объединять код свободного и проприетарного ПО, но не во всех случаях. Она была создана специально для библиотек в коммерческих программах, поскольку обычная GPL делает библиотеку доступной лишь для свободных программ.

Расцвет open source

Создание операционной системы Linux и вклад Линуса Торвальдса

GNU, созданная по подобию Unix, состояла из множества модулей, в том числе почтовых программ, компиляторов, отладчиков, командных оболочек, текстовых редакторов. Причем часть из них можно было использовать самостоятельно. Однако существенным недостатком GNU было отсутствие ядра ОС. Поэтому появление в 1991 году ядра Linux от Линуса Торвальдса, которое базировалось все на той же Unix, стало настоящим прорывом в истории опенсорс. 

В 1992 году ядро Linux получило лицензию GPL, то есть стало общедоступным. Это привело к тому, что любители и энтузиасты начали запускать на нем компоненты GNU, создав по сути новую свободную операционную систему. Она получила двойное название — GNU/Linux. К 1997 году число пользователей Linux выросло примерно до 3,5 миллиона человек. 

Коммерческое принятие и влияние

Философия опенсорс продолжала расти и развиваться, влияя в том числе на различные коммерческие проекты. Так, в середине последнего десятилетия XX века безусловной популярностью пользовался браузер Netscape Navigator. Его производитель — компания Netscape Communications — также занималась разработкой серверного ПО.

После появления Internet Explorer от Microsoft Netscape стал довольно быстро терять свои позиции. Причина — браузер от Microsoft поставлялся совместно с OS Windows и был бесплатным. Кроме того, у компании были все шансы стать монополистом в отношении стандартов HTTP и HTML. Если бы она выдавил Netscape с рынка, под ударом оказались бы и дальнейшие разработки ПО.

Угроза со стороны Microsoft побудила основателя Netscape сделать исходный код своего браузера открытым. Это не помогло компании удержаться на рынке, однако опенсорс Netscape стал прототипом для нового браузера — Mozilla Firefox, который, в свою очередь, уверенно вытеснил Internet Explorer, замкнув круг.

Большое количество опенсорс-кода и проектов стало вызовом. Перед индустрией встал вопрос, где все это хранить и как организовать совместную работу множества разработчиков. В результате на основе ядра Linux и GNU были созданы службы управления репозиториями, изменениями в проектах с открытым исходным кодом без потери их эффективности. В том числе — платформы GitHub и GitLab.

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

Кстати, корпорация Google также активно поддерживает проекты с открытым исходным кодом, например, TensorFlow, Chromium, Android, Kubernetes.

Будущее open source

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

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