Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Акуленок_часть1.doc
Скачиваний:
38
Добавлен:
13.11.2019
Размер:
1.43 Mб
Скачать

1.3. Основные стандарты

UNIX явилась первой действительно переносимой системой, и в этом одна из причин ее успеха.

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

Так как большая часть операционной системы и утилиты написаны на языке СИ (а не на Ассемблере), система UNIX не ограничивается каким–либо процессором или аппаратной платформой. С другой стороны, так как система UNIX написана на языке высокого уровня, ее легко модифицировать, что продемонстрировали более чем 100 компаний, предложивших основанные на системе UNIX свои версии (лицензированные Open Group) и клоны семейства UNIX (новые реализации с UNIX–подобным интерфейсом, которые не требуют лицензирования со стороны Open Group). Несмотря на то, что большинство систем берут свое начало от AT&T UNIX или BSD UNIX или от обеих систем, каждая конкретная реализация может содержать уникальные расширения операционной системы, такие как, например, возможность функционирования в реальном времени, что может привести к несовместимости различных реализаций системы UNIX.

1.3.1. Основные задачи стандартизации

Чем больше появлялось версий UNIX (и особенно коммерческих), тем очевиднее становилась необходимость стандартизации системы. Наличие стандартов облегчает переносимость приложений и защищает как пользователей, так и производителей. В результате возникло несколько организаций, связанных со стандартизацией, и был разработан ряд стандартов, оказывающих влияние на развитие UNIX. На рис. 1.2 показаны различные версии UNIX, их влияние на создание стандартов и возможности операционных систем.

Рис. 1.2. Система UNIX и стандарты

Целью UNIX–стандартов является обеспечение следующих возможностей:

  1. Переносимость – возможность легкого переноса приложения с одной реализации системы UNIX в другую, т.е. способность отдельного приложения выполняться на различных типах компьютерного аппаратного обеспечения без какой-либо модификации. OC UNIX изолирует приложение от разных типов аппаратуры. Такая изоляция предоставляет разработчику возможность поддерживать отдельное приложение на множестве типов аппаратного обеспечения с минимальными усилиями. Пользователям предоставляет возможность работать с одними и теми же приложениями на разных типах компьютеров. OC UNIX предлагает стандартный набор библиотек и приложений для разработчиков и пользователей. Такой стандартный интерфейс обеспечивает переносимость приложений.

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

  3. Открытость – возможность разделять информацию приложениями, выполняющимися на разных реализациях системы UNIX.

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

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

Стандарты формируются по модульному принципу, так что их можно расширять или при необходимости заменять, если появляется лучший интерфейс.

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

Стандарт интерфейсов ОС – это сводка формальных синтаксических (интерфейсных) и семантических (поведенческих) свойств специфицируемых средств операционной системы.

1.3.2. IEEE и POSIX

Известный американский институт инженеров по электротехнике и радиоэлектронике (The Institute of Electrical and Electronics Engineers – IEEE), создал рабочую группу 1003, которая разработала в 1984 г. переносимый интерфейс операционной системы для вычислительной среды (Portable Operating System Interface for Computing Environment). Имя этого стандарта – POSIX, который, конечно же, прежде всего, относится к операционной системе UNIX.

В 1988 г. этой же группой был разработан стандарт POSIX 1003.1–1988, который определил программный интерфейс приложений (Application Programming Interface, API). Этот стандарт нашел широкое применение во многих операционных системах, в том числе и с архитектурой, отличной от UNIX. Спустя два года стандарт был принят как стандарт IEEE 1003.1–1990. Заметим, что поскольку этот стандарт определяет интерфейс, а не конкретную реализацию, он не делает различия между системными вызовами и библиотечными функциями, называя все элементы программного интерфейса просто функциями.

В 1990 г. документ POSIX 1003.1–1990 с редакционными изменениями был принят в качестве стандарта ISO.

Другими наиболее значительными стандартами POSIX, относящимися к UNIX, являются:

  • POSIX 1003.2–1992 включает определение интерпретатора UNIX и набора утилит;

  • POSIX 1003.1b–1993 содержит дополнения, относящиеся к поддержке приложений реального времени;

  • POSIX 1003.1c–1995 включает определения «нитей» (threads) POSIX.

1.3.3. Х/Ореn и Open Group

В 1984 г. ряд европейских компьютерных компаний сформировал некоммерческую организацию, получившую название Х/Open. Эта организация представляет собой международный консорциум, объединивший поставщиков информационных систем, пользователей, системных интеграторов и разработчиков программного обеспечения, задавшихся целью определить общую среду приложений – CAE (Common Application Environment). Название полностью отражает цель этой организации – разработку общего набора интерфейсов операционной системы, согласованного между различными производителями, и создание действительно открытых систем, для которых стоимость переносимости приложений как между различными версиями одной операционной системы, так и между системами различных производителей была бы минимальной.

Целью Х/Open было не определить новые стандарты, а выбрать их существующих стандартов те, которые гарантируют переносимость и работу приложений в разных системах, что позволяет пользователям переходить на разные системы без дополнительных усилий. В 1992 г. появился документ Х/Ореn Portability Guide версии 3 – XPG3, который основан на POSIX 1003.1, но содержит стандарт на графическую систему X–Window System и ряд новых элементов, рассматривающих не только ОС, но и потребительский интерфейс, базы данных, коммуникации.

Необходимо вспомнить и разработанную в Массачусетском технологическом институте систему X–Window (1984 г.). Основанная на протоколе TCP/IP, она обеспечивает мобильный графический интерфейс, к которому прилагается концепция «клиент–сервер», наиболее революционная для своего времени. Сегодня UNIX и X–Window неразделимы.

В дальнейшем интерфейсы XPG3 были расширены, включив базовые API систем BSD и System V (SVID), в том числе и архитектуру STREAMS. В результате была выпущена спецификация, ранее известная как Speed 1/70, а в 1994 г. получившая название XPG4.2.

В мае 1988 г. несколько ведущих компаний, среди которых были Apollo, Bull, HP, IBM и Siemens, учредили Фонд открытых систем (Open Software Foundation, OSF) – организацию с целью разработки и распространении открытых программных систем, независимо от AT&T. Результатом деятельности этой организации стала операционная система OSF/1. Она финансировала разработки программного обеспечения в соответствии с наиболее современными требованиями к открытым системам, специфицированными в соответствующих стандартах для разработки: системный интерфейс OSF/AES, графический потребительский интерфейс OSF/Motif, распределенные системы OSF/DCE и т. д.

Хотя ряд коммерческих операционных систем связывают себя с этой ветвью, нельзя сказать, что OSF/1 явилась новым словом в мире UNIX. Скорее, это был политический шаг, призванный снизить доминирующую роль ряда фирм, занимавшихся разработкой UNIX System V.

Основой проекта явился выбор UNIX–технологии. После внимательного изучения выбрали ядро Mach, разработанное в университете Карнеги–Меллона (100 000 строк исходного кода; код первой UNIX был на порядок скромнее), а все остальное (OSF–1 имеет, в общем, около 800 000 строк кода) предлагалось взять из IBM AIX третьей версии.

Выбор AIX не понравился AT&T. Концерну было предложено принять членство OSF, но он поставил неприемлемое условие заменить AIX на SVR4. В результате АТ&Т, Sun, UNISYS, XEROX и другие создали в марте 1989 г. организацию UNIX International (UI), которая дала широкую дорогу USL. Разработка и лицензирование софтвера оставались привилегией USL, но общий контроль был сохранен за AT&T. Взаимные столкновения и несовместимость продуктов OSF и UI явились кульминационным пунктом в так называемых UNIX–войнах.

В 1996 г. объединение усилий Х/Open и OSF (Open Software Foundation – фонд открытых систем0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) привело к созданию консорциума The Open Group, продолжившего разработки в области открытых систем. В качестве примера можно привести такие направления, как дальнейшая разработка пользовательского интерфейса, (Common Desktop Environment, CDE), и его сопряжение со спецификацией графической оболочки Motif. Другим примером является разработка стандартных интерфейсов для распределенной вычислительной среды (Distributed Computing Environment, DCE), работа над которой была начата OSF.

1.3.4. ANSI

В конце 1989 г. Американским национальным институтом стандартов (American National Standards Institute, ANSI) был утвержден стандарт ХЗ.159–1989 языка программирования СИ (16 лет спустя после его рождения). Целью появления этого стандарта являлось улучшение переносимости программ, написанных на языке Си, в различные операционные системы (не только UNIX). В этом стандарте специфицирован не только непосредственно язык Си, но и библиотеки, необходимые в каждой стандартной реализации. Поскольку с самого своего появления язык Си и соответствующие системы программирования были неразрывно связаны с ОС UNIX, то состав стандартных библиотек достаточно точно соответствует стандартной среде ОС UNIX.

Долгим и тернистым был также и путь UNIX на рынок программных средств. Считается, что только с 1 января 1984 г. дочерняя компания AT&T Bell Labs (позднее переименованная в UNIX System Laboratories, USL) вышла на рынок с UNIX в качестве торгового продукта.

1.3.5. AT&T SVID

Компания AT&T первой разработала стандарт для операционной среды системы UNIX. Этот стандарт, базирующийся на версии AT&T System V, ориентирован на уровень функционального интерфейса с операционной системой (системные вызовы), взаимодействие процессов, shell системы UNIX и некоторые базовые утилиты.

Группа USG выпустила документ под названием SVID (System V Interface Definition), в котором описывались внешние интерфейсы Unix версий System V, и этим двухтомным трудом вновь отождествила UNIX со своей System V (1983 г.).

В дополнение к SVID был выпущен так называемый SVVS (System V Verification Suite)– набор тестовых программ, позволяющих производителям получить ответ, достойна ли их система права носить имя System V.

Другим важным событием стало в 1987 г. соглашение AT&T с ведущими UNIX–производителями Sun и Microsoft о так называемой унификации UNIX. Проект предусматривал создание четвертого издания System V (SVR4), которая объединяла характеристики Xenix Microsoft (другое название UNIX для микрокомпьютеров, основанной на седьмом издании и испытавшей сильное влияние System V), SunOS (система UNIX фирмы Sun Microsystems, основанной на BSD) и System V 3.2. В 1987 г. АТ&Т в первый раз лицензировала имя UNIX.

С появлением SVR4 было выпущено новое издание SVID (уже в четырех томах) и, соответственно, новый SVVS.

Новые черты системы включали:

  • командный интерпретатор Коrn и компилятор языка СИ (BSD);

  • символические ссылки;

  • систему терминального ввода/вывода, основанную на STREAMS (System V);

  • отображаемые в память файлы (SunOS);

  • сетевую файловую систему NFS и систему вызова удаленной процедуры RPC (SunOS);

  • быструю файловую систему FFS (BSD);

  • сетевой программный интерфейс сокетов (BSD);

  • поддержку диспетчеризации реального времени;

Многие компоненты были поддержаны стандартами ANSI, POSIX, Х/Open и SVID.

1.3.6. ISO

Международная организация стандартов (International Standards Organization, ISO) координирует принятие международных стандартов для распределенных информационных систем в среде открытых систем (среда неоднородных сетевых систем). Наиболее заметные разработки были сделаны в области сетевых систем и определения эталонной семиуровневой сетевой модели открытых взаимосвязанных систем (Open Systems Interconnection, OSI).

Членами ISO обычно являются национальные организации по стандартизации. От США членом ISO является ANSI.

1.3.7. NIST/FIPS

Национальный институт стандартов и информации федеральной технологии (National Institute of Standards and Technology Federal Information) подчиняется Министерству торговли. Ранее он был известен под названием «Национальное бюро стандартов» (National Bureau of Standards – NBS). Эта организация разрабатывает стандарты для правительственных учреждений. Изначально задача заключалась в оценке предложенных POSIX.1 стандартов. Появившийся затем федеральный стандарт на обработку информации (Federal Information Processing Standard, FIPS) объединил POSIX и ряд дополнительных возможностей POSIX.1, рассматриваемых как не обязательные или не специфицированные.

В задачу NIST/FIPS входит также оценка других компонентов POSIX по мере того, как они как они становятся доступными.