
- •Ю.Б. Гриценко
- •Учебное пособие
- •ТОМСК — 2009
- •Ю.Б. Гриценко
- •Учебное пособие
- •Гриценко Ю.Б.
- •ВВЕДЕНИЕ
- •1 ВВЕДЕНИЕ В ОПЕРАЦИОННЫЕ СРЕДЫ, СИСТЕМЫ И ОБОЛОЧКИ
- •1.1 Основные понятия
- •1.2 Классификация операционных систем
- •1.3 Классификация построений ядер операционных систем
- •1.4 Представление об интерфейсах прикладного программирования
- •1.4.1 Общие задачи и функции интерфейсов прикладного программирования
- •1.4.2 Варианты реализации интерфейсов прикладного программирования
- •1.4.3 Характеристики интерфейсов прикладного программирования на различных уровнях реализаций
- •1.4.4 Платформенно-независимый интерфейс POSIX
- •1.5 Основные принципы построения операционных систем
- •Вопросы для самопроверки
- •2 ОБЗОР ПОПУЛЯРНЫХ ОПЕРАЦИОННЫХ СИСТЕМ
- •2.1 Операционные системы фирмы Microsoft
- •2.1.2 Операционная система Windows 2000
- •2.1.3 Операционная система Windows XP
- •2.1.4 Операционная система Windows 2003 Server
- •2.1.5 Операционная система Windows Vista
- •2.1.6 Операционная система Windows 2008 Server
- •2.2 Операционные системы семейства Unix
- •2.2.1 История разработки систем UNIX
- •2.2.2 Примеры различных версий Unix
- •2.2.3 Программное обеспечение X Window
- •2.3 Операционная система OS/2
- •2.3.1 История разработки системы OS/2
- •2.3.2 Особенности архитектуры и интерфейса OS/2 Warp
- •2.3.3 Серверная операционная система OS/2 Warp 4.5
- •2.3.4 Эпоха eComStation
- •2.4 Операционные системы реального времени. Операционная система QNX
- •2.4.1 Общее представление об операционных системах реального времени
- •2.4.2 Особенности архитектура системы QNX
- •2.4.3 Основные механизмы QNX
- •Вопросы для самопроверки
- •3 ИНТЕРФЕЙСЫ ОПЕРАЦИОННЫХ СИСТЕМ
- •3.1 Интерфейс командной строки ОС Windows
- •3.2 Интерфейс командной строки ОС Unix
- •Вопросы для самопроверки
- •ГЛОССАРИЙ
- •СПИСОК ЛИТЕРАТУРЫ
- •КОНТРОЛЬНЫЕ РАБОТЫ
- •Контрольная работа № 1
- •Контрольная работа № 2
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, созданный