Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ostatok_lektsy_3_kurs_OSSiO.doc
Скачиваний:
4
Добавлен:
18.09.2019
Размер:
801.28 Кб
Скачать

Истоки unix

Начать все же стоит не с описания системы, а с истории - с зарождения UNIX. Дело было в конце 60-х, когда вся патриотическая общественность Соединенных Штатов была решительно настроена догнать и перегнать СССР в области вычислительной техники. С этой целью государственные и военные структуры США вкладывали немалые деньги в наукоемкие проекты: разработку новых вычислительных систем, средств хранения и передачи данных. Операционная система - считалась тогда неотъемлемой частью именно этого компьютера и разрабатывалось по той же схеме, что и, допустим, корпус для размещения всех его узлов. Группа разработчиков получала в руки "железо" с описанием его архитектуры и задание: сделать так, чтобы можно было решать определенные задачи. Если программистам что-то не нравилось, в стенд вносились аппаратные изменения, и работа начиналась заново. Задач было много, и совокупность их решений называлась “operation system”, то есть система правил работы с машиной.

Разработкой такой системы занималась тогда исследовательская лаборатория Bell Labs, подразделение американской телефонной корпорации AT&T. Средства "холодной войны" позволили привлекать к этому делу людей весьма сведущих, в том числе из такого солидного научного центра, как Массачусетский технологический институт (MIT). Полным ходом шли исследования и эксперименты над составными частями некой универсальной системы с разделением времени, взаимодействием между компьютерами, секретностью доступа к данным и т. п (она называлась Multics). Эта система дожила до создания работающего стенда и потихоньку скончалась, т.к. оказалась слишком дорогим удовольствием для заказчиков.

Небольшая группа исследователей, главным образом Кен Томпсон (Ken Thompson) и Деннис Ричи (Dennis Ritchie), продолжала искать новые пути. Изредка они составляли проекты исследований, которые в Bell Labs поддерживали, за исключением того, что вычислительную машину на эти проекты не выделяли. Машинное время на ЭВМ из-под Multics стоило очень дорого, к тому же Кен Томпсон хотел отлаживать написанную им компьютерную игру Star Trek и играть в нее, только вот подходящей ЭВМ для этого не было. Довольно быстро где-то в подвалах AT&T отыскалась слабо загруженная работой машина PDP-7, на которую первым делом была перенесена игра.

Для хорошей работы этой игры на данной платформе (PDP-7) пришлось разработать модель псевдопараллелизма (чтобы играть в графическом режиме с помощью мыши, да еще и редактировать и отлаживать программу в текстовом режиме), алгоритмы разделения памяти, эффективную систему хранения данных на жестком диске (т.е. файловую систему), текстовый редактор, командный интерпретатор и многое другое. Активно участвующий в работе группы Брайан Керниган (Brian Kernigan) придумал системе имя - UNIX.

Идеология

Директор исследовательского центра, Дуг Макилрой (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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]