Совместимость и множественные прикладные среды

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

Двоичная сопоставимость и сопоставимость начальных текстов

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

Сопоставимость на уровне начальных текстов просит наличия соответственного компилятора Совместимость и множественные прикладные среды в составе программного обеспечения компьютера, на котором подразумевается делать данное приложение, также сопоставимости на уровне библиотек и системных вызовов. При всем этом нужна перекомпиляция имеющихся начальных текстов в новый исполня-емый модуль. Сопоставимость на уровне начальных текстов принципиальна в главном для разработчиков приложений, в распоряжении которых эти начальные Совместимость и множественные прикладные среды тексты всегда имеются. Но для конечных юзеров практическое значение имеет только двоичная сопоставимость, потому что исключительно в этом случае они могут использовать один и тот же коммерческий продукт, поставляемый в виде двоичного исполняемого кода, в разных операционных средах и на разных машинах. Для юзера, купившего в свое время пакет Совместимость и множественные прикладные среды (к примеру, Lotus 1-2-3) для MS-DOS, принципиально, чтоб он мог запускать этот полюбившийся ему пакет без каких-то конфигураций и на собственной новейшей машине, работающей под управлением, к примеру, Windows NT. Обладает ли новенькая ОС двоичной совместимостью либо совместимостью начальных текстов с существующими операционными системами, находится в зависимости Совместимость и множественные прикладные среды от многих причин. Самый главный из их – архитектура микропроцессора, на котором работает новенькая ОС. Если микропроцессор употребляет тот же набор команд (может быть, с некими добавлениями) и тот же спектр адресов, тогда двоичная сопоставимость может быть достигнута достаточно легко.

Для этого довольно соблюдения сле­дующих критерий:

вызовы функций API Совместимость и множественные прикладные среды, которые содержит приложение, должны поддерживать­ся данной ОС;

внутренняя структура исполняемого файла приложения должна соответство­вать структуре исполняемых файлов данной ОС.

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

Пусть, к примеру, требуется выполнить Совместимость и множественные прикладные среды DOS-программу для IBM PC-совместимого компьютера на компьютере Macintosh. Компьютер Macintosh построен на базе микропроцессора Motorola 680x0, а компьютер IBM PC - на базе микропроцессора Intel 80x86. Микропроцессор Motorola имеет архитектуру (систему команд, состав регистров и т. п.), хорошую от архитектуры микропроцессора Intel, потому ему непонятен двоичный Совместимость и множественные прикладные среды код DOS-программы, содержащей аннотации этого микропроцессора. Для того чтоб компьютер Macintosh сумел интерпретировать машинные аннотации, которые ему вначале непонятны, на нем должно быть установлено особое программное обеспечение - эмулятор.

Эмулятор должен поочередно выбирать каждую двоичную аннотацию микропроцессора Intel, программным методом дешифровать ее, чтоб найти, какие деяния она задает, а Совместимость и множественные прикладные среды потом делать эквивалентную подпрограмму, написанную в инструкциях микропроцессора Motorola. Потому что к тому же у микропроцессора Motorola нет в точности таких же регистров, флагов и внутреннего арифметико-логического устройства, как в Intel, он должен также имитировать (эмулировать) все эти элементы с внедрением собственных регистров либо памяти. Состояние эмулируемых регистров и флагов Совместимость и множественные прикладные среды после выполнения каждой команды должно быть полностью таким же,как и в реальном микропроцессоре Intel. Это обычная, но очень неспешная работа, потому что одна команда микропроцессора Intel исполняется существенно резвее, чем эмулирующая его последовательность ко­манд микропроцессора Motorola.

Трансляция библиотек

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

Эффективность этого подхода связана с тем, что большая часть нынешних программ работают под управлением Совместимость и множественные прикладные среды GUI (Graphic User Interface - графических интерфейсов юзера) типа Windows, Mac либо UNIX Motif, при всем этом приложения растрачивают огромную часть времени, производя некие отлично прогнозируемые деяния. Они безпрерывно делают вызовы библиотек GUI для манипулирования окнами и для других связанных с GUI действий. Сейчас в обычных программках 60-80 % времени тратится Совместимость и множественные прикладные среды на выполнение функций GUI и других библиотечных вызовов ОС. Конкретно это свойство приложений позволяет прикладным средам восполнить огромные издержки времени, потраченные на покомандное эмулирование программки. Кропотливо спроектированная программная прикладная среда имеет в собственном составе библиотеки, имитирующие внутренние библиотеки GUI, но написанные на «родном» коде, и этим достигается существенное Совместимость и множественные прикладные среды ускорение выполнения программ с API другой операционной системы. Время от времени таковой подход именуют трансляцией для того, чтоб отличать его от более неспешного процесса эмулирования кода по одной команде за один раз.

К примеру, для Windows-программы, работающей на Macintosh, при интерпретации команд микропроцессора Intel 80x86 производительность может Совместимость и множественные прикладные среды быть очень низкой. Но когда делается вызов функции GUI открытия окна, модуль ОС, реализующий прикладную среду Windows, может перехватить этот вызов и перенаправить его на перекомпилированную для микропроцессора Motorola 680x0 подпрограмму открытия окна. В итоге на таких участках кода скорость работы программки может достигнуть (а может быть, и затмить) скорость Совместимость и множественные прикладные среды работы на собственном «родном» микропроцессоре.

Чтоб программка, написанная для одной ОС, могла быть выполнена в рамках другой ОС, недостаточно только обеспечить сопоставимость API. Концепции, положенные в базу различных ОС, могут заходить в противоречие вместе. К примеру, в одной операционной системе приложению может быть разрешено конкретно управлять устройствами ввода-вывода, в другой Совместимость и множественные прикладные среды - эти деяния являются прерогативой ОС. Любая операционная система имеет свои собственные механизмы защиты ресурсов, свои методы обработки ошибок и исключительных ситуаций, необыкновенную структуру процесса и схему управления памятью, свою семантику доступа к файлам и графический пользовательский интерфейс. Для обеспечения сопоставимости нужно организовать бесконфликтное сосуществование в рамках одной ОС нескольких Совместимость и множественные прикладные среды методов управления ресурсами компьютера.


sovetskoe-grazhdanskoe-pravo-6-glava.html
sovetskoe-montazhnoe-kino.html
sovetskogo-rajona-g-novosibirska.html