Комикс F/OSS Comics рассказал, как Билл Джой создал BSD Unix

Комикс F/OSS Comics рассказал, как Билл Джой создал BSD Unix

В 13-м выпуске серии F/OSS Comics, третьей части рассказа о BSD Unix, пересказана ранняя история Berkeley Software Distribution (BSD). Когда в 1976 году Кен Томпсон вернулся в Bell Labs, Билл Джой и Чак Хейли начали самостоятельно изучать ядро Unix. В начале 1977 года Джой собрал первый BSD: Pascal-систему и ex, строчный редактор, развившийся из em. Поводом, как показано в комиксе, стали просьбы других университетов поделиться компилятором Pascal. Ранний BSD не был самостоятельной операционной системой, а представлял собой набор программ для установки на уже работающий Unix. За следующий год разослали около тридцати копий.

Чтобы получить BSD, требовалась лицензия AT&T на исходный код Unix; Berkeley брал плату только за ленту и доставку. В Беркли уже была традиция делиться исследовательским ПО, и BSD её продолжил. Движение за свободу слова, культура хиппи и антивоенный активизм, как сказано в статье, «по некоторым сведениям» тоже повлияли на решение Джоя брать так мало. Университеты и исследовательские центры могли получить Unix с исходным кодом за скромную лицензионную плату, что тоже помогло системе распространиться. В репликах комикса звучит и мотив антимонопольного соглашения: Bell Labs не могла продавать Unix как продукт.

Вторая сборка, 2BSD, появилась после того, как Джой улучшил Pascal-систему по отзывам пользователей. Он добавил vi (визуальный режим ex), C shell и другие инструменты. За следующий год отправили почти семьдесят пять лент. Джой не только исправлял ошибки: он сам обрабатывал каждый запрос, копировал BSD на ленты и отправлял их по почте.

В 1978 году в Беркли появился VAX для группы профессора Ричарда Фейтмана: 32-разрядный, с целым мегабайтом памяти (так описано в диалоге комикса). От Bell Labs у них уже была VAX Unix под названием 32/V, но она не использовала аппаратную поддержку виртуальной памяти, и адресное пространство программы ограничивалось физической памятью. Этого не хватало для работы Фейтмана над системой компьютерной алгебры Macsyma, которую начали разрабатывать в MIT в конце 1960-х (она умела раскладывать выражения на множители, вычислять производные и интегралы). Виртуальная память использует диск, чтобы дать программам адресное пространство больше физической памяти.

Аспирант Беркли Озалп Бабаоглу, работавший с профессором Доменико Феррари, взялся добавить виртуальную память в VAX Unix. Джой помог ему встроить код в 32/V и отладить его. Отладка шла и в праздники конца 1978 года, а к январю 1979 года большинство ошибок исправили; в комиксе система наконец заработала без падений.

Джой перенёс на VAX ex, vi, C shell и другие инструменты 2BSD, а Питер Кесслер и Маршалл Кирк МакКьюсик перенесли Pascal-систему. Всё это объединили со стандартными утилитами 32/V и ядром с виртуальной памятью Бабаоглу и Джоя. Получилась 3BSD, поставки которой начались в декабре 1979 года. ARPANET с 1969 года соединяла исследовательские центры, финансируемые DARPA, но на её узлах стояли разные компьютеры и операционные системы, и переносить или переписывать ПО было дорого. DARPA заинтересовалась переносимостью Unix и обратила внимание на успешную рассылку 3BSD исследовательским организациям. Что DARPA сделала дальше, в этой части не рассказывается.

Ключевые факты

  • В начале 1977 года Билл Джой собрал первый BSD: Pascal-систему и редактор ex; это был набор ПО для установки на существующий Unix, за год разослали около тридцати копий.
  • Для получения BSD требовалась лицензия AT&T на исходный код Unix; Berkeley брал плату только за ленту и доставку.
  • 2BSD добавила vi, C shell и другие инструменты; за следующий год отправили почти семьдесят пять лент, а Джой сам копировал их и рассылал.
  • В 1978-1979 годах Озалп Бабаоглу и Джой добавили виртуальную память в VAX Unix (32/V); на этой основе возникла 3BSD, поставки которой начались в декабре 1979 года.
  • DARPA заинтересовалась переносимостью Unix и заметила успешную рассылку 3BSD исследовательским организациям.

Почему это важно

Материал показывает, с чего начинался BSD: не с готовой операционной системы, а с набора ПО поверх Unix, который один человек, Билл Джой, вручную копировал на ленты и рассылал университетам. Дальше он вырос в 2BSD и 3BSD с виртуальной памятью для VAX, а на 3BSD обратила внимание DARPA. Для истории свободного и открытого ПО это важный эпизод о том, как распространялся исследовательский код.

Кому это важно

Тем, кто интересуется историей Unix, BSD и открытого ПО, а также преподавателям и студентам, которым нужен наглядный и короткий рассказ об этом периоде. К ИИ-тематике материал отношения не имеет.

Как это применить

Практического применения нет: это образовательный комикс для чтения, часть серии. Его можно использовать как введение в тему перед более подробными источниками. В тексте приведён список литературы, среди прочего статья Маршалла Кирка МакКьюсика «Twenty Years of Berkeley Unix» (1999) и материалы Unix Heritage Society с архивом исходного 2BSD.

Можно ли доверять

Это комикс-пересказ со ссылками на литературу: МакКьюсика (1999), статью Эндрю Леонарда в Salon (2000), материалы SRI International об ARPANET, биографическую справку о Бабаоглу, архив Unix Heritage Society и статью Уоррена Туми в IEEE Spectrum (2011). Реплики в речевых пузырях, вымышленные диалоги, а не цитаты. Влияние контркультуры Беркли на решение Джоя в тексте подано лишь как «по некоторым сведениям».

Риски и подводные камни

Диалоги в комиксе, иллюстрация, а не документальные свидетельства. Версия о влиянии Free Speech Movement, хиппи и антивоенного активизма на низкую цену не подкреплена в тексте ничем, кроме общей ссылки на статью в Salon. Размеры платы за ленту и лицензию не названы. Точных дат месяцев выхода первого BSD и 2BSD нет, число лент 3BSD не указано, а числа копий (около тридцати и почти семьдесят пять) приблизительные.