Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы. Ч.1.pdf
Скачиваний:
40
Добавлен:
05.02.2023
Размер:
1.58 Mб
Скачать

92

2.2 Операционные системы семейства Unix

2.2.1 История разработки систем UNIX

В настоящее время существует множество клонов и версий системы UNIX включая AIX, BSD, 1ВSD, НР-UX, Linux, MINIX, OSF/1, SCO UNIX, SYSTEMV, Solaris, XENIX и др., в том числе их подверсии [3,4]. Фундаментальные принципы и системные вызовы для этих систем во многом совпадают. Сходными являются и общие стратегии реализации, алгоритмы и структуры данных, хотя имеются некоторые различия.

История UNIX началась в 1969 году и связана с появлением первой системы с разделением времени CTSS (Compatible Time Sharing System — совместимая система разделения времени), разработанной в Массачусетском технологическом институте (МТИ). После шумного успеха этой системы в научных кругах исследователи МТИ объединили усилия с лабораторией Bell Labs и корпорацией General Electric и начали разработку систе-

мы MULТICS (Multiplexed Information and Computer Service —

мультиплексорная информационная и вычислительная служба). Вскоре лаборатория Bell Labs вышла из проекта, и один из инженеров этой лаборатории, Кен Томпсон, решил сам написать на ассемблере усеченный вариант MULТICS для компьютера PDP-7. Впоследствии еще один инженер Веll Labs, Брайен Керниган, как-то в шутку назвал эту систему UNICS (Uniplexed Information and Computer Service — примитивная информацион-

ная и вычислительная служба). Позже при том же произношении название системы превратилось в UNIX.

Далее к работе над этой системой присоединился Денис Ритчи, а затем весь его отдел. Во-первых, UNIX была перенесена с PDP-7 на более современные компьютеры PDP-11/20, а за-

тем PDP-11/45 и PDP-11/70 (ОП до 2 Мбайт, 16-разрядные, с

аппаратной защитой памяти). Второе усовершенствование касалось переписывания системы на языке высокого уровня, который разработал Томпсон и назвал языком В. Этот язык представлял собой упрощенную форму языка BCPL, который, в свою очередь, был упрощенным языком CPL. Эта попытка оказалась

93

неудачной из-за слабости языка В, в первую очередь из-за отсутствия в нем структур данных.

Тогда Д. Ритчи разработал следующий язык, являющийся преемником языка В, который, естественно, получил название С, и написал для него прекрасный компилятор. Вместе K. Томпсон и D. Ритчи переписали UNIX на языке С, который оказался как раз тем языком, и был нужен в то время, и который сохраняет лидирующие позиции в области системного программирования до сих пор.

В 1974 году D. Ритчи и K. Томпсон опубликовали ставшую важной вехой в истории компьютеров статью об ОС UNIX. За эту работу им позднее Ассоциацией по вычислительной технике АСМ была присуждена престижная премия Тьюринга. Публикация этой статьи привела к тому, что многие университеты встали в очередь в лабораторию Bell Labs за копией системы UNIX. По случайному стечению обстоятельств машина PDP-11 использовалась на факультетах кибернетики практически каждого университета, а операционные системы, которые поставлялись с этим компьютером, считались неудачными.

И операционная система UNIX быстро заполнила имеющийся вакуум, не в последнюю очередь благодаря тому, что поставлялась с полным комплектом исходных текстов.

Версия UNIX содержала всего 8200 строк на языке С и 900 строк на ассемблере. В результате новые идеи и усовершенствования системы распространялись с огромной скоростью. Первая переносимая версия UNIX (версия 7) состояла из 18800 строк на зыке С и 2110 ассемблерных строк (1976 г.).

К середине 80-х годов ОС UNIX широко применялась на мини-компьютерах и инженерных рабочих станциях. В 1984 г. компания АТ&Т выпустила на рынок первый коммерческий вариант системы UNIX — System III, а затем System V. Вплоть до 1993 г. АТ&Т занималась продвижением на рынке UNIX System V, а потом продала свой бизнес, связанный с UNIX, корпорации Novell, которая, в свою очередь, в 1995 году перепродала его компании Santa Cruz Operation.

Большое влияние на развитие ОС UNIX оказал Калифорнийский университет в Беркли, который приобрел UNIX Version 6 практически с момента ее выхода. При финансовой поддержке

94

агентства ARPA Министерства обороны США университет разработал и выпустил улучшенную версию UNIX для мини-ЭВМ

PDP-11, названную 1BSD (First Berkley Software Distribution),

затем 2BSD, после чего последовали 3BSD и 4BSD уже для 32разрядных ЭВМ VAX. В 4-й версии появилась поддержка сетей, в результате чего используемый в 4BSD протокол TCP/IP стал стандартом де-факто в мире UNIX, а затем в Интернете.

Таким образом, к концу 80-х годов широкое распространение получили две в чем-то несовместимые версии системы

UNIX: 4.3 BSD и System V Release 3. Для примирения двух вариантов UNIX был разработан проект POSIX (Portable Operating System — переносимая операционная система). Буквы IX в конце добавлены, чтобы имя проекта выглядело юниксообразно. В рамках этого проекта был разработан стандарт 1003.1 (а затем 1003.2). Идея стандарта POSIX заключалась в том, чтобы производитель программного обеспечения при написании программы использовал только процедуры, описанные в стандарте 1003.1, таким образом гарантируя, что эта программа будет работать на любой версии UNIX, поддерживающей данный стандарт. Достигается это тем, что за точку отсчета объединения множеств всех свойств System V и BSD комитет IEEE взял пересечение множеств, т.е. то общее, что есть как в System V, так и в BSD.

Стандарт 1003.1 описывает только системные вызовы. Принят также ряд документов, стандартизирующих потоки, утилиты, сетевые ПО и многие другие особенности UNIX. Кроме того, язык С также был стандартиирзован Национальным институтом стандартизации США ANSI и Международной организацией стандартизации ISO.

К сожалению, после успешного принятия стандарта, объединившего System V и BSD, в мире UNIX вновь произошел раскол. Группа производителей (IВM, DEC, Hewlett-Packard) организова-

ла консорциум OSF (Open Software Foundation), чтобы создать систему, удовлетворяющую всем стандартам IEEE, но с множеством других свойств. Среди этих свойств — оконная система (Х11), графический интерфейс пользователя (MOТIF), распреде-

ленные вычисления (DCE — Distributed Computing Environment —

среда распределенных вычислений), распределенное управление

95

(DME — Distributed Management Environment — среда распреде-

ленного управления), а также многое другое.

В ответ корпорация АТ&Т создала собственный консорциум UI (UNIX International), чтобы заниматься тем же. Версия UI системы UNIX основывалась на System V. Однако рынок лучше принял System V, кроме того, популярной осталась линия Университета Berkley — BSD. Многие фирмы на основе этих версий разрабатывают свои системы, например Solaris корпорации Sun идр.

На рис. 2.6 представлена хронологическая последовательность создания важнейших версий операционной системы UNIX

ипроизводных от нее систем [4]. Классической UNIX принято считать седьмую версию ОС, которая является исходной точкой двух основных ветвей развития данной архитектуры: System V и BSD.

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

Наибольшее распространение получили две весьма несовместимые линии версий UNIX: линия AT&T — UNIX System V

илиния университета Berkeley — BSD. Многие фирмы на основе этих версий разработали и поддерживают свои версии UNIX: SunOS и Solaris фирмы Sun Microsystems, UX фирмы HewlettPackard, XENIX фирмы Microsoft, AIX фирмы IBM, UnixWare

фирмы Novell (проданный теперь компании SCO) и т.д. [2].

 

96

 

 

 

 

 

 

UNICS

 

 

 

 

 

1970

 

 

 

 

 

 

 

 

Первая версия

 

 

 

 

 

 

 

 

 

 

Седьмая версия

 

 

 

1980

 

 

 

 

 

 

 

System III

Десятая

 

 

 

 

 

MINIX

 

BSD 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

System V

версия

 

BSD 4.0

 

 

 

 

 

SunOS 1.0

 

BSD 4.3

 

Mach

SVr4

 

Tahoe

 

 

 

 

 

 

 

 

 

1990

 

 

 

 

 

 

 

 

SunOS 4.1

 

 

 

 

 

 

NeXTSTEP

 

LINUX 0.01

 

 

 

 

HP-UX

Solaris 2

OpenSTEP

 

 

LINUX 1.0

 

 

 

 

 

 

 

(SunOS

МасOS X

 

 

LINUX 2.0

 

5.0)

 

 

 

AIX

 

(server)

 

 

 

 

 

 

 

 

Reno

 

 

 

 

 

 

 

 

 

 

 

FreBSD NetBSD BSD 4.4

OpenBSD

2000

Solaris 8

LINUX 2.4

Рис. 2.6 — Хронология создания версий ОС UNIX

Наибольшее влияние на унификацию версий UNIX оказали такие стандарты, как SVID фирмы AT&T, POSIX, созданный