В «Юниксоиде» мы постоянно пишем про Linux и FreeBSD, но совсем забываем о других BSD-системах. Может показаться, будто дело в том, что эти системы морально умерли и не годятся для реального использования. Это не так, настоящая причина — низкий интерес к BSD. Мы хотим это исправить и этим циклом статей покажем, что BSD не только живы и активно развиваются, но и невероятно красивы с точки зрения архитектуры и более чем пригодны для применения.

 

Вместо введения

Всего у нас будет четыре статьи с общим названием «Тур по BSD». Эта статья посвящена истории возникновения BSD и ее пути от простого набора программ до полноценной операционной системы, впоследствии разделившейся на множество вариантов. Во второй части мы поговорим о NetBSD — первой из всего семейства BSD, дожившего до наших дней, и самой портируемой ОС в мире (не надо про Linux, потом все объясню). Третья часть будет посвящена OpenBSD, проекту защищенной со всех сторон операционки, который держится на плечах грубого, заносчивого, упертого, но очень талантливого программиста и руководителя. А закончим рассказом о самой молодой и неоднозначной, но очень интересной в архитектурном плане DragonFly и ее гибридном ядре и ломающей все стереотипы ФС HAMMER.

Ты можешь подумать, что посвящать отдельную статью истории BSD — это излишество и о ней можно было бы сказать кратко, но не торопись делать выводы. История BSD — не просто история студентов-ботанов из университета Беркли, которые, вместо того чтобы пить пиво и устраивать тусовки, писали код. Это история возникновения движения первых тру-хакеров, история появления идеи открытого исходного кода, история Билла Джоя, основателя легендарной компании Sun, и Эрика Шмидта, председателя совета директоров компании Alphabet Inc. (Google), история возникновения культового редактора vi, API сокетов и эталонной реализации TCP/IP-стека, история судебных тяжб и переписывания большей части кода системы просто потому, что толстосумы хотели заработать побольше денег. В конце концов, это просто теплая ламповая история, частью которой хотелось бы быть любому из нас.

 

Младенчество: 1BSD, 2BSD

Давным-давно, в далекой-далекой лаборатории Bell Labs выпускник Беркли Кен Томпсон и его коллега Деннис Ритчи решили создать игру Space Travel. Они получили добро от руководства, выбили на реализацию идеи старый компьютер PDP-7 и, чтобы как-то писать и запускать игру на нем, вынуждены были написать операционную систему. Впоследствии она стала известна как UNICS (только позднее CS сменилось на X) и в том или ином варианте продолжает жить до сих пор. Произошло это в 1969 году, и уже в 1971-м Bell Labs начала продавать операционку университетам и исследовательским лабораториям.

Fun fact

Первая коммерческая версия UNIX была написана на языке B, а всем известный сегодня си появился только спустя год. Много позже Страуструп сломал алфавит и назвал свой язык C++ вместо D.

Однако вовсе не принадлежность Томпсона к Беркли определила имя возникшей впоследствии BSD, а тот факт, что в 1973 году копию UNIX вместе со всеми исходными текстами (это стандартный комплект поставки) приобрел Боб Фабри для запуска на компах в кампусах того самого Беркли. Как и ожидалось, необычная и архитектурно красивая UNIX жутко понравилась студентам (среди которых был Билл Джой), и они начали ее всячески хакать и видоизменять. Шло время, модификации копились, слухи о наработках студентов из Беркли ползли, и, наконец, в 1977 году Билл Джой принимает решение выпустить первый релиз BSD.

Дальше мне следовало бы начать рассказ о том, насколько крута была 1BSD для тех времен, но я просто перечислю содержимое бобины с магнитной лентой Berkeley UNIX Software Tape: компилятор и профайлер Pascal (написанный Кеном Томпсоном во время визита в Беркли в 1975-м), редактор ex, улучшенный UNIX-шелл ashell, игра Star Trek и еще несколько инструментов. Все с исходниками, man-страницами и прекомпилированными бинарниками.

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

Как бы там ни было, 30 магнитных лент 1BSD были разосланы в разные университеты, а 35 — проданы по 50 долларов за штуку (что, кстати, очень демократичная по тем временам цена). При этом Билл Джой никак не запрещал модифицировать исходные тексты включенных в 1BSD приложений и использовать их для создания собственных программных продуктов. Более того, он отслеживал изменения других людей и аккумулировал их для включения в следующие релизы BSD. Эта абсолютно новая для того времени модель разработки и распространения позднее стала известна как Open Source.

Результатом дальнейшего хакинга и разработок стала 2BSD, выпущенная в 1979-м. Как и прошлый выпуск, 2BSD не содержала самой ОС, но на этот раз включала в себя ставшие впоследствии визитной карточкой BSD-систем редактор vi с его любимой олдфагами и ненавистной новичкам двухрежимностью и шелл csh с си-подобным синтаксисом (оба — детище Билла Джоя). Также на ленту попал сетевой пакет Berknet, позволяющий обмениваться письмами, отправлять задания на печать, выполнять удаленные команды внутри сети Беркли, а также выходить в ARPANET. Его создал Эрик Шмидт, в рамках обычной дипломной работы.

Fun fact

Знаменитое клавиатурное сочетание hjkl для навигации по тексту в vi выбрано не только по причине быстрого доступа пальцами правой руки, но и просто потому, что на клавиатурах тех времен не было клавиш навигации.

Подробности о 1BSD

Весь софт на бобине занимал 1,2 Мбайт и распаковывался в 3,4 Мбайт. Каждый инструмент располагался в своем обособленном каталоге в архиве типа ar (сегодня используется для запаковки объектных файлов в статическую библиотеку, расширение .a) и снабжен описанием и инструкциями по установке, располагающимися в файле READ_ME (да, с подчеркиванием!). Главный файл README в формате troff (man-страница) пояснял, что вообще такое BSD и как это все установить. В описании есть забавные строки типа «This will require about 10 000 blocks of storage…» и .P.a.s.c.a_.l (это заголовок из файла с названием wow).

Этикетка на ленте гласила:

Berkeley UNIX Software Tape
Jan 16, 1978    TP 800BPI

To extract contents do:
tp xm ./setup; sh setup; tp xm

Вторая этикетка предупреждала, что софт распространяется только для тех, кто приобрел лицензию UNIX:

The contents of this tape are
distributed to UNIX licensees
only, subject to the software
agreement you have with Western
Electric and an agreement with
the University of California.

Терминал DEC VT100 — именно его программная реализация сегодня носит имя «Эмулятор терминала»
Терминал DEC VT100 — именно его программная реализация сегодня носит имя «Эмулятор терминала»
 

Юность: 3BSD — 4.1BSD

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


2 комментария

Подпишитесь на ][, чтобы участвовать в обсуждении

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

Check Also

Windows 10 против шифровальщиков. Как устроена защита в обновленной Windows 10

Этой осенью Windows 10 обновилась до версии 1709 с кодовым названием Fall Creators Update …