История свободного и открытого программного обеспечения начинается с появлением компьютерного программного обеспечения в первой половине 20-го века. В 1950-х и 1960-х годах компьютерное операционное программное обеспечение и компиляторы поставлялись как часть покупки оборудования без отдельной платы. В то время исходный код — форма программного обеспечения, удобочитаемая человеком — обычно распространялся вместе с программным обеспечением, предоставляя возможность исправлять ошибки или добавлять новые функции. Университеты были ранними последователями вычислительной техники. Многие из модификаций, разработанных университетами, были открыто распространены в соответствии с академическими принципами обмена знаниями , и возникли организации для содействия обмену.
По мере развития крупномасштабных операционных систем все меньше организаций разрешали вносить изменения в операционное программное обеспечение, и в конечном итоге такие операционные системы стали закрыты для модификации. Однако утилиты и другие приложения с дополнительными функциями по-прежнему используются совместно, и были сформированы новые организации для содействия совместному использованию программного обеспечения.
Концепция свободного обмена технологической информацией существовала задолго до появления компьютеров. Например, в ранние годы развития автомобилестроения одно предприятие владело правами на патент на двухтактный бензиновый двигатель, первоначально поданный Джорджем Б. Селденом . [1] Контролируя этот патент, они могли монополизировать отрасль и заставлять производителей автомобилей придерживаться своих требований или рисковать судебным иском. В 1911 году независимый автопроизводитель Генри Форд выиграл оспаривание патента Селдена. В результате патент Селдена стал фактически бесполезным, и была сформирована новая ассоциация (которая в конечном итоге стала Ассоциацией производителей транспортных средств ). [1] Новая ассоциация установила соглашение о перекрестном лицензировании между всеми автопроизводителями США: хотя каждая компания разрабатывала технологию и регистрировала патенты, эти патенты распространялись открыто и без обмена деньгами между всеми производителями. [1] К тому времени, когда США вступили во Вторую мировую войну, 92 патента Форда и 515 патентов других компаний распределялись между этими производителями без какого-либо обмена деньгами (или судебных исков). [1] [ неправильный синтез? ]
Компьютерное программное обеспечение было создано в первой половине 20-го века. [2] [3] [4] В 1950-х и в 1960-х годах почти все программное обеспечение было создано учеными и корпоративными исследователями, работающими в сотрудничестве, [5] часто совместно используемое как программное обеспечение общественного достояния . Таким образом, оно, как правило, распространялось в соответствии с принципами открытости и сотрудничества [ сломанный якорь ], давно установленными в академических кругах , и не рассматривалось как товар сам по себе. Такое коллективное поведение позже стало центральным элементом так называемой культуры хакерства (термин с положительным подтекстом среди программистов свободного программного обеспечения).
Программное обеспечение для работы компьютера и компиляторы поставлялись как часть закупок оборудования без отдельных сборов. В это время исходный код , человекочитаемая форма программного обеспечения, как правило, распространялся вместе с машинным кодом программного обеспечения , поскольку пользователи часто сами модифицировали программное обеспечение, поскольку оно не работало бы на другом оборудовании или ОС без изменений, а также для исправления ошибок или добавления новых функций. [6] [7] [ неудачная проверка ] [8] Считается, что первым примером бесплатного и открытого программного обеспечения является система A-2 , разработанная в подразделении UNIVAC компании Remington Rand в 1953 году, [9] которая была выпущена для клиентов с исходным кодом. Им было предложено отправить свои улучшения обратно в UNIVAC. [10] Позже почти все программное обеспечение для мэйнфреймов IBM также распространялось с включенным исходным кодом. Группы пользователей, такие как группа IBM 701 , называемая SHARE , и группа Digital Equipment Corporation (DEC), называемая DECUS , были сформированы для содействия обмену программным обеспечением. Операционная система SHARE , изначально разработанная компанией General Motors , распространялась компанией SHARE для компьютеров IBM 709 и 7090. В некоторых университетских компьютерных лабораториях даже существовала политика, требующая, чтобы все программы, установленные на компьютере, поставлялись с опубликованными файлами исходного кода. [11]
В 1969 году была построена сеть Advanced Research Projects Agency Network (ARPANET), трансконтинентальная высокоскоростная компьютерная сеть. Сеть (позже замененная Интернетом) упростила обмен программным кодом. [6]
Некоторые свободные программы, разработанные в 1970-х годах, продолжают разрабатываться и использоваться, например, TeX (разработанный Дональдом Кнутом ) [12] и SPICE [13] .
К концу 1960-х годов наступили перемены: по мере развития операционных систем и компиляторов языков программирования затраты на производство программного обеспечения резко возросли по сравнению с аппаратным обеспечением. Растущая индустрия программного обеспечения конкурировала с пакетными программными продуктами производителей оборудования (стоимость пакетных продуктов была включена в стоимость оборудования), арендованные машины требовали поддержки программного обеспечения, не принося при этом дохода за программное обеспечение, и некоторые клиенты, способные лучше удовлетворять свои собственные потребности, [14] не хотели, чтобы затраты на программное обеспечение производителя были объединены со стоимостью аппаратного продукта. В антимонопольном иске США против IBM , поданном 17 января 1969 года, правительство США заявило, что пакетное программное обеспечение является антиконкурентным. [15] Хотя некоторое программное обеспечение продолжало поставляться бесплатно, росло количество программного обеспечения, которое продавалось только по ограничительным лицензиям.
В начале 1970-х годов AT&T бесплатно распространяла ранние версии Unix для правительства и академических исследователей, но эти версии не имели разрешения на распространение или распространение измененных версий и, таким образом, не были свободным программным обеспечением в современном смысле этого слова. После того, как Unix стал более распространенным в начале 1980-х годов, AT&T прекратила бесплатное распространение и взимала плату за системные исправления. Поскольку перейти на другую архитектуру довольно сложно, большинство исследователей платили за коммерческую лицензию.
Программное обеспечение не считалось объектом авторского права до 1974 года, когда Комиссия США по новым технологическим использованиям защищенных авторским правом работ (CONTU) постановила, что «компьютерные программы, в той мере, в которой они воплощают оригинальное творение автора, являются надлежащим объектом авторского права». [16] [17] Таким образом, программное обеспечение не имело прилагаемых лицензий и распространялось как программное обеспечение, находящееся в общественном достоянии , как правило, с исходным кодом. Решение CONTU, а также более поздние судебные решения, такие как Apple против Франклина в 1983 году по объектному коду , предоставили компьютерным программам статус авторского права литературных произведений и положили начало лицензированию программного обеспечения и бизнес-модели программного обеспечения с закрытым исходным кодом . [18]
В конце 1970-х и начале 1980-х годов поставщики компьютеров и компании, занимающиеся только программным обеспечением, начали регулярно взимать плату за лицензии на программное обеспечение , продавая программное обеспечение как «Программные продукты» и налагая правовые ограничения на новые разработки программного обеспечения, которые теперь рассматриваются как активы, посредством авторских прав , товарных знаков и лизинговых контрактов. В 1976 году Билл Гейтс написал эссе под названием « Открытое письмо любителям », в котором он выразил тревогу по поводу широкого распространения продукта Microsoft Altair BASIC любителями без уплаты лицензионного сбора. В 1979 году AT&T начала применять свои лицензии, когда компания решила, что может получить прибыль от продажи системы Unix. [19] В письме-объявлении от 8 февраля 1983 года IBM ввела политику отказа от распространения исходных текстов с купленным программным обеспечением. [20] [21]
Чтобы увеличить доходы, общая тенденция стала заключаться в том, чтобы больше не распространять исходный код (легко читаемый программистами), а распространять только исполняемый машинный код , который был скомпилирован из исходного кода. Одним из людей, особенно расстроенных этой новой практикой, был Ричард Столлман . Он был обеспокоен тем, что больше не мог изучать или дополнительно модифицировать программы, изначально написанные другими. Столлман считал эту практику этически неправильной. В ответ на это он основал проект GNU в 1983 году, чтобы люди могли использовать компьютеры, используя только свободное программное обеспечение . [8] Он основал некоммерческую организацию Free Software Foundation в 1985 году, чтобы более формально организовать проект. Он изобрел copyleft , правовой механизм для сохранения «свободного» статуса произведения, защищенного авторским правом, и реализовал его в GNU General Public License . Лицензии Copyleft позволяют авторам предоставлять пользователям ряд прав (включая права на использование работы без дополнительных сборов и права на получение, изучение и изменение полного соответствующего исходного кода программы), но требуют, чтобы производные оставались под той же лицензией или без каких-либо дополнительных ограничений. Поскольку производные включают комбинации с другими оригинальными программами, последующие авторы не могут превратить исходную работу в проприетарное программное обеспечение и приглашаются вносить свой вклад в общее достояние Copyleft. [6] Позже другие разработали вариации таких лицензий.
Однако все еще были те, кто хотел поделиться своим исходным кодом с другими программистами и/или с пользователями на бесплатной основе, тогда их называли «любителями» и « хакерами ». [22] До появления и широкого распространения Интернета существовало несколько альтернативных способов сделать это, включая размещение в компьютерных журналах (таких как Dr. Dobb's Journal , Creative Computing , SoftSide , Compute!, Byte и т. д.) и в книгах по программированию, таких как бестселлер BASIC Computer Games . [23] Хотя все еще защищенный авторским правом, аннотированный исходный код для ключевых компонентов системного программного обеспечения для 8-битных компьютеров Atari был опубликован в книгах для массового рынка, включая The Atari BASIC Source Book [24] (полный исходный код для Atari BASIC ) и Inside Atari DOS (полный исходный код для Atari DOS ). [25]
Группа пользователей SHARE, основанная в 1955 году, начала собирать и распространять свободное программное обеспечение. Первое документированное распространение от SHARE датировано 17 октября 1955 года. [26] «SHARE Program Library Agency» (SPLA) распространяло информацию и программное обеспечение, в частности на магнитной ленте.
В начале 1980-х годов так называемые ленты DECUS [27] были всемирной системой передачи бесплатного программного обеспечения для пользователей оборудования DEC. Операционные системы обычно были проприетарным программным обеспечением , но многие инструменты, такие как редактор TECO , текстовый форматер Runoff или утилита листинга файлов List и т. д., были разработаны для облегчения жизни пользователей и распространялись на лентах DECUS. Эти пакеты утилит приносили пользу DEC, которая иногда включала их в новые выпуски своей проприетарной операционной системы. Даже компиляторы могли распространяться, и, например, Ratfor (и Ratfiv ) помогли исследователям перейти от кодирования Fortran к структурному программированию (подавление оператора GO TO). Лента Decus 1981 года была, вероятно, самой инновационной, представив виртуальную операционную систему Lawrence Berkeley Laboratory Software Tools , которая позволяла пользователям использовать Unix-подобную систему на 16-разрядных PDP-11 и 32-разрядных VAX es DEC, работающих под управлением операционной системы VMS . Она была похожа на текущую систему cygwin для Windows. Бинарные файлы и библиотеки часто распространялись, но пользователи обычно предпочитали компилировать из исходного кода. [ необходима цитата ]
В 1980-х годах, параллельно движению за свободное программное обеспечение, программное обеспечение с исходным кодом распространялось в сетях BBS . Иногда это было необходимостью; программное обеспечение, написанное на BASIC и других интерпретируемых языках, могло распространяться только в виде исходного кода, и большая его часть была бесплатным ПО. Когда пользователи начали собирать такой исходный код и создавать доски специально для обсуждения его модификации, это была фактически система с открытым исходным кодом.
Одним из наиболее очевидных примеров этого является одна из наиболее используемых систем и сетей BBS, WWIV , изначально разработанная на BASIC Уэйном Беллом . Культура «модификации» его программного обеспечения и распространения модов разрослась настолько, что когда программное обеспечение было портировано сначала на Pascal , а затем на C++ , его исходный код продолжал распространяться среди зарегистрированных пользователей, которые делились модами и компилировали свои собственные версии программного обеспечения. Это могло способствовать тому, что она стала доминирующей системой и сетью, несмотря на то, что находилась за пределами зонтика Fidonet , который разделяли многие другие производители BBS.
Между тем, появление Usenet и UUCPNet в начале 1980-х годов еще больше связало сообщество программистов и предоставило программистам более простой способ делиться своим программным обеспечением и вносить вклад в программное обеспечение, написанное другими. [28]
В 1983 году Ричард Столлман запустил проект GNU , чтобы написать полную операционную систему, свободную от ограничений на использование ее исходного кода. Конкретные инциденты, которые мотивировали это, включают случай, когда надоедливый принтер не мог быть исправлен, потому что исходный код был скрыт от пользователей. [29] Столлман также опубликовал Манифест GNU в 1985 году, чтобы описать цель проекта GNU и объяснить важность свободного программного обеспечения. Другим вероятным источником вдохновения для проекта GNU и его манифеста было разногласие между Столлманом и Symbolics , Inc. по поводу доступа MIT к обновлениям, которые Symbolics внесла в свою машину Lisp, которая была основана на коде MIT. [30] Вскоре после запуска он [22] использовал [ требуется разъяснение ] существующий термин « свободное программное обеспечение » и основал Фонд свободного программного обеспечения для продвижения этой концепции. Определение свободного программного обеспечения было опубликовано в феврале 1986 года.
В 1989 году была опубликована первая версия GNU General Public License . [31] Слегка обновленная версия 2 была опубликована в 1991 году. В 1989 году некоторые разработчики GNU основали компанию Cygnus Solutions . [32] Ядро проекта GNU, позже названное « GNU Hurd », постоянно откладывалось, но большинство других компонентов были завершены к 1991 году. Некоторые из них, особенно GNU Compiler Collection , стали лидерами рынка [ требуется разъяснение ] сами по себе. GNU Debugger и GNU Emacs также имели заметный успех.
Ядро Linux , начатое Линусом Торвальдсом , было выпущено в виде свободно модифицируемого исходного кода в 1991 году. Лицензия не была лицензией свободного программного обеспечения , но с версией 0.12 в феврале 1992 года Торвальдс повторно лицензировал проект под лицензией GNU General Public License . [33] Подобно Unix, ядро Торвальдса привлекло внимание программистов-добровольцев.
До этого момента отсутствие ядра у проекта GNU означало, что не существовало ни одной полноценной свободной операционной системы. Разработка ядра Торвальдса закрыла этот последний пробел. Сочетание почти готовой операционной системы GNU и ядра Linux создало первую полноценную свободную операционную систему.
Среди дистрибутивов Linux , Debian GNU/Linux , начатый Яном Мёрдоком в 1993 году, примечателен тем, что он явно привержен принципам GNU и FSF свободного программного обеспечения. Принципы разработчиков Debian выражены в Общественном договоре Debian . С момента своего создания проект Debian был тесно связан с FSF и фактически спонсировался FSF в течение года с 1994 по 1995 год. В 1997 году бывший руководитель проекта Debian Брюс Перенс также помог основать Software in the Public Interest , некоммерческую организацию по финансированию и поддержке различных проектов свободного программного обеспечения . [34]
С 1996 года ядро Linux включало в себя проприетарные лицензированные компоненты, так что оно больше не было полностью свободным программным обеспечением . [35] Поэтому Free Software Foundation Latin America выпустил в 2008 году модифицированную версию ядра Linux под названием Linux-libre , из которой были удалены все проприетарные и несвободные компоненты.
Многие компании предлагают индивидуальные продукты на основе Linux или дистрибутивы с коммерческой поддержкой. Название остается спорным . Обращение ко всей системе просто как к «Linux» является обычным делом. Однако Free Software Foundation и многие другие выступают за использование термина «GNU/Linux», утверждая, что это более точное название для всей операционной системы. [36]
Принятие Linux росло среди предприятий и правительств в 1990-х и 2000-х годах. По крайней мере, в англоязычном мире Ubuntu и его производные стали относительно популярной группой дистрибутивов Linux .
Когда в 1993 году иск USL против BSDi был урегулирован вне суда, FreeBSD и NetBSD (обе произошли от 386BSD ) были выпущены как свободное программное обеспечение. В 1995 году OpenBSD отделилась от NetBSD. В 2004 году Dragonfly BSD отделилась от FreeBSD.
В середине-конце 90-х, когда начинали многие компании, работающие на веб-сайтах, свободное программное обеспечение стало популярным выбором для веб-серверов. Apache HTTP Server стал наиболее используемым программным обеспечением для веб-серверов, и это звание сохраняется по состоянию на 2015 год. [37] Системы, основанные на общем «стеке» программного обеспечения с ядром Linux в основе, Apache, предоставляющим веб-сервисы, движком базы данных MySQL для хранения данных и языком программирования PHP для предоставления динамических страниц, стали называться системами LAMP . На самом деле, языком программирования, который предшествовал PHP и доминировал в Интернете в середине и конце 1990-х годов, был Perl. Веб-формы обрабатывались на стороне сервера с помощью скриптов Common Gateway Interface, написанных на Perl.
Термин «открытый исходный код», относящийся к свободному программному обеспечению, был общеупотребительным к 1995 году . [38] Другие воспоминания указывают на то, что он использовался в 1980-х годах. [39]
В 1997 году Эрик С. Рэймонд опубликовал « Собор и базар », рефлексивный анализ хакерского сообщества и принципов свободного программного обеспечения. Статья привлекла значительное внимание в начале 1998 года и стала одним из факторов, побудивших Netscape Communications Corporation выпустить свой популярный интернет-пакет Netscape Communicator в качестве свободного программного обеспечения . [40]
Действия Netscape побудили Рэймонда и других задуматься о том, как привнести принципы и преимущества свободного ПО в индустрию коммерческого ПО. Они пришли к выводу, что социальная активность FSF не привлекательна для таких компаний, как Netscape, и искали способ переименовать движение свободного ПО, чтобы подчеркнуть деловой потенциал обмена исходным кодом. [41]
Термин «open source» был принят некоторыми людьми из движения за свободное программное обеспечение на стратегической сессии [42], состоявшейся в Пало-Альто, Калифорния , в ответ на объявление Netscape в январе 1998 года о выпуске исходного кода для Navigator . Группа людей на сессии включала Кристин Петерсон , которая предложила «open source», [8] Тодда Андерсона, Ларри Огастина , Джона Холла , Сэма Окмана , Майкла Тиманна и Эрика С. Рэймонда . В течение следующей недели Рэймонд и другие работали над распространением информации. Линус Торвальдс дал важнейшее разрешение на следующий день. Фил Хьюз выступил с кафедрой в Linux Journal . Ричард Столлман , пионер движения за свободное программное обеспечение, заигрывал с принятием термина, но передумал. [42] Те люди, которые приняли термин, использовали возможность перед выпуском исходного кода Navigator, чтобы освободить себя от идеологических и конфронтационных коннотаций термина «free software». Netscape выпустила свой исходный код под лицензией Netscape Public License , а позднее под лицензией Mozilla Public License . [43]
Термин получил большую поддержку на мероприятии, организованном в апреле 1998 года издателем технологий Тимом О'Рейли . Первоначально названное «Freeware Summit», а позже переименованное в «Open Source Summit», [44] мероприятие объединило лидеров многих важнейших свободных и открытых проектов, включая Линуса Торвальдса , Ларри Уолла , Брайана Белендорфа , Эрика Оллмана , Гвидо ван Россума , Майкла Тиманна , Пола Викси , Джейми Завински из Netscape и Эрика Рэймонда. На этой встрече была поднята путаница, вызванная названием свободное программное обеспечение. Тиманн выступал за «sourceware» как новый термин, в то время как Рэймонд выступал за «open source». Собравшиеся разработчики провели голосование, и победитель был объявлен на пресс-конференции тем же вечером. Пять дней спустя Рэймонд сделал первый публичный призыв к сообществу свободного программного обеспечения принять новый термин. [45] Вскоре после этого была сформирована Инициатива открытого исходного кода . [8] [42] Согласно OSI Ричард Столлман изначально заигрывал с идеей принятия термина с открытым исходным кодом. [46] Но поскольку огромный успех термина с открытым исходным кодом похоронил термин свободного программного обеспечения Столлмана и его послание о социальных ценностях и свободе пользователей компьютеров, [47] [48] [49] позже Столлман и его FSF решительно возражали против подхода и терминологии OSI. [50] Из-за того, что Столлман отверг термин «программное обеспечение с открытым исходным кодом», экосистема FOSS разделена в своей терминологии; см. также Альтернативные термины для свободного программного обеспечения . Например, опрос разработчиков FOSS 2002 года показал, что 32,6% ассоциируют себя с OSS, 48% — со свободным программным обеспечением и 19,4% — между или не определились. [51] Однако Столлман по-прежнему утверждал, что пользователи каждого термина были союзниками в борьбе с проприетарным программным обеспечением.
13 октября 2000 года компания Sun Microsystems выпустила [52] офисный пакет StarOffice как свободное программное обеспечение под лицензией GNU Lesser General Public License . Бесплатная версия программного обеспечения была переименована в OpenOffice.org и сосуществовала со StarOffice.
К концу 1990-х годов термин «открытый исходный код» приобрел большую популярность в средствах массовой информации [53] и получил признание в индустрии программного обеспечения в контексте пузыря доткомов и программного обеспечения с открытым исходным кодом, движущей силой которого является Web 2.0 .
X Window System была создана в 1984 году и стала фактически стандартной оконной системой в настольных свободных операционных системах к середине 1990-х годов. X работает как сервер и отвечает за взаимодействие с графическим оборудованием от имени клиентов (которые являются отдельными программными приложениями). Она предоставляет полезные услуги, такие как наличие нескольких виртуальных рабочих столов для одного монитора и передача визуальных данных по сети, чтобы к рабочему столу можно было получить удаленный доступ.
Первоначально пользователи или системные администраторы собирали собственные среды из X и доступных оконных менеджеров (которые добавляют стандартные элементы управления в окна приложений; сам X этого не делает), пейджеров , доков и другого программного обеспечения. Хотя X может работать без оконного менеджера, его наличие значительно повышает удобство и простоту использования.
В 1990-х годах появились две ключевые «тяжеловесные» среды рабочего стола для операционных систем со свободным программным обеспечением, которые получили широкое распространение: KDE и GNOME . KDE была основана в 1996 году Маттиасом Эттрихом . В то время его беспокоили несоответствия в пользовательских интерфейсах приложений UNIX . Он предложил новую среду рабочего стола. Он также хотел сделать этот рабочий стол простым в использовании. Его первый пост в Usenet вызвал большой интерес. [54]
Эттрих решил использовать набор инструментов Qt для проекта KDE. В то время Qt не использовал лицензию свободного ПО . Участники проекта GNU стали беспокоиться об использовании такого набора инструментов для создания среды рабочего стола свободного ПО. В августе 1997 года в ответ на KDE были начаты два проекта: набор инструментов Harmony (бесплатная замена библиотек Qt) и GNOME (другой рабочий стол без Qt, полностью построенный на свободном ПО). [55] GTK+ был выбран в качестве основы GNOME вместо набора инструментов Qt.
В ноябре 1998 года инструментарий Qt был лицензирован под свободной/ открытой лицензией Q Public License (QPL), но споры о совместимости с GNU General Public License (GPL) продолжались. В сентябре 2000 года Trolltech сделала Unix- версию библиотек Qt доступной под GPL, в дополнение к QPL, что устранило опасения Free Software Foundation . С тех пор KDE был разделен на KDE Plasma Workspaces , среду рабочего стола, и KDE Software Compilation , гораздо более широкий набор программного обеспечения, включающий среду рабочего стола.
KDE и GNOME теперь участвуют в freedesktop.org — проекте, начатом в 2000 году с целью стандартизации взаимодействия рабочих столов Unix, хотя между ними все еще существует конкуренция. [56]
Начиная с 2000 года, программное обеспечение, написанное для X, почти всегда использует какой-либо набор виджетов, написанный поверх X, например Qt или GTK. [ необходима цитата ]
В 2010 году Canonical выпустила первую версию Unity , замену предыдущей среды рабочего стола по умолчанию для Ubuntu, GNOME. Это изменение в сторону новой, находящейся в стадии разработки среды рабочего стола и пользовательского интерфейса изначально было несколько спорным среди пользователей Ubuntu.
В 2011 году был представлен GNOME 3, который в значительной степени отказался от метафоры рабочего стола в пользу более мобильного интерфейса. Последовавшие за этим споры привели к тому, что Debian задумался о том, чтобы сделать среду Xfce средой по умолчанию в Debian 7. Было начато несколько независимых проектов для поддержки кода GNOME 2.
Fedora не приняла Unity, сохранив существующее предложение выбора GNOME, KDE и LXDE, при этом GNOME является средой по умолчанию, и, следовательно, Red Hat Enterprise Linux (для которого Fedora выступает в качестве «первоначального испытательного полигона») также не приняла Unity. Заинтересованные сторонние разработчики сделали форк Ubuntu, который сохранил GNOME и отказался от Unity. В марте 2017 года Ubuntu объявила, что она откажется от Unity в пользу GNOME 3 в будущих версиях и прекратит свои усилия по разработке смартфонов и планшетов на базе Unity . [57] [58]
Когда Google создала операционную систему Android на базе Linux , в основном для телефонов и планшетов, она заменила X на специально разработанную SurfaceFlinger .
Разработчики открытого исходного кода также критиковали X как устаревшую, несущую много неиспользуемых или чрезмерно сложных элементов в своем протоколе и библиотеках, при этом отсутствующую современную функциональность, например, композицию, экранные заставки и функции, предоставляемые оконными менеджерами. [59] Было сделано или делается несколько попыток заменить X по этим причинам, включая:
По мере того, как свободное программное обеспечение становилось все более популярным, такие отраслевые деятели, как Microsoft, начали видеть в нем серьезную угрозу. Это было показано в просочившемся документе 1998 года, подлинность которого была подтверждена Microsoft, и который стал называться первым из документов Хэллоуина .
Стив Балмер однажды сравнил GPL с «раковой опухолью», но с тех пор перестал использовать эту аналогию. Действительно, Microsoft смягчила свою публичную позицию по отношению к открытому исходному коду в целом, поскольку открытый исходный код стал важной частью экосистемы Microsoft Windows . [61] Однако в то же время за кулисами действия Microsoft были менее благоприятными по отношению к сообществу открытого исходного кода . [ необходима цитата ]
В 2003 году поставщик фирменного Unix и бывший поставщик дистрибутивов Linux под названием SCO заявил, что интеллектуальная собственность Unix была ненадлежащим образом скопирована в ядро Linux, и подал в суд на IBM, заявив, что она несет за это ответственность. Последовало несколько связанных судебных исков и встречных исков, некоторые из которых исходили от SCO, некоторые от других, инициировавших SCO. Однако обвинениям SCO не хватало конкретики, и хотя некоторые в СМИ сообщили о них как о заслуживающих доверия, многие критики SCO считали эти обвинения в лучшем случае весьма сомнительными.
В ходе разбирательства дела SCO против IBM выяснилось, что SCO не только годами распространяла ядро Linux по лицензии GPL и продолжает это делать (что делает любые претензии труднообоснованными с юридической точки зрения), но и что SCO даже не владеет авторскими правами на большую часть кода Unix, на который она заявляла авторские права, и не имеет права подавать на них в суд от имени предполагаемого владельца, Novell .
И это несмотря на то, что генеральный директор SCO Дарл Макбрайд сделал множество диких и оскорбительных заявлений о неправомерном присвоении средств массовой информации, многие из которых, как позже было доказано, были ложными или юридически не имеющими значения, даже если они были правдой.
Блог Groklaw был одним из самых дотошных исследователей заявлений SCO и связанных с ними событий и приобрел свою популярность благодаря освещению этого материала на протяжении многих лет.
SCO терпела поражение за поражением в деле SCO против IBM и других судебных делах и подала заявление о банкротстве по Главе 11 в 2007 году. Однако, несмотря на то, что суды установили, что SCO не владеет авторскими правами (см. выше), и что генеральный директор SCO, увлечённый судебными исками, Дарл Макбрайд больше не руководил компанией, управляющий по банкротству, отвечающий за SCO-банкротство, решил продолжить с некоторыми частями, которые, как он утверждал, оставались актуальными в иске SCO против IBM . Он, по-видимому, мог себе это позволить, поскольку основная юридическая фирма SCO в деле SCO против IBM с самого начала подписала соглашение о представлении интересов SCO за фиксированную сумму денег, независимо от того, сколько времени займёт рассмотрение дела.
В 2004 году Институт Алексиса де Токвиля (ADTI) объявил о намерении опубликовать книгу « Самиздат: и другие вопросы, касающиеся «источника» открытого исходного кода» , показывающую, что ядро Linux основано на коде, украденном из Unix, по сути, используя аргумент о том, что невозможно поверить, что Линус Торвальдс мог создать что-то столь же сложное, как ядро Linux. Книга так и не была опубликована после того, как ее широко раскритиковали и высмеяли, в том числе люди, якобы дававшие интервью для книги. Выяснилось, что некоторые из людей никогда не были опрошены, и что ADTI не пыталась связаться с Линусом Торвальдсом или когда-либо предъявлять ему обвинения, чтобы получить ответ. Microsoft попыталась подвести черту под этим инцидентом, заявив, что это было «отвлечением».
Многие подозревали, что некоторые или все эти юридические и FUD -атаки против ядра Linux были тайно организованы Microsoft, хотя это никогда не было доказано. Однако и ADTI, и SCO получали финансирование от Microsoft.
В 2004 году Европейская комиссия признала Microsoft виновной в антиконкурентном поведении в отношении взаимодействия на рынке программного обеспечения для рабочих групп. Ранее Microsoft уже урегулировала дело США против Microsoft в 2001 году, в котором обвинялось в незаконном злоупотреблении монопольным положением с целью заставить производителей компьютеров предустанавливать Internet Explorer .
Комиссия потребовала, чтобы Microsoft предоставила полную документацию своих протоколов рабочих групп, чтобы позволить конкурентам взаимодействовать с ее программным обеспечением для рабочих групп, и наложила штрафы в размере 1,5 млн евро в день за невыполнение требований Microsoft. Комиссия имела юрисдикцию, поскольку Microsoft продает спорное программное обеспечение в Европе.
После безуспешной попытки обжаловать решение в Суде Европейского Союза компания Microsoft в конечном итоге выполнила требование, предоставив тома подробной документации.
Проект Samba , как единственный оставшийся конкурент Microsoft на рынке программного обеспечения для рабочих групп, стал основным бенефициаром этой документации.
В 2008 году Международная организация по стандартизации опубликовала Office Open XML от Microsoft в качестве международного стандарта , что принципиально означало, что он, а следовательно, и Microsoft Office , может использоваться в проектах, где использование открытых стандартов предписано законом или политикой. Критики процесса стандартизации, включая некоторых членов национальных комитетов ISO, участвовавших в самом процессе, утверждали, что в процессе имели место нарушения и процедурные нарушения, и утверждали, что ISO не следовало утверждать OOXML в качестве стандарта, поскольку он ссылался на недокументированное поведение Microsoft Office.
По состоянию на 2012 год [update]не существует корректной реализации OOXML с открытым исходным кодом, что подтверждает замечания критиков о том, что OOXML сложен в реализации и недостаточно определен. В настоящее время Google пока не может правильно преобразовать документы Office в свой собственный формат Google Docs. Это говорит о том, что OOXML не является настоящим открытым стандартом, а скорее частичным документом, описывающим то, что делает Microsoft Office, и затрагивающим только определенные форматы файлов.
В 2006 году Microsoft запустила свой сайт с открытым исходным кодом CodePlex , чтобы предоставить хостинг разработчикам открытого исходного кода, нацеленным на платформы Microsoft. В июле 2009 года Microsoft открыла исходный код некоторых патчей для поддержки Hyper-V в ядре Linux, поскольку это требовалось лицензией GNU General Public License [62] [63] , и внесла их в основное ядро. Обратите внимание, что сам Hyper-V не является программным обеспечением с открытым исходным кодом. Компилятор F# от Microsoft , созданный в 2002 году, также был выпущен с открытым исходным кодом под лицензией Apache . Компилятор F# является коммерческим продуктом, поскольку он был включен в Microsoft Visual Studio , которая не является программным обеспечением с открытым исходным кодом.
Представители Microsoft на протяжении многих лет регулярно присутствуют на различных конференциях, посвященных открытому исходному коду и Linux.
В 2012 году Microsoft запустила дочернюю компанию под названием Microsoft Open Technologies Inc. с целью сократить разрыв между фирменными технологиями Microsoft и технологиями сторонних разработчиков путем взаимодействия со стандартами с открытым исходным кодом. [64] Впоследствии эта дочерняя компания была возвращена в состав Microsoft, поскольку позиция Microsoft в отношении платформ с открытым исходным кодом и не-Windows стала более благоприятной.
В январе 2016 года Microsoft выпустила Chakra с открытым исходным кодом под лицензией MIT ; код доступен на GitHub . [65]
Позиция Microsoft в отношении открытого исходного кода изменилась, поскольку компания начала поддерживать больше программного обеспечения с открытым исходным кодом. В 2016 году Стив Балмер, бывший генеральный директор Microsoft, отказался от своего заявления о том, что Linux — это злокачественная опухоль. [66] В 2017 году компания стала платиновым сторонником Linux Foundation . К 2018 году, незадолго до приобретения GitHub, Microsoft возглавила рейтинги по количеству оплачиваемых сотрудников, вносящих вклад в проекты с открытым исходным кодом. [67] Хотя Microsoft может поддерживать или не поддерживать изначальную философию свободного программного обеспечения , данные показывают, что она поддерживает открытый исходный код стратегически. [ оригинальное исследование? ]
Критики отметили, что в марте 2019 года Microsoft подала в суд на дочернюю компанию Foxconn из-за патентного контракта 2013 года; [68] в 2013 году Microsoft объявила о патентном соглашении с Foxconn, связанном с использованием Foxconn ОС Android и ChromeOS на базе Linux . [69]
Подавляющее большинство используемых сегодня языков программирования имеют свободно доступную программную реализацию.
Начиная с 1990-х годов выпуск основных новых языков программирования в виде компиляторов и/или интерпретаторов с открытым исходным кодом стал скорее нормой, чем исключением. Примерами служат Python в 1991 году, Ruby в 1995 году и Scala в 2003 году. В последнее время наиболее заметными исключениями были Java , ActionScript , C# и Swift от Apple до версии 2.2, которая стала проприетарной . Для большинства были разработаны частично совместимые реализации с открытым исходным кодом, а в случае Java основная реализация с открытым исходным кодом к настоящему времени очень близка к коммерческой версии.
С момента своего первого публичного выпуска в 1996 году платформа Java не была открытым исходным кодом, хотя часть исходного кода Java среды выполнения Java была включена в Java Development Kits (JDK) на якобы «конфиденциальной» основе, несмотря на то, что она была доступна для бесплатной загрузки широкой публикой в большинстве стран. Позднее Sun расширила этот «конфиденциальный» доступ к исходному коду, включив полный исходный код Java Runtime Environment через отдельную программу, которая была открыта для членов общественности, а позже сделала также доступным исходный код компилятора Java javac . Sun также предоставила исходный код JDK конфиденциально проекту Blackdown Java , который представлял собой собрание добровольцев, которые портировали ранние версии JDK на Linux или улучшали порты JDK для Linux от Sun. Однако ничто из этого не было открытым исходным кодом, поскольку модификация и распространение без разрешения Sun были запрещены во всех случаях. Sun заявила в то время, что они обеспокоены предотвращением разветвления платформы Java.
Однако было создано несколько независимых частичных повторных реализаций платформы Java, многие из которых были созданы сообществом разработчиков ПО с открытым исходным кодом , например, GNU Compiler for Java (GCJ). Sun никогда не подавала исков против каких-либо проектов-клонов с открытым исходным кодом . GCJ в частности вызвала плохой пользовательский опыт использования Java в дистрибутивах с поддержкой свободного программного обеспечения, таких как Fedora и Ubuntu , которые в то время поставляли GCJ в качестве своей реализации Java. Как заменить GCJ на Sun JDK, было часто задаваемым вопросом среди пользователей, поскольку GCJ была неполной реализацией, несовместимой и содержащей ошибки.
В 2006 году Джонатан И. Шварц стал генеральным директором Sun Microsystems и заявил о своей приверженности открытому исходному коду. 8 мая 2007 года Sun Microsystems выпустила Java Development Kit как OpenJDK под лицензией GNU General Public License. Часть библиотеки классов (4%) не могла быть выпущена как открытый исходный код, поскольку они были лицензированы другими сторонами и были включены в качестве бинарных плагинов. [ необходима цитата ] Из-за этого в июне 2007 года Red Hat запустила IcedTea для устранения обремененных компонентов с помощью эквивалентов из реализации GNU Classpath . С момента выпуска большинство препятствий было устранено, остался только код аудиодвижка и система управления цветом (последняя должна быть устранена с помощью Little CMS ).
Первой распределённой системой управления версиями (DVCS) с открытым исходным кодом стала «tla» в 2001 году (с тех пор переименованная в GNU arch ); однако она и её преемники «baz» и «bzr» ( Bazaar ) так и не стали очень популярными, и поддержка GNU arch была прекращена, хотя Bazaar всё ещё существует и используется Canonical.
Однако появились и другие проекты DVCS, и некоторые из них начали получать широкое распространение.
Git , самая популярная DVCS, была создана в 2005 году. [70] Некоторые разработчики ядра Linux начали использовать фирменную DVCS под названием BitKeeper , в частности основатель Linux Линус Торвальдс, хотя некоторые другие разработчики ядра никогда не использовали ее из-за ее фирменной природы. Необычная ситуация, когда разработка ядра Linux включала использование некоторого фирменного программного обеспечения, «достигла апогея», когда Эндрю Триджелл начал заниматься обратным проектированием BitKeeper с целью создания инструмента с открытым исходным кодом, который мог бы предоставлять некоторые из тех же функций, что и коммерческая версия. BitMover, компания, которая разработала BitKeeper, в ответ на это в 2005 году отозвала специальную бесплатную лицензию, которую она предоставила определенным разработчикам ядра.
В результате отмены лицензии BitKeeper Линус Торвальдс решил написать собственную DVCS, названную git, поскольку он считал, что ни одна из существующих DVCS с открытым исходным кодом не подходит для его конкретных нужд как сопровождающего ядра (именно поэтому он изначально принял BitKeeper). Несколько других разработчиков быстро подключились и помогли ему, и со временем git вырос из относительно простого «тупого трекера контента» (для которого некоторые разработчики разработали «фарфоровые» расширения) в сложную и мощную DVCS, которой он является сегодня. Однако Торвальдс больше не поддерживает git самостоятельно; его поддерживает Джунио Хамано уже много лет, и он продолжает получать вклад от многих разработчиков.
Растущая популярность DVCS с открытым исходным кодом, таких как git, а затем, позже, хостинговых сайтов DVCS, самым популярным из которых является GitHub (основан в 2008 году), постепенно снижала барьеры для участия в проектах свободного программного обеспечения еще больше. С такими сайтами, как GitHub, потенциальным участникам больше не приходилось заниматься такими вещами, как поиск URL-адреса репозитория исходного кода (который мог находиться в разных местах на каждом веб-сайте или иногда быть спрятанным в файле README или документации разработчика), или разбираться, как сгенерировать патч, и при необходимости подписываться на нужный список рассылки, чтобы их электронное письмо с патчем попало к нужным людям. Участники могут просто создать ответвление своей собственной копии репозитория одним щелчком мыши и отправить запрос на извлечение из соответствующей ветки , когда их изменения будут готовы. GitHub стал самым популярным хостинговым сайтом в мире для программного обеспечения с открытым исходным кодом, и это, вместе с простотой ответвления и видимостью ответвлений, сделало его популярным способом для участников вносить изменения, большие и маленькие.
Хотя авторское право является основным правовым механизмом, который авторы FOSS используют для обеспечения соответствия лицензии на свое программное обеспечение, другие механизмы, такие как законодательство, патенты на программное обеспечение и товарные знаки , также имеют применение. В ответ на правовые проблемы с патентами и DMCA , Free Software Foundation выпустила версию 3 своей GNU General Public License в 2007 году, которая явно касалась положений DMCA об управлении цифровыми правами (DRM) и патентных прав.
После разработки GNU GPLv3 , как владелец авторских прав на многие части системы GNU, такие как программное обеспечение GNU Compiler Collection (GCC), FSF обновил большинство [ требуется ссылка ] лицензий программ GNU с GPLv2 на GPLv3. Apple , пользователь GCC и активный пользователь как DRM, так и патентов, решила переключить компилятор в своей среде разработки Xcode с GCC на Clang , другой компилятор FOSS, [71], но который находится под разрешительной лицензией . [72] LWN предположил, что Apple была частично мотивирована желанием избежать GPLv3. [71] Проект Samba также перешел на GPLv3, которую Apple заменила в своем программном пакете на закрытую, проприетарную программную альтернативу. [73]
Недавние слияния затронули крупное программное обеспечение с открытым исходным кодом. Sun Microsystems (Sun) приобрела MySQL AB , владельца популярной базы данных MySQL с открытым исходным кодом , в 2008 году. [74]
Oracle , в свою очередь, купила Sun в январе 2010 года, получив их авторские права, патенты и товарные знаки. Это сделало Oracle владельцем как самой популярной фирменной базы данных , так и самой популярной базы данных с открытым исходным кодом (MySQL). [ требуется ссылка ] Попытки Oracle коммерциализировать базу данных MySQL с открытым исходным кодом вызвали обеспокоенность в сообществе FOSS. [75] Частично в ответ на неопределенность относительно будущего MySQL, сообщество FOSS разделило проект на новые системы баз данных, находящиеся вне контроля Oracle. К ним относятся MariaDB , Percona и Drizzle . [76] Все они имеют разные названия; они являются разными проектами и не могут использовать торговое название MySQL. [77]
В сентябре 2008 года Google выпустила первую версию Android , новой операционной системы для смартфонов , с открытым исходным кодом (некоторые приложения Google, которые иногда, но не всегда, поставляются вместе с Android, не являются открытыми). Первоначально операционная система была предоставлена Google бесплатно и была с энтузиазмом принята многими производителями мобильных телефонов; позже Google купила Motorola Mobility и выпустила свои собственные телефоны и планшеты на базе Android, продолжая при этом позволять другим производителям использовать Android. Сейчас Android является самой популярной в мире мобильной платформой. [78]
Поскольку Android основан на ядре Linux, это означает, что Linux теперь является доминирующим ядром как на мобильных платформах (через Android), так и на суперкомпьютерах [79] , а также играет ключевую роль в серверных операционных системах.
В августе 2010 года Oracle подала в суд на Google, утверждая, что использование Java в Android нарушает авторские права и патенты Oracle. Первоначальное судебное разбирательство Oracle против Google завершилось в мае 2012 года, когда было установлено, что Google не нарушала патенты Oracle, а судья первой инстанции постановил, что структура интерфейсов программирования приложений Java (API), используемых Google, не является объектом авторского права. Присяжные пришли к выводу, что Google допустила незначительное (« de minimis ») нарушение авторских прав, но стороны оговорили , что Google не будет выплачивать компенсацию, поскольку оно было настолько незначительным. [80] Однако Oracle подала апелляцию в Федеральный округ , а Google подала встречную апелляцию по иску о буквальном копировании. [81] Федеральный округ постановил, что небольшое нарушение авторских прав, признанное Google, не было de minimis , и вернул вопрос о добросовестном использовании судье первой инстанции для повторного рассмотрения. В 2016 году дело было пересмотрено, и присяжные вынесли решение в пользу Google по основаниям добросовестного использования .
До недавнего времени Linux все еще был относительно редким выбором операционной системы для настольных компьютеров и ноутбуков. Однако Chromebook от Google , работающий под управлением ChromeOS , который по сути является тонким клиентом , захватил 20–25% рынка ноутбуков США стоимостью менее 300 долларов. [82] ChromeOS построен на основе ChromiumOS с открытым исходным кодом , которая основана на Linux, во многом так же, как версии Android, поставляемые на коммерчески доступные телефоны, построены на версии Android с открытым исходным кодом.
Так если
открытый исходный код
был нормой в 1960-х и 70-х годах, как это _изменилось_? Откуда взялось
проприетарное программное обеспечение
, когда и как? Как
маленькая утопия
Ричарда Столлмана в
лаборатории ИИ Массачусетского технологического института
рухнула и заставила его отправиться в пустыню, чтобы попытаться ее восстановить? Две вещи изменились в начале 80-х: экспоненциально растущая установленная база микрокомпьютерного оборудования достигла критической массы около 1980 года, а юридическое решение изменило закон об авторском праве, чтобы охватить двоичные файлы в 1983 году.
Хотя политика IBM по утаиванию исходного кода для отдельных программных продуктов уже отметила свою вторую годовщину, пользователи только сейчас начинают справляться с последствиями этого решения. Но независимо от того, повлияло ли появление продуктов только с объектным кодом на их повседневные операции DP или нет, некоторые пользователи по-прежнему возмущены решением IBM. Анонсированная в феврале 1983 г. политика IBM только с объектным кодом была применена к растущему списку системных программных продуктов Big Blue