В то время как некоторые идеи (например, объектно-ориентированный подход) непосредственно касаются только разработчиков и лишь косвенно влияют на конечного пользователя, концепция множественных прикладных сред приносит пользователю долгожданную возможность выполнять на своей ОС программы, написанные для других операционных систем и других процессоров.

И сейчас дополнительное программное обеспечение позволяет пользователям некоторых ОС запускать чужие программы (например, Mac и UNIX позволяют выполнять программы для DOS и Windows). Но в поколении операционных систем, которое зарождается, средства для выполнения чужих программ становятся стандартной частью системы. Выбор операционной системы больше не будет сильно ограничивать выбор прикладных программ. Хотя стычка користувальних интерфейсов программ для Mac, Windows и UNIX на том самому экране и заставит пользователя немного потрудиться, но все равно, множественные прикладные среды операционных систем в скором времени станут такими же стандартными, как мыши и меню.

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

При реализации множественных прикладных сред разработчики сталкиваются с противоречивыми требованиями. С одной стороны, задачей каждого прикладного среды есть выполнения программы по возможности так, как если бы она выполнялась на "родной" ОС. Но нужды этих программ могут входить в конфликт с конструкцией современной операционной системы. Специализированные драйверы устройств могут противоречить требованиям безопасности. Могут конфликтовать схема управления памятью и оконные системы. Чисто экономические вопросы (например, стоимость лицензирования программ и угроза судебного преследования) также могут повлиять на дизайн чужих прикладных сред. Но самой большой потенциальной проблемой является производительность - прикладная среда должна выполнять программы по приемлемой скоростью.

Этому требованию не могут удовлетворить широко используемые системы, которые раньше эмулируют. Для сокращения времени на выполнение чужих программ прикладные среды используют имитацию программ на уровне библиотек. Эффективность этого подхода связана с тем, что большинство сегодняшних программ работают под управлением GUI (графических интерфейсов пользователя) типа Windows, Mac или UNIX Motif, при этом приложения тратят большую часть времени, производя некоторые хорошо предусмотрены вещи. Они непрерывно выполняют вызовы библиотек GUI для манипулирования окнами и для других связанных из GUI действий. И это то, что позволяет прикладным средам возместить время, израсходованное на эмулирование команды за командой. Старательно сделанная прикладная среда имеет в своем составе библиотеки, которые имитируют внутренние библиотеки GUI, но написанные на родном коде, то есть она совместная с программным интерфейсом другой ОС. Иногда такой подход называют трансляцией для того, чтобы отличать его от более медленного процесса эмулирования кода по одной команде за разом.

Например, для Windows- Программы, которые работает на Mac, при интерпретировании команд 80x86 производительность может быть очень рядом. Но когда ведется вызов функции открытия окна, модуль прикладного среды может переключить его на перекомпилированную для 680x0 подпрограмму открытия окна. Потому что библиотекам GUI не нужно дешифрировать и имитировать каждую команду, то в частях программы, которые относятся к вызовам GUI ABI (Application Binary Interface - двоичный интерфейс прикладного программирования), производительность может резко вырастить. В результате на таких участках кода скорость работы программы может достичь (а возможно, и превзойти) скорость работы на своем родном процессоре.

 

Возможно стоит прочитать: