История open source, часть вторая: рождение UNIX и GNU

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

Фото — Peter HamerCC BY-SA

Первая часть рассказа.

Уроки Multics

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

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

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

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

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 WilliamsCC BY-SA / Ричард Столлман

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

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

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

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

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

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

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

Дополнительное чтение на выходные:

0
2 комментария
Аккаунт удален

Комментарий недоступен

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

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

Ответить
Развернуть ветку
-1 комментариев
Раскрывать всегда