Идеология

Директор исследовательского центра, Дуг Макилрой (Doug McIlroy), специалист в области макроязыков, навел Кена на идею канала (pipe, | ) между командами системы. Каналы сыграли очень важную роль в формировании идеологии UNIX как инструмента. Некоторые принципы этой идеологии в UNIX: (***слайд 45)

- Каждая программа (utility) должна решать одну простую задачу, но решать хорошо.

- Данные должны передаваться в текстовом виде, тогда и человек сможет в них разобраться, и для самих программ установится общий, но гибкий формат взаимодействия.

- Решение сложных задач - совместная работа нескольких программ, передающих друг другу данные по каналам. Этим взаимодействием управляет оболочка (shell), предназначенная для интеграции программ и управления ими.

В начале 70-х UNIX уже твердо стоял на ногах: имелась и новая машина (PDP-11), и заказчик (патентное бюро Bell Labs). Перенос системы, написанной на автокоде, с одной архитектуры на другую был довольно непрост, и Керниган предложил переписать ее на высокоуровневом языке программирования, не зависящем от конкретного железа. Томпсон попытался использовать Фортран, но этот язык не годился для системного программирования. Тогда он написал собственный язык программирования, B, который в некоторых местах получился слишком низкоуровневым. Чуть позже его товарищ - Деннис основательно переработал B - и на свет появился C (Си), который и по сей день используется для написания операционных систем.

Разработчики UNIX System Group (USG) исправляли и дополняли систему сообща. Идея и первоначальная реализация какой-нибудь утилиты могла принадлежать одному человеку, но доводить ее до совершенства мог любой. Кроме доступа к исходным текстам, совместная работа требовала, чтобы все идеи и все готовые возможности системы были задокументированы. Макилрой отлично знал: если утилита внятно и грамотно описана на родном языке, то она и хорошо запрограммирована, и пользоваться ею будет удобно. Вдобавок UNIX-сообщество росло: к середине 70-х многие университеты США уже использовали эту систему. Если нельзя сию минуту пойти и спросить автора, что делает его программа и как ею пользоваться, значит, нужно прочесть об этом в документации. Ричи предложил использовать формат, разработанный для патентного бюро, а Макилрой усовершенствовал программу документирования и создал концепцию страницы руководства (manual page), введя в документ обязательные тематические параграфы и ссылки.

К середине 70-х Bell Labs уже активно торговала UNIX, что не замедлило сказаться на темпах и направлении развития системы. С одной стороны, получая обратную связь от пользователей, эксплуатирующих систему на производстве, разработчики получили возможность избавляться от множества мелких ошибок. С другой стороны, замечаний и предложений было так много, что разработчики устали их все учитывать и UNIX почти перестал развиваться и продаваться.

Постепенно центры развития UNIX переместились в университеты, которые использовали эту систему еще и в академических целях. Одним из главных центров стал Университет Беркли, Калифорния. В середине 70-х, движение UNIX стало замедляться и выяснилось, что множество наработок для UNIX выходят за рамки AT&T (и не подчиняются их политике лицензирования). Поэтому в Беркли стали готовить свой выпуск UNIX со всевозможными накопившимися изменениями и дополнениями. Так родился дистрибутив, а точнее семейство дистрибутивов ОС - Berkeley Software Distribution (BSD).

Любой человек, каким-то образом получивший копию BSD (которая распространялась обязательно с приложением исходных текстов), считался собственником этой копии и мог, в свою очередь, копировать ее и передавать кому угодно. В Беркли рассуждали так: чем самим исправлять все ошибки, лучше дать возможность сделать это пользователю. Если при этом он окажется достаточно грамотен и улучшит работу системы - уже неплохо, а если его доработки можно будет использовать в следующем выпуске системы - совсем хорошо. Кроме того, такая лицензия существенно облегчала и организацию исследовательских работ, и промышленную эксплуатацию систем BSD.