ИТ-ГРАД corporate blog
Open source
History of IT
Biography of geeks
March 19

Краткая история open source — как свободное ПО сражалось с проприетарным

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


/ фото 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-канала:

+27
13k 52
Comments 22
Top of the day