Создание полноценной прикладной среды, полностью совместимой со средой другой операционной системы, является достаточно сложной задачей, тесно связанной со структурой операционной системы. Существуют различные варианты построения множественных прикладных сред, отличающиеся как особенностями архитектурных решений, так и функциональными возможностями, обеспечивающими различную степень переносимости приложений.
Во многих версиях ОС UNIX транслятор прикладных сред реализуется в виде обычного приложения. В операционных системах, построенных с использованием микроядерной концепции, таких, как, например, Windows NT, прикладные среды выполняются в виде серверов пользовательского режима. А в OS/2 с ее более простой архитектурой средства организации прикладных сред встроены глубоко в операционную систему.
Один из наиболее очевидных вариантов реализации множественных прикладных сред основывается на стандартной многоуровневой структуре ОС. На рис. 2. 7 операционная система OS1 поддерживает кроме своих «родных» приложений приложения операционной системы OS2. Для этого в ее составе имеется специальное приложение – прикладная программная среда, которая транслирует интерфейс «чужой» операционной системы –API OS2 в интерфейс своей «родной» операционной системы – API OS1.
В другом варианте реализации множественных прикладных сред операционная система имеет несколько равноправных прикладных програм-мных интерфейсов. В приведенном на рис. 2. 8 примере операционная си-стема поддерживает приложения, написанные для OS1, OS2 и OS3. Для этого непосредственно в пространстве ядра системы размещены прикладные программные интерфейсы всех этих ОС: API OS1, API OS2 и API OS3.
Пользовательский режим
API OS1
API OS2
API OS3
Менеджеры ресурсов
Базовые механизмы
Машинно-независимые модули
Привилегированный
режим
Рис. 2. 8. Реализация совместимости на основе нескольких равноправных API
В этом варианте функции уровня API обращаются к функциям нижележащего уровня ОС, которые должны поддерживать все три в общем случае несовместимые прикладные среды. В разных ОС по-разному осуществляется управление системным временем, используется разный формат времени дня, на основании собственных алгоритмов разделяется процессорное время и т. д. Функции каждого API реализуются ядром с учетом специфики соответствующей ОС, даже если они имеют аналогичное назначение.
Еще один способ построения множественных прикладных сред основан на микроядерном подходе. При этом очень важно отделить базовые, общие для всех прикладных сред, механизмы операционной системы от специфических для каждой из прикладных сред высокоуровневых функций, решающих стратегические задачи.
В соответствии с микроядерной архитектурой все функции ОС реализуются микроядром и серверами пользовательского режима. Важно, что каждая прикладная среда оформляется в виде отдельного сервера пользовательского режима и не включает базовых механизмов (рис. 2. 9). Приложения, используя API, обращаются с системными вызовами к соответствующей прикладной среде через микроядро. Прикладная среда обрабатывает запрос, выполняет его (возможно, обращаясь для этого за помощью к базовым функциям микроядра) и отсылает приложению результат. В ходе выполнения запроса прикладной среде приходится, в свою очередь, обращаться к базовым механизмам ОС, реализуемым микроядром и другими серверами ОС.
Приложения Серверы ОС
Пользовательский
режим
Привилегированный
режим
Рис. 2. 9. Микроядерный подход к реализации множественных прикладных сред
Такому подходу к конструированию множественных прикладных сред присущи все достоинства и недостатки микроядерной архитектуры, в частности:
очень просто можно добавлять и исключать прикладные среды, что является следствием хорошей расширяемости микроядерных ОС;
надежность и стабильность выражаются в том, что при отказе одной из прикладных сред все остальные сохраняют работоспособность;
низкая производительность микроядерных ОС сказывается на скорости работы прикладных сред, а значит, и на скорости выполнения приложений.
Создание в рамках одной операционной системы нескольких прикладных сред для выполнения приложений различных ОС представляет собой путь, который позволяет иметь единственную версию программы и переносить ее между операционными системами. Множественные прикладные среды обеспечивают совместимость на двоичном уровне данной ОС с приложениями, написанными для других ОС. В результате пользователи получают большую свободу выбора операционных систем и более легкий доступ к качественному программному обеспечению.
Вопросы для самопроверки
49. В чем отличие микроядерной архитектуры от традиционной архитектуры ОС?
50. Почему микроядро хорошо подходит для поддержки распределенных вычислений?
51. Что подразумевается под концепцией множественных прикладных сред?
52. В чем суть метода трансляции библиотек?
Контрольные вопросы
53. Каким термином в микроядерной архитектуре принято называть менеджеры ресурсов, вынесенные в пользовательский режим?
54. Можно ли считать микроядерную архитектуру в высокой степени переносимой?
55. Почему микроядерная архитектура ОС в большей степени расширяемая, чем классическая ОС?
56. Является ли микроядерная архитектура более надежной, чем традиционная?
57. Укажите причину, из-за которой производительность микроядерной архитектуры хуже традиционной схемы ОС.
58. Можно ли считать ОС Windows NT 4.0 системой с микроядерной архитектурой?
59. Какие виды совместимости Вам известны?
60. За счет каких действий достигается двоичная совместимость для процессоров различных архитектур?
61. Укажите способ, который позволяет повысить производительность ПК при выполнении «чужого» исполняемого файла.
62. Достаточно ли одного метода трансляции библиотек для полной совместимости приложений?