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


/ фото Peter Hamer CC BY-SA

Между наукой и национальной безопасностью


Период Второй мировой войны стал временем технологических прорывов для США. Сотрудничество научных институтов с военными организациями принесло плоды в сфере радио, криптографии и полупроводников.

После войны проведенные исследования положили основу таким изобретениям, как транзистор, а научные связи превратились в бизнес-контакты. Началось активное развитие ЭВМ.

Первый коммерческий компьютер IBM 701 — носил неофициальное название Defense Calculator. С 1952 по 1955 год с конвейера сошли лишь 19 экземпляров этой ЭВМ. Приобрести их было нельзя, но можно было арендовать на месяц за немалые деньги — порядка $12 тысяч ($107 тыс. по современным меркам).

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

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

Период обмена программами


Наиболее известными группами, участники которых делились «исходниками» друг с другом, были PACT, SHARE и DECUS. Первая из них, PACT — Project For the Advancement Of Coding Techniques — состояла из представителей военных подрядчиков, вроде Lockheed и Douglas, а также IBM.

Вместе они разработали серию одноимённых компиляторов для IBM 701 и 704, которые использовали методы хеширования. Руководство группы подчеркивало «ценность кооперации» в работе над подобными проектами и обещало сохранить этот дух в будущем.

Преемником PACT стала появившаяся в 1955 году группа SHARE, создавшая операционную систему SOS (Share Operating System). Это примитивное, по современным меркам, решение для ввода и вывода информации выросло на внутренних разработках General Motors. Именно SOS заложила основу для первых операционных систем пакетной обработки, которые выполняли несколько заданий, подготовленных одним или разными пользователями. Подобные системы доминировали на рынке ЭВМ в конце 50х — начале 60х.

В 1961 году появилась еще одна группа под названием DECUS (Digital Equipment Computer Users' Society). Её участники обменивались друг с другом программами на магнитных лентах. DECUS просуществовала довольно долго — в 1998 году в ней все еще состояли 50 тыс. человек.

Благодаря научному сотрудничеству и обмену ПО появились языки программирования Interlisp и UCI Lisp, и эта культура дала толчок к развитию открытой ОС Unix. Но в конце 60-х – начале 70х произошло несколько важных событий, приостановивших развитие open source. Они сделали программы продуктом, который можно монетизировать.

Платный софт и интеллектуальная собственность


Если в комплекте с IBM 701 не было ПО, то в последующих мейнфреймах его становилось всё больше. Весь этот софт был включён в стоимость системы, и поставлялся в комплекте. С точки зрения регуляторов, это было посягательством на монополию. После небольшого давления и угрозы судебного разбирательства IBM сдались, и в 1969 году начали продавать ПО отдельно. Это привело к появлению рынка программ для машин IBM.

Относительно высокоуровневые языки — FORTRAN и COBOL — получили широкое распространение, а микрокомпьютеры пришли в дома энтузиастов. Начала формироваться грань между пользователями и программистами. Появились сложные программные системы, в том числе ориентированные для персонального использования. И их создатели, вполне логично, хотели защитить свой труд. Это повлекло за собой публичное обсуждение: можно ли патентовать программные продукты? Каким образом на них распространяются законы об интеллектуальной собственности?

В 1974 была организована специальная комиссия, которая закрепила права программистов в американском законодательстве. С того момента производители ПО встали в один ряд с изобретателями. Немного позже апелляционный суд США принял решение, что авторское право распространяется на компьютерные программы. Разработчики получили возможность контролировать, кто пользуется результатами их труда. И в 1983 году свободно распространяемое ПО уступило проприетарному. Тогда IBM перестали раскрывать исходный код своих программ.

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

Уроки Multics


Рынок программного обеспечения в 1960-х годах напоминал Черкизовский: вещей было много, но они плохо друг с другом сочетались. Практически под каждую новую модель компьютера ОС писали с нуля. Все больше программ выпускалось с закрытым кодом, а отсутствие стандартизации повышала стоимость их разработки.
Наиболее наглядно проиллюстрировать положение ИТ-индустрии в то время можно на примере операционной системы Multics.

В её создании принимали участие MIT, Bell Labs и General Electrics, однако они никак не могли сойтись в видении. Задачи, поставленные перед разработчиками, были амбициозными, а штат состоял из молодых, неопытных программистов. Результатом пятилетней разработки стала система, которой было не суждено найти успеха на компьютерном рынке. Подробному анализу просчётов, поспособствовавших провалу, была впоследствии посвящена отдельная статья.

Вскоре после выпуска системы Bell Labs покинули проект, посчитав его бесполезной тратой времени. Но не все сотрудники компании разделяли это мнение. Для Кена Томпсона и Денниса Ритчи этот опыт послужил уроком по архитектуре ОС. Они увидели потенциал, заложенный в модульном дизайне Multics — в нем каждая задача выполняется отдельной утилитой — и решили разработать свою ОС.

Летом 1969-го года родилась UNICS. Её первую версию Томпсон написал на домашнем миникомпьютере PDP-7 за время отпуска. После проект перекочевал в Bell Labs, где поменял название на UNIX и получил небольшую команду разработчиков.


/ фото Jason Scott CC BY

UNIX и академический рынок


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

Причиной тому были четыре фактора:

Доступность. Антимонопольное законодательство особым образом регулировало деятельность Bell Labs, которая являлась дочерним предприятием гигантов телекоммуникации AT&T и Western Electric.

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

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

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

Третья версия операционной системы была заточена под DEC PDP-11, более 170 тыс. экземпляров которого сошло с конвейера в 70-е. Для сравнения, продажи популярного мейнфрейма IBM 1401 не превысили 20 тыс. штук за всё время существования модели. В результате ОС обрела большое количество пользователей в любительском и образовательном сегментах.

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

Портативность. Чтобы запустить UNIX на другой архитектуре, достаточно было портировать компилятор C. По этой причине рабочие версии UNIX под новые процессоры появлялись быстро. Особенно важно это стало в эпоху микрокомпьютеров, которая началась в конце 70-х. Порты UNIX под домашние машины на основе Intel 8086 и Motorola 68000 пользовались большой популярностью.

Пользователи UNIX по всему миру, преимущественно — академики, активно обменивались программным обеспечением для системы. Сообщества энтузиастов существовали в Британии, Австралии и Японии. В 1975 году более сорока Американских образовательных учреждений использовали эту операционную систему.

Рождение BSD


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

Университетские дополнения к системе распространялись под названием Berkley Software Distribution (BSD). Первая версия BSD включала в себя доработанный компилятор языка Pascal, код которого был получен напрямую от Томпсона, и текстовый редактор Ex — ныне известный как Vi. Многие из новшеств BSD были реализованы в «официальных» версиях UNIX. Но в AT&T были недовольны тем, что контроль над судьбой системы уходил из рук компании.

Сотрудничество университета Беркли с военным агентством DARPA, привнесшее в BSD передовые сетевые технологии, усугубило ситуацию. Как свойственно академическому проекту, коммерческие лицензии BSD были доступны по низкой для рынка цене в тысячу долларов — и продавались тысячами. Для AT&T это был упущенный бизнес.

В то время как сотрудники Беркли использовали код UNIX преимущественно в научных целях, другие компании рассматривали популярность системы как шанс заработать. В 1978 году появился первый коммерческий компилятор C. В AT&T решили подложить этому конец и на закате 70-х ограничили распространение исходного кода ОС. Юристы компании возобновили борьбу за право полноценно монетизировать продукт и защитить его от сторонних модификаций.

В 1983 году Bell Labs по решению суда официально «отделилась» от AT&T и Western Electric. UNIX стал полностью коммерческим продуктом, а его стоимость возросла до десятков тысяч долларов — зачастую дороже железа, на котором работала операционная система.


/ фото Sam Williams CC BY-SA / Ричард Столлман

Ричард Столлман и рождение GNU


В 1970-е Ричард Столлман работал программистом в лаборатории систем искусственного интеллекта MIT. Он был известен как один из авторов EMACS — текстового редактора для миникомпьютеров семейства PDP. Как и многий другой софт того времени, исходный код EMACS свободно распространялся, и конечный продукт являлся суммой усилий пользователей.

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

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

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

Перед Столлманом стояло две задачи — создать свободную операционную систему и легальную базу для её распространения. Поэтому в 1983 году на свет появился проект GNU (GNU’s Not Unix), призванный стать открытой и улучшенной копией на тот момент уже проприетарной платформы.

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



Посты из Первого блога о корпоративном IaaS:


Свежие материалы из нашего Telegram-канала:

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


  1. saipr
    19.03.2019 21:36
    -1

    Решение использовать UNIX в качестве основы не было случайным — Ричарда привлекла портативность операционной системы.

    А нас в серидине 80-х годов прошлого столетия в UNIX- превлекало его модульность: конвейеры, перенаправление ввода/выводо, его мобильность (уже тогда он был на всех отечественных плаформах), конечно язык Си.


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

    Тут на ум сразу приходит Minix.


    1. khim
      19.03.2019 21:59
      -1

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

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

      Это был перебор даже для тогдашних суровых, бородатых, хакеров.


      1. einhander
        19.03.2019 23:12

        Это был перебор даже для тогдашних суровых, бородатых, хакеров.

        Если не ошибаюсь, то это и было одной из причин для Линуса написать свое ядро для ОС.


        1. Dorogonov_DA
          19.03.2019 23:25

          В большей степени — недоступность BSD из-за судебных тяжб между AT&T и BSDI.


          1. khim
            19.03.2019 23:30
            -1

            Нет. Конкретно Линусу было интересно просто поиграться с защищённым режимом 80386.

            Но да, много народу пришло в Linux именно из-за этого.


            1. Dorogonov_DA
              19.03.2019 23:35

              По словам Маккузика, Линус Торвальдс (Linus Torvalds), отец открытой операционной системы Linux, в свое время сказал ровно следующее: «Мне бы не пришлось создавать Linux, если бы в начале 90-х на BSD не подали судебный иск. Это бы не было необходимостью».


              1. DrPass
                20.03.2019 02:56
                +2

                Первые версии ядра Linux он начал публиковать в группах примерно за год до того, как был подан тот судебный иск. Так что ему всё-таки было просто интересно поиграться с защищённым режимом :)
                Эта фраза, как мне кажется, скорее всего имеет искаженный смысл. Судя по всему, Торвальдс имел в виду, что если бы не тот иск, то BSD имела бы значительную фору в распространении на рынке, и для Линукса там не было бы места.


        1. khim
          19.03.2019 23:29
          -1

          Точно так.


      1. saipr
        20.03.2019 09:36

        Но мы ее развивали, добавляя в нее много "полезных и нужных вещей". Новой версии мы дали название МИНОС. Среди полезных вещей был файловый менеджер типа нортен командер, 16-ричный редактор, двайвера для COM-порта, загрузка с винчестера (не забывайте это был 1987 год) и другое. С этими доработками Minix/МИНОС использовался для решения практических задач при подготовки списков на получения ваучеров в 1992 году.


  1. third112
    20.03.2019 05:56

    В 1961 году появилась еще одна группа под названием DECUS (Digital Equipment Computer Users' Society). Её участники обменивались друг с другом программами на магнитных лентах. DECUS просуществовала довольно долго — в 1998 году в ней все еще состояли 50 тыс. человек.
    Сославшись на статью в вики автор упустил важный момент: первую фразу из этой статьи:
    The Digital Equipment Computer Users' Society (DECUS) was an independent computer user group related to Digital Equipment Corporation (DEC).
    И ниже:
    DECUS was the Digital Equipment Computer Users' Society, a users' group for Digital Equipment Corporation computers. Members included companies and organizations who purchased DEC equipment; many members were application programmers who wrote code for DEC machines or system programmers who managed DEC systems.


    1. saboteur_kiev
      20.03.2019 14:28

      На фотке, кстати RT11SJ — не юникс, и комп примерно из серены 80-х, а не семидесятых. У меня до сих пор дискетка с этой ОС где-то валялась (думаю уже размагнитилась).


      1. nochkin
        20.03.2019 19:37

        Если речь про фотку с VT100, то это только терминал (точно не PDP-7, конечно). Вроде в конце 70 появились эти терминалы.
        А как там видно, что это «SJ», а не «FB» или другая RT-11 версия?


        1. saboteur_kiev
          21.03.2019 02:33

          А там на экране RT11SJ.SYS =)


          1. khim
            21.03.2019 02:44
            +1

            RT11FB.SYS там тоже есть…


            1. nochkin
              21.03.2019 05:08

              Ага. Вот поэтому и стало интересно как можно так определить.
              Но похоже, что на saboteur_kiev просто ностальгия нахлынула. У меня она как раз больше с FB связана :-)


              1. saboteur_kiev
                21.03.2019 20:05
                +1

                Именно так, недосмотрел FB во втором столбце…


  1. third112
    20.03.2019 06:14

    До 1975 года не существовало концепции «персонального компьютера» как таковой. Внимание общественности было обращено главным образом на мейнфреймы. Но рынок миникомпьютеров — маломощных альтернатив мейнфреймам — стремительно рос.
    Были мини-ЭВМ, а потом и микро-ЭВМ. DEC в основном позиционировался на мини-ЭВМ. Среди важнейших объективных причин быстро растущего спроса на мини-ЭВМ была потребность в небольших (по габаритам) управляющих ЭВМ. Зачастую они работали под ОС реального времени, нпр., RT-11 (DEC).


  1. sirrosh
    20.03.2019 13:41

    Два раза в тексте встречается слово портативность, где общепринятому смыслу в р.я. не отвечает. Судя по контексту, переводчик знает о термине «портировать», «портируемость» (в оригинале «portable», «portability», etc), так в чем же дело?
    Или это я отстал?


  1. mpa4b
    20.03.2019 20:40

    Плашки 'перевод' вроде нет? Ну тогда извините, но

    Её первую версию Томпсон написал на домашнем миникомпьютере PDP-7 за время отпуска.
    PDP-7 никак не тянет на ДОМАШНИЙ компьютер. image


    1. khim
      21.03.2019 01:24

      Мало ли у кого какой дом…


      1. nochkin
        21.03.2019 05:09

        Да и по тем временам вполне себе такой «мини».


      1. khanid
        21.03.2019 12:27

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