Операционные системы имеют основополагающее значение для Интернета, каким мы его знаем сегодня, поскольку в настоящее время они обеспечивают работу миллионов серверов, компьютеров и других встроенных вычислительных устройств. Отдельное почётное место среди этого занимает ОС Linux (или GNU/Linux), используемая миллиардами человек во всём мире.

GNUUnix-подобная ОС с открытым исходным кодом, созданная 40 лет назад в 1983 году Ричардом Столлманом. GNU поддерживается Фондом свободного программного обеспечения (FSF), который первоначально был основан вокруг этого проекта, хотя позже он расширился и стал поддерживать другие проекты свободного ПО.

Если посмотреть на зарождение движения за свободное ПО — оно начинается с GNU. Система GNU — это не просто наиболее широко используемая ОС, основанная на свободном ПО. GNU также лежит в основе философии, которая направляла движение за свободное ПО на протяжении сорока лет.

А всё началось с плохо работающего принтера…

Сколько нужно программистов, чтобы доработать принтер?


В начале 1980-х годов у программиста Лаборатории искусственного интеллекта Массачусетского технологического института (MIT), Ричарда Столлмана, возникли проблемы с ненадёжным принтером Xerox 9700. Он хотел модифицировать его ПО, чтобы уведомлять пользователей о частых замятиях. Идея хорошая, но Столлман не смог получить доступ к исходному коду, чтобы внести эти изменения. Это противоречило духу открытости Лаборатории. Тогда он решил, что код ПО должен быть в свободном доступе. Столлман хотел, чтобы пользователи могли свободно использовать, изменять и распространять ПО. 27 сентября 1983 года Столлман объявил о плане разработки свободного ПО Unix-подобной ОС. Так родилась GNU (рекурсивная аббревиатура, что означает «GNU's Not Unix»).


Забегая вперёд, Столлман не смог осуществить свою мечту и написать ОС. Проект ядра ОС GNU Hurd до сих пор остаётся незавершённой. Но, вдохновлённый своей идеей о том, что несвободное ПО является антисоциальным, неэтичным и просто неправильным, он и его единомышленники начали создавать семейство ПО GNU. Из этого возникло множество других программ с открытым исходным кодом.

В 1976 году Ричард Столлман, Дэвид А. Мун и Гай Л. Стилу-младший написали EMACS, текстовый редактор, как набор макросов редактора TECO. Джеймс Гослинг, наиболее известный как родитель языка Java, затем взял идею EMACS, перенёс её на Unix и улучшил производительность отображения. Затем он передал гаражной компании Unipress права на поддержку и продажу EMACS. Именно тогда появился Столлман, как рассказывает Гослинг, и «просто присвоил весь исходный код». В 1984 году Ричард Столлман начал разработку новой реализации Emacs как свободной альтернативы проприетарному Gosling Emacs. GNU Emacs стал первой программой проекта GNU.

Столлман понял, что по неформальным правилам сообщества EMACS он не может контролировать даже свою собственную версию EMACS. Он и его коллеги решили, что пользователи могут изменять код GNU EMACS, пока они публикуют свои модификации, и их «производные» работы также будут иметь ту же лицензию GNU EMACS. Столлман переписал нарушающий авторские права код после судебного процесса между IBM и DEC против Unipress и множества резких слов от Гослинга в свой адрес. По иронии судьбы, именно в этой неблаговидной борьбе, Столлман добился одну из своих величайших достижений: Публичной лицензии GNU (GPL).

Авторское лево


Разработчики хотели, чтобы ОС позволяла пользователям экспериментировать и модифицировать её самостоятельно. Это означало принятие мер по предотвращению превращения свободной ОС в несвободное.

С помощью Марка Фишера и Джерри Коэна, юристов в области интеллектуальной собственности, и Джона Гилмора, разработчика свободного ПО и соучредителя Electronic Frontier Foundation (EFF), Столлман понял, что лицензия GNU EMACS слишком ограничена. Фишер призвал Столлмана использовать авторское право в качестве основы для лицензии, в то время как Гилмор предложил: «Вероятно, следует удалить название «EMACS» из лицензии и заменить его на «ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ». Мы надеемся, что вскоре EMACS перестанет быть самой большой частью системы GNU, и лицензия будет распространяться на всё».


Используя эти идеи, Столлман создал первую версию GPL: «Авторское лево (копилефт), используемое в проекте GNU, представляет собой комбинацию уведомления об авторских правах и Стандартной общественной лицензии GNU. Уведомление об авторских правах является обычным. Стандартная общественная лицензия представляет собой лицензию на копирование, которая, по сути, гласит, что у вас есть те свободы, которые мы хотим, чтобы вы имели, и что вы не можете отнять эти свободы у кого-либо ещё».

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

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



GPL — самая популярная и широко используемая лицензия на программное обеспечение с открытым исходным кодом. Тем не менее, по прошествии многих лет некоторые компании и разработчики почувствовали, что GPL является слишком ограничительной. Это привело к появлению альтернативных лицензий, таких как лицензия Apache и лицензия MIT, которые предлагали более либеральные условия. Лицензия MIT, вдохновлённая GPL, налагает мало ограничений на повторное использование. Пользователям ПО, использующим лицензию MIT, разрешается использовать, копировать, изменять, объединять, публиковать, распространять, сублицензировать и продавать копии ПО.

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

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

Допустимость повторного использования по сути не делает программу свободной. Лицензия Berkely Software Distribution (BSD) и её последняя доступная версия являются наиболее допустимыми лицензиями. Однако лицензия BSD не требует, чтобы пользователи предоставляли доступ к исходному коду или каким-либо изменениям. Единственное требование состоит в том, чтобы первоначальные авторы были указаны в лицензии, прилагаемой к выпущенному приложению. ПО, выпущенное по лицензии BSD, составляет основу macOS.


GPL развивалась и с годами приобретала всё большее значение. GPLv2, пожалуй, самый важный из её вариантов, поскольку это лицензия Linux. Последняя версия, GPLv3, расширила концепции свободного ПО, включив в них управление цифровыми правами (DRM) и патенты.

Чтобы помочь поддержать разработку программ GNU, в 1985 году был основан Фонд свободного ПО (FSF) для поддержки и продвижения программистов GPL и движения за свободное ПО. FSF владеет авторскими правами на многие программы GNU. Следующей важной вехой стала разработка компилятора GNU C (GCC) в 1987 году. GCC был не только бесплатным, но и превосходил по производительности многие современные компиляторы, что обеспечило его быстрое внедрение и способствовало развитию проекта.

Лучший (не)результат Столлмана


Точно так же, как каждый писатель мечтает написать великий роман, каждый программист в мечтает о написании великой программы. Таким для Столлмана является GCC, который ценится в GNU. GCC считается высшим достижением Столлмана в кругах программирования. Существуют и другие программы GNU. К ним относятся Debugger GNU (Gdb); загрузчик-системы GRUB и GNU Common Lisp. Другие проекты с открытым исходным кодом, имеющие лицензию GNU GPL, включают Ansible, Drupal, Git и WordPress.

Но самый больной вопрос заключается в том, что Столлман так и не создал успешную ОС. Действительно, к началу 90-х годов проект GNU успешно переписал большую часть системы Unix. Но всё же осталось одно яркое исключение: ядро ОС.

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

Это очень амбициозный проект, настоящее микроядро, и очень немногим проектам удалось заставить его работать хорошо. Современное состояние, возможно, перешло от микроядра Mach, которое использует Hurd, к таким проектам, как seL4. Более успешный пример – но всё ещё довольно неполный – это Minix 3, который запускает механизм управления внутри всех современных чипов Intel.

Линус Торвальдс, финский студент-компьютерщик, который в 1991 году начал работать над ядром ОС в качестве хобби-проекта. Это ядро, названное Linux, в сочетании с системой GNU создало полностью свободную ОС. По сей день Столлман и FSF настаивают на том, чтобы Linux назывался «GNU/Linux».


GNU и Столлман заслуживают почёт за новаторское видение и разработку gcc, glibc и кучу утилит с нуля. Но они потратили 20 из 40 лет пытаясь завоевать признание Linux. Самый первый релиз Линуса в 1991 году, конечно, во многом зависел от GNU, но развитие ПО GNU за последние 20 с лишним лет зависело и направлялось Linux и его сообществом.

GNU не помогло и то, что с годами у Столлмана сложилась противоречивая репутация. Это достигло апогея в 2019 году, когда его защита покойного Марвина Мински, пионера искусственного интеллекта и соратника миллиардера Джеффри Эпштейна, привела к его отмене и отставке с поста президента FSF. Затем, в 2021 году, Столлман вернулся в Совет FSF, что вызвало скандал как внутри FSF, так и за его пределами.


Празднование 40-летия GNU

Сегодня, в 2023 году, Столлман по-прежнему является членом Совета FSF, который также спонсирует проект GNU, который также продолжает попытки создать полную ОС свободного ПО. Конечно, Столлман участвовал во многих спорных идеях по разным вопросам, но влияние, которое он оказал на Linux и свободное ПО, огромно!

Если быть более справедливым и сбалансированным, проект GNU имел огромный успех, который изменил облик всей компьютерной индустрии. На одном, низком уровне, существует множество операционных систем GNU, основанных на ядре Linux, включая NixOS-подобную GNU Guix, а также несколько дистрибутивов, полностью использующих код GNU.


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

ПО с открытым исходным кодом и свободное ПО


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

Это означало, что первым шагом в использовании компьютера было обещание не помогать своему ближнему. Сотрудничающее сообщество было запрещено. Правило владельцев несвободного программного обеспечения гласило: «Если ты делишься с ближним, то ты — пират»
Ричард Столлман


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

В основе открытого исходного кода лежала идея о том, что люди могут свободно изменять код, если они делятся им как свободным ПО. На самом деле само свободное ПО старше, чем идея свободного ПО. На заре вычислительной техники программное обеспечение просто было общим. Однако в качестве неожиданного побочного эффекта антимонопольного иска США против IBM в 1969 году мэйнфреймы и миникомпьютеры, такие как DEC и IBM, перестали поставляться в комплекте с бесплатным ПО и начали продаваться проприетарные операционные системы и программы. К концу 70-х и началу 80-х проприетарное программное обеспечение стало новой нормой.

Движение за свободное ПО фактически предшествовало разработке GNU, начиная с 1983 года. В 1980-е годы были разработаны основные компоненты системы GNU. Затем, в 1998 году, сформировалась отколовшаяся группа, которая начала кампанию во имя открытого исходного кода.

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


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

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

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

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

Для разработчиков наследие GNU остаётся непреходящим свидетельством идеи о том, что программное обеспечение должно расширять возможности, а не ограничивать своих пользователей.



Возможно, захочется почитать и это:

Комментарии (19)


  1. MAXH0
    17.10.2023 09:09
    +12

    Свободный код - это всегда политика. И травля Столмана со стороны корпоратов - лучшее тому подтверждение.

    Особенно правовой вопрос обострился сейчас, когда свободный код используется для обучения нейросетей, не наследуя липкой свободной лицензии copyleft в производном коде. А это нарушение самой идеи.


    1. funca
      17.10.2023 09:09

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

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

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


      1. MAXH0
        17.10.2023 09:09
        +4

        Формально ПЕРЕПИСЫВАЯ код с опорой на образец, не учитывая лицензию, вы нарушаете. Потому, что генерируете производное произведение. Использование обфускатор вообще никак не влияет. Только на затрудняет поиск и доказательства плагиата. Вы бы посоветовали еще копилефты затереть, копирайты написать и вперёд... БолгенОС.
        Хотите очистить код от этого? Создавайте спецификацию по исходному коду, сажайте программистов, которые не видели исходник, в отдельную чистую комнату и пусть они пишут аналогичное произведение, но своими словами.

        Только вот сейчас хозяева другой ОС играются с копирайтами/копилефтами на своей соПилотке.


        1. funca
          17.10.2023 09:09

          ПЕРЕПИСЫВАЯ код с опорой на образец, не учитывая лицензию, вы нарушаете. Потому, что генерируете производное произведение.

          На практике здесь многое зависит от конкретной юрисдикции, конкретной ситуации и даже судей. Но в целом, признаки derivative work не означают автоматического нарушения копирайта. Например Transformative use, куда подпадает цитирование, пародии, использование в новом контексте и т.п. Естественно, создавая свое вы будете в курсе про образец.

          Использование произведений в составе датасетов для обучения AI все ещё под вопросом. Защитники пока ссылаются как раз на transformative use. Но все идёт к тому, что его разрешат явно.


        1. olku
          17.10.2023 09:09

          Исходный код в германо-романском праве защищается как текст. Что есть производное произведение? Возможно, в Штатах, ещё можно защитить алгоритм, но уже не АПИ.


          1. funca
            17.10.2023 09:09

            Различают идеи и реализацию (https://en.m.wikipedia.org/wiki/Idea–expression_distinction). Копирайты распространяются только на реализации идей. Сами идеи защищаются патентами или торговыми марками.


        1. b237
          17.10.2023 09:09
          +1

          Чистая комната это хороший способ избежать проблем, но не обязательное требование. Копирование может попасть под fair use, если по другому нельзя понять, что именно делает программа. Sony в 2000-2001 году подавала в суд на создателей эмулятора PlayStation для маков. Выяснилось, что они дизассемблировали BIOS, чтобы понять, как он работает, но суд все равно встал на их сторону, потому что в финальном продукте исходного кода не было


          1. MAXH0
            17.10.2023 09:09

            Этот пример ничего не опровергает. "понять, как он работает" и есть "составить спецификацию по исходному коду"...


            1. b237
              17.10.2023 09:09

              Я так понял вашу точку зрения, что авторы спецификации, которые смотрят исходники, и те, кто потом код пишет, это должны быть разные люди. В статьях, которые я читал про иски Sony v. Connectix или Sega v. Accolade, я не видел акцентирования на том, разные люди писали код и смотрели, как работает оригинал, или одни и те же. Что позволяет предположить, что это не является значительным фактором при принятии решения, были нарушены права или нет


              1. MAXH0
                17.10.2023 09:09
                +1

                Объясню, как я понял...

                В данном случае это не существенно: Важно то, что создателям удалось пройти Abstraction-Filtration-Comparison test... Абстракция в данном тесте заключается в изучении шести основных элементов программы: основное назначение, структура или архитектура программы, модули, алгоритмы и структуры данных, исходный код и объектный код. Фильтрация позволяет отделить существенные и несущественные элементы, например выделение неохраняемых элементов, которые есть в программе из-за использования открытой лицензии. После этого происходит сравнение уже основных охраняемых элементов. Такой подход позволяет сравнивать программы, которые используются также в разных операционных системах.

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

                Вот например Сбер сделал Гигу на национальных языках РФ. Но некоторые не смог, просто потому, что не нашел должного массива открытых данных, написанных данным языком. Хотя, наверное, мог бы потихонечку и подворовать. И вряд ли кто что доказал.


    1. dartraiden
      17.10.2023 09:09
      -1

      травля Столмана

      В этом плане он мне напоминает Валерию Новодворскую. Которая говорила много правильных вещей, многие её предсказания сбылись, не поспоришь. Но вместе с этим она делала и такие "великолепные" утверждения, как, например, "Шамиль Басаев - демократ" и открыто симпатизировала террористам. Отчего и ассоциируется в народной памяти со словом "демшиза".

      "Травля Столлмана корпоратами" это прямо эталонная теория заговора. Человек сказал то, что говорить не следовало. Люди начали возмущаться. Логично предположить, что возмущаются они из-за его слов. Нет, пытаются убедить нас, это его корпораты травят в отместку.


      1. MAXH0
        17.10.2023 09:09
        +1

        О как! Вы вот серьезно? Существует что-то, что не следует говорить? А то некие "люди" начнут активно возмущаться. В рабочее время с рабочих аккаунтов. НО это не травля. Использование перевранных цитат - не травля...

        Я понимаю, что бабаВика - соврет, не дорого возьмет. НО " Некоторые в организации травли Столлмана и сотрудников МТИ подозревают Билла Гейтса...".

        НО давайте копнем глубже. По вашему существует нечто, что "не следует говорить". И вы оправдываете "людей" которые организуют хейт. Мы же на Хабре вроде бы и понимаем, что просто так инфа вирусится только случайно и хаотично. А если есть определенный вектор, то значит инфу продвигают. Но нет... Конечно же это "теория заговора"!


  1. polar_yogi
    17.10.2023 09:09
    +1

    >GNU - Unix-подобная ОС с открытым исходным кодом, созданная 40 лет назад в 1983 году Ричардом Столлманом.

    На gnu.org выражаются осторожнее:
    > The GNU Operating System, or GNU System as it is more commonly known, will be a complete Unix-like operating system composed entirely of free software.

    >Свободный код - это всегда политика.
    >Особенно правовой вопрос обострился сейчас

    Я бы сказал, что политика следует за деньгами. И правовой вопрос всегда стоял остро, в частности, поэтому имеем gpl/lgpl v2 и v3 и agpl и, возможно, что-то еще.


    1. MAXH0
      17.10.2023 09:09

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

      Сейчас мы имеем производный код, который создается используя gpl программы и ОЧЕВИДНО, что он должен наследовать лицензию, но этого не происходит.


  1. bogolt
    17.10.2023 09:09
    +2

    Предлагаю подписать картину в заголовке "Именно так выглядела первая версия GNU Emacs опубликованная 40 лет тому назад!"


    1. funca
      17.10.2023 09:09

      Тогда статью придётся скрыть ещё на 23 года, судя по дате на картине.


  1. saipr
    17.10.2023 09:09
    +1

    Разработчики хотели, чтобы ОС позволяла пользователям экспериментировать и модифицировать её самостоятельно.

    В середине 80-х я тоже задумывался о том, что неплохо бы иметь универсальную ОС на базе Unix, и даже написал статью "Операционные системы: зачем они инженеру":

    На первые ЭВМ, так же как и на первый самолет братьев Райт, люди
    смотрели как на чудо. А сегодня говорят о наступлении «компьютерной
    эры», звучат серьезные предупреждения о том, что если специалист не
    будет обучаться компьютерной грамотности, то он отстанет от жизни, не
    получит продвижения по службе. Становится привычным, что на рабочем
    столе инженера мы видим либо дисплей, подключенный к большой ЭВМ, либо
    персональную ЭВМ (ПЭВМ), которые служат то пишущей машинкой, то
    суперкалькулятором, то информационно-справочной системой, то кульманом,
    то средством управления экспериментальной установкой.

    Мне кажется, что за 35 лет статья не потеряла своей актуальности, но при этом позволяет взглянуть, что же происходило 35 лет назад в нашей стране в области информатизации, когда еще не было Linux, но был UNIX/ЮНИКС.


  1. qertis
    17.10.2023 09:09
    +4

    Статья будет неполной без упоминания GNUNet - фреймворка для создания децентрализованных коммуникаций.


    1. funca
      17.10.2023 09:09

      На кдпв изображена вторая версия GNU Network Object Model Environment (GNOME).