Назад
1
Московская финансово-промышленная академия
Храмцов П.Б.
Открытые системы
Москва, 2005
2
Храмцов П.Б. Учебная программа по дисциплинеОткрытые
системы” - М., Московская финансово-промышленная академия. 2005. –
263 с.
Храмцов Павел Брониславович, 2005 г.
Московская финансово-промышленная академия, 2005 г.
3
Содержание
Часть 1. Общие положения .................................................................................... 5
История вопроса...................................................................................................... 5
Понятие подхода Открытых Систем................................................................... 10
Потенциальные возможности и ограничения открытых систем...................... 12
Архитектура Открытых Систем .......................................................................... 13
Преимущества идеологии открытых систем...................................................... 17
Открытые Системы и объектно-ориентированный подход.............................. 18
Стандарты Открытых Систем.............................................................................. 21
Среда Открытых систем ....................................................................................... 23
Референсная модель ВОС (OSI/ISO)................................................................... 24
Модель MIC. .......................................................................................................... 25
Модель OSE/RF. .................................................................................................... 25
Модель MUSIC. ..................................................................................................... 26
Компоненты модели MUSIC................................................................................ 27
Администрация (Management)............................................................................. 27
Пользовательский интерфейс (User Interface).................................................... 30
Обслуживание в системе (Service interfaces for programs)................................ 32
Обслуживание доступа к информации и форматы данных (Information
and Data Formats). .................................................................................................. 33
Коммуникационные интерфейсы (Communications interfaces). ....................... 34
Профили стандартов Открытых Систем............................................................. 36
Технологический цикл построения открытых систем. ..................................... 39
Стадии внедрения среды открытых систем........................................................ 40
Стадия 1: Определение целей деятельности. ..................................................... 40
Стадия 2: Идентификация требований к прикладной системе. ....................... 40
Стадия 3: Подготовка профиля для описания набора свойств среды,
требуемых для поддержки приложения. ............................................................ 40
Стадия 4: Приобретение или создание программного обеспечения,
которое соответствует выбранному профилю. .................................................. 41
Стадия 5: Проверка приложения на соответствие характеристи- кам
открытых систем. .................................................................................................. 41
Стадия 6: Проверка на соответствие целям деятельности................................ 42
Стадия 7: Повторение последовательности действий....................................... 42
Проверка на соответствие требованиям открытых систем............................... 42
Уровни соответствия приложений. ..................................................................... 42
Сертификация систем. .......................................................................................... 43
Выводы
.......................................................................................................................................44
Часть 2. Стандарты POSIX ................................................................................... 45
История создания и текущий статус стандарта POSIX..................................... 45
Основные идеи стандарта POSIX ........................................................................ 46
Основные понятия стандарта POSIX .................................................................. 47
Основные понятия операционных систем, соответствующих стандарту
POSIX ..................................................................................................................... 50
4
Среда компиляции POSIX-совместимых приложений ..................................... 51
Мобильность POSIX-совместимых приложений............................................... 53
Основные понятия языка shell ............................................................................. 55
Конвейеры и примеры их использования........................................................... 56
Переменные и аргументы shell-процедур........................................................... 57
Служебные переменные языка shell.................................................................... 61
Окружение процессов........................................................................................... 62
Подстановка результатов выполнения команд .................................................. 64
Управляющие конструкции ................................................................................. 65
Генерация маршрутных имен файлов................................................................. 69
Перенаправление ввода/вывода........................................................................... 70
Экранирование....................................................................................................... 73
Встроенные команды ............................................................................................ 74
Вызов командного интерпретатора shell ............................................................ 78
Правила формирования и средства разбора командных строк ........................ 79
Данные, ассоциированные с пользователем ...................................................... 84
Служебные программы, обслуживающие взаимодействие пользователей .... 89
Файлы. Основные понятия................................................................................... 91
Получение информации о файлах и файловых системах ................................. 94
Изменение атрибутов файлов и текущей позиции в файловой иерархии..... 107
Создание, удаление, копирование и перемещение файлов ............................ 112
Обход и обработка файловых иерархий ........................................................... 122
Ввод/Вывод. Основные понятия........................................................................ 126
Открытие и закрытие файлов............................................................................. 128
Чтение и запись данных ..................................................................................... 134
Управляющие операции с файлами и ассоциированными данными ............ 145
Процессы. Основные понятия............................................................................ 157
Опрос и изменение атрибутов процессов......................................................... 161
Создание и завершение процессов .................................................................... 172
Общий терминальный интерфейс Основные понятия и объекты.................. 178
Служебные программы и функции для управления терминалами ................ 182
Время и работа с ним. Основные понятия и объекты ..................................... 192
Опрос и установка показаний часов реального времени ................................ 195
Преобразование данных о времени ................................................................... 200
Опрос показаний часов процессорного времени ............................................. 205
Опрос и изменение данных о времени, ассоциированных с файлами .......... 213
Приостановка выполнения на заданное время................................................. 215
Работа с интервальными таймерами ................................................................. 220
Локализация......................................................................................................... 231
Определение языково-культурной среды......................................................... 235
Создание и опрос характеристик языково-культурной среды ....................... 243
Средства для работы с каталогами сообщений................................................ 255
Заключение .......................................................................................................... 257
Приложения ......................................................................................................... 261
5
Часть 1. Общие положения
История вопроса
История концепции открытых систем отсчитывается с того
момента, когда возникла проблема переносимости (мобильности)
программ и данных между компьютерами с различной архитектурой.
Одним из первых шагов в этом направлении на Западе (кстати,
оказавшим влияние на развитие отечественной вычислительной
техники) явилось создание компьютеров серии IBM 360, обладающих
единым набором команд и способных исполнять одну и ту же
операционную систему, в зависимости от контекста под термином
приложение в дальнейшем будут пониматься как прикладные
программы так и прикладные системы.
IBM, кроме того, предоставляла лицензии на свою операционную
систему пользователям, которые предпочли купить компьютеры той же
архитектуры у других производителей.
Частичное решение проблемы мобильности для программ и
программистов обеспечили и ранние стандарты языков, например,
ФОРТРАН'а и КОБОЛ'а. Языки позволяли создавать переносимые
программы, хотя зачастую и ограничивали функциональные
возможности. Мобильность обеспечивалась также и за счет того, что эти
стандарты были приняты многими производителями различных
платформ. Когда языки приобретали статус стандарта де-факто, их
разработкой и сопровождением начинали заниматься национальные и
международные организации по стандартизации. В результате языки
развивались уже независимо от своего создателя. Достижение этого
уровня мобильности было первым примером истинных возможностей
открытых систем.
Однако мобильность без достаточной функциональной полноты,
вообще говоря, не слишком полезна. Функциональная полнота без
мобильности полезна, но ограничивает развитие технологии и
возможность выбора. Оптимальный вариант для каждого пользователя -
достаточная мобильность и достаточная функциональная полнота. Для
некоторых пользователей совместимость на уровне двоичного кода в
рамках серии IBM 360 - достаточное решение обеих проблем. Для
других достаточен стандартизованный язык. А кто-то нуждается в
использовании средств, которые не имеют прямого отношения к языкам
программирования. Так, задачи реального времени с трудом
поддавались решению в рамках системы 360 и для этих задач в начале
70-х годов стали широко применяться мини-ЭВМ, со своей
специфической архитектурой.
Следующий этап в развитии концепции открытости - это вторая
половина семидесятых годов. Он связан с областью интерактивной
6
обработки и увеличением объема продуктов, для которых требуется
переносимость (пакеты для инженерной графики, системы
автоматизации проектирования, базы данных). В это время фирма
DIGITAL начала выпуск супермини-ЭВМ VAX, работающих под
управлением операционной системы VMS [1]
. ЭВМ этой серии имели
уже 32-х разрядную архитектуру, что обеспечило значительно более
высокую эффективность программного кода и сократило издержки на
работу с виртуальной памятью. Программисты получили возможность
прямо использовать адресное пространство объемом до 4-х Гбайт, что
практически снимало все ограничения на размеры решаемых задач.
Машины этого типа надолго стали стандартной платформой для систем
проектирования, сбора и обработки данных, обслуживания
эксперимента и т.п. Именно VAX'ы стимулировали создание наиболее
мощных систем САПР, управления базами данных и машинной графики,
которые широко используются до настоящего времени.
Конец 70-х годов характеризуется и массовым применением
сетевых технологий. DIGITAL интенсивно внедряла свою архитектуру
DECnet, разработка которой началась еще в начале десятилетия. Сети,
использующие протоколы Internet (TCP/IP), первоначально
реализованные DARPA, начали широко применяться для объединения
систем как военных, так и академических организаций США. IBM
применяла собственную сетевую архитектуру SNA (System Network
Architecture), которая стала основой для предложенной Международной
организацией стандартизации ISO архитектуры Open Systems
Interconnection (OSI).
Когда сетевая обработка стала реальностью, пользователи начали
обращать внимание на совместимость и возможность интеграции как на
необходимые атрибуты открытых систем. ISO в 1977-78 годах
развернула интенсивные работы по созданию стандартов взаимосвязи в
сетях открытых систем. На основе архитектуры SNA в ходе этих работ
была создана семиуровневая модель взаимосвязи открытых систем OSI -
Open Systems Interconnection Basic Reference Model [2]
.
Модель взаимосвязи открытых систем описывает общие принципы
взаимосвязи открытых систем и используется в качестве основы для
разработки стандартов ISO. Тогда же впервые было введено
определение открытой информационной системы.
В это же время были сделаны первые системы, которые
обеспечивали организацию использования распределенных ресурсов в
системе. Реализованная фирмой DIGITAL EQUIPMENT система
VAXclaster обеспечила объединение до 42-х VAX'ов с помощью
специальной высоко скоростной линии связи или локальной сети
Ethernet. Поскольку все ЭВМ в системе были однотипными, задача
обеспечения мобильности программ в рамках системы решалась за счет
бинарной совместимости. Однако в этой системе уже реально решались
задачи разделения ресурсов (памяти, процессоров, баз данных и т.п.) [1]
7
. Таким образом, уже в то время были сделаны первые шаги к
архитектуре "клиент-сервер", широко используемой сегодня.
Первая половина восьмидесятых годов характеризуется прежде
всего массовым распространением персональных компьютеров с
операционной системой MS-DOS корпорации Microsoft. Низкая цена и
широкое распространение создали огромный рынок для данной ОС и
прикладных программ, написанных для нее. Бинарная совместимость
разрешила массу проблем. Многие прикладные программы,
выполняющиеся в MS-DOS, могут выполняться и на любой другой
совместимой системе. Но эта "клоновая" совместимость ограничена
архитектурой Intel 80x86 с 16-разрядной адресацией, графикой низкого
разрешения и невозможностью исполнять более одного задания
одновременно. Для среды MS-DOS характерен также риск быстрого
распространения вирусов, поскольку система слабо (или никак не)
защищена на программном и аппаратном уровнях.
В 1982 году был сделан первый RISC-процессор. Это событие не
вызвало в то время больших откликов, однако оно в значительной
степени определило развитие открытых систем до конца десятилетия и
играет решающую роль и сегодня. Во-первых, RISC архитектура
обеспечила существенное повышение производительности
микропроцессоров, а во-вторых, предоставила, наконец, аппаратную
базу для реализации эффективной переносимости программ для
процессоров разных производителей. RISC процессоры вне зависимости
от конкретных реализаций, принадлежащих различным производителям,
имеют ряд общих, характерных, в совокупности именно для них,
особенностей:
- Большинство машинных команд исполняется за один
машинный цикл.
- Регистровая архитектура: все команды обработки выбирают
операнды и помещают результаты только в регистрах. Обращение к ОЗУ
производится только командами чтения/записи.
- Конвейерная обработка команд, которая позволяет исполнять
несколько команд одновременно.
- Простой фиксированный формат команд с небольшим
количеством методов адресации ОЗУ.
- Наличие быстродействующей памяти: любая RISC машина
имеет, по крайней мере, 32 регистра общего назначения и большую кэш-
память.
- Упрощенный набор команд, из которого исключены
многоцикловые команды, предназначенные для реализации сложных
функций, что обеспечивает предельно короткий машинный цикл и
высокое быстродействие аппаратуры.
Эти особенности приводят к тому, что сложные многошаговые
функции перемещаются в область программной реализации. В
результате, ручное программирование становится малоэффективным и
8
основную роль начинают играть языки высокого уровня. Исполняемый
машинный код становится длиннее и требует ОЗУ большего объема,
чего так стремились избежать разработчики традиционных CISC ЭВМ,
поскольку тогда стоимость ОЗУ была высокой. Однако стоимость
оперативной памяти в течение последнего десятилетия очень быстро
уменьшается и к середине восьмидесятых годов экономически
приемлемой становится оперативная память объемом в единицы
Мегабайт (даже для небольших персональных ЭВМ), и размеры
исполняемого кода уже не ограничивают применение RISC процессоров.
Характерная для архитектуры RISC элементарность набора команд
позволяет приблизить эффективность программ, написанных на языках
высокого уровня, к эффективности программ в машинном коде и
автоматизировать процесс настройки программ для их оптимизации. В
результате, использование стандартных компиляторов, сделало
возможным обеспечить на уровне языков высокого уровня эффективную
мобильность программ. RISC процессоры обеспечили идеальные
условия и для массового внедрения операционной системы (ОС) UNIX.
Хотя OC UNIX была разработана до создания MS-DOS, она не
могла эффективно использоваться, так как требовала значительных
аппаратных ресурсов. С появлением мощных RISC-микропроцессоров с
32-х разрядной архитектурой UNIX проявила себя как наиболее
перспективная открытая операционная среда. Исторически OC UNIX
оказалась самым жизненным вариантом для создания общей базы
переносимости. Она удовлетворяет большинству требований,
предъявляемых к открытым системам. Прикладные программы,
создаваемые для работы в UNIX, при определенных условиях могут
иметь весьма высокую переносимость как в другие UNIX-подобные
системы, так, во многих случаях, и в системы, удовлетворяющие
стандартам на интерфейсы, подобные тем, которые разработаны X/Open
и POSIX (см. п. 1.7.).
Одна из причин рассматривать систему UNIX в качестве базовой
ОС для использования в открытых системах состоит в том, что эта ОС
почти целиком написана на языке высокого уровня, модульна и
относительно гибка. OC UNIX составлена из основных компонентов,
включающих ядро, инструментальные утилиты и оболочку. Ядро,
составляющее сердцевину UNIX`a, состоит из относительно маленького
набора программ, предоставляющих системные ресурсы и
непосредственно взаимодействующих с аппаратурой.
Утилиты - программы внешнего по отношению к ядру уровня -
выполняют основные действия по обработке данных, обращаясь в
определенной последовательности к процедурам ядра. Отдельные
утилиты, решающие простые задачи, могут объединяться с другими
утилитами для выполнения более сложных действий. Оболочка
предоставляет пользовательский интерфейс и действует в точности так
9
же, как и любая другая программа. Поскольку она не интегрирована в
ядро, ее можно разработать заново при изменении требований.
Хотя OC UNIX машинно-независима, программы, которые
реализуют некоторые службы, и часть кода зависят от аппаратуры.
Прикладные системы, использующие особенности конкретной версии
UNIX, также как в MS-DOS, реализационно зависимы.
Привлекательный аспект, связанный с OC UNIX, также состоит в
том, что компания AT&T готова предоставлять лицензии на нее. Однако
это приводит также и к появлению множества различных и
несовместимых реализаций. К тому же, особенно в начале, не все
поставщики выбирали лицензионные продукты, останавливаясь вместо
этого на разработке систем подобных UNIX с различной степенью
совместимости. Деятельность ряда организаций, таких как UniForum,
POSIX и X/Open, направлена на поиск общего функционального ядра,
которое позволило бы достичь переносимости между различными
системами.
В стадии исследований и разработки сегодня находится ряд
систем, специально проектируемых, исходя из требований,
предъявляемых разнородной распределенной сетевой средой. Некоторые
из них могут со временем стать хорошей системной платформой в среде
открытых систем.
В рамках развития технологии открытых систем работы ведутся не
только в направлении разработки операционных систем, значительные
усилия предпринимаются для создания стандартов на интерфейсы для
объединения существующих систем, прикладных программ и
пользователей. Это направление основано на разработке новых
международных промышленных стандартов и введении новых
компонент в единое модульное операционное окружение. Реализация
таких стандартов должна создать унифицированную структуру, которая
уменьшит трудности в соединении разнородных систем.
Международные стандарты должны быть реализованы для
каждого системного компонента сети, включая каждую операционную
систему и прикладные пакеты. До тех пор, пока компоненты
удовлетворяют таким стандартам, они соответствуют целям открытых
систем. Вместе с тем, для некоторых, специфических компонент,
стандартов может и не существовать, в этих случаях реализация
стандартов в нынешних условиях либо слишком сложна, либо
экономически не оправдана.
Эффект от внедрения открытых систем может быть достигнут не
только за счет операционного окружения, в котором прикладные
системы можно легко перемещать между различными аппаратными и
программными платформами, а пользователям легко перемещаться
между системами; крайне важно, что открытая операционная среда
должна обеспечить возможность функционирования уже существующих
продуктов стоимость, которых составляет миллиарды долларов.
10
Понятие подхода Открытых Систем
Применение подхода открытых систем в настоящее время является
основной тенденцией в области информационных технологий и средств
вычислительной техники, поддерживающих эти технологии. Идеологию
открытых систем реализуют в своих последних разработках все ведущие
фирмы - поставщики средств вычислительной техники, передачи
информации, программного обеспечения и разработки прикладных
информационных систем. Их результативность на рынке
информационных технологий и систем определяется согласованной (в
пред конкурентной фазе) научно-технической политикой и реализацией
стандартов открытых систем.
Одна из основных трудностей при обсуждении проблемы
открытых систем состоит в том, что для разных категорий специалистов
и организаций термин "открытые системы" понимается по-разному.
Действительно, с практической точки зрения, понятие "открытая
система" означает для данной организации именно то, что она хочет
иметь.
Что понимается под открытыми системами?
Для рассмотрения этого вопроса воспользуемся определениями
открытых систем, которые приведены в руководстве, изданном
Французской ассоциацией пользователей UNIX (АFUU) в 1992 году.
"Открытая система - это система, которая состоит из компонентов,
взаимодействующих друг с другом через стандартные интерфейсы". Это
определение, данное одним из авторов упомянутого руководства
Жаном-Мишелем Корну, подчеркивает системный аспект (структуру
открытой системы).
Вот другое определение Открытых Систем от компании Hewlett-
Packard [13]:
"Открытая система - это совокупность разнородных
компьютеров, объединенных сетью, которые могут работать как
единое интегрированное целое, независимо от того:
- где они расположены;
- как в них представлена информация;
- кем они изготовлены;
- под управлением какой операционной системы они
работают".
"Исчерпывающий и согласованный набор международных
стандартов информационных технологий и профилей функциональных
стандартов, которые специфицируют интерфейсы, службы и
поддерживающие форматы, чтобы обеспечить интероперабельность и
мобильность приложений, данных и персонала". Это определение,
данное специалистами IЕЕЕ, подчеркивает аспект среды, которую