В то время как некоторые идеи (например, объектно-ориентированный подход) непосредственно касаются только разработчиков и лишь косвенно влияют на конечного пользователя, концепция множественных прикладных сред приносит пользователю долгожданную возможность выполнять на своей ОС программы, написанные для других операционных систем и других процессоров.
И сейчас дополнительное программное обеспечение позволяет пользователям некоторых ОС запускать чужие программы (например, 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 - двоичный интерфейс прикладного программирования), производительность может резко вырастить. В результате на таких участках кода скорость работы программы может достичь (а возможно, и превзойти) скорость работы на своем родном процессоре.
Возможно стоит прочитать:
- Joomla! — это целый мир!
- Привычки пользователей
- Диалоги
- Категория Описание
- Область Debug Settings
- Пиктограмма New
- Декоративные элементы
- Папки, флайеры, наклейки
- Алгоритмы взаимного исключения
- Физическая организация и адрес файла
- Кэширование диска
- Процессы и нити в распределенных системах
- Списки намерений
- Новый элемент
- Пиктограмма Trash
- Корпоративные ОС
- Нити
- Особенности методов построения
- Сетевые операционные системы
- Дерево каталогов в nds
- Множественные прикладные среды
- ООП эффективен
- Реализации справочных систем
- Страничное распределение
- Управление локальными ресурсами
- Вызов отдаленных процедур (RPC)
- ХАМРР для Windows
- Шаг 2: предустановочная проверка
- Контент и его термины
- Расширения и компоненты
- Алгоритмы взаимного исключения
- Физическая организация и адрес файла
- Кэширование диска
- Процессы и нити в распределенных системах
- Списки намерений
- Корпоративные ОС
- Нити
- Особенности методов построения
- Сетевые операционные системы
- Дерево каталогов в nds
- Множественные прикладные среды
- ООП эффективен
- Реализации справочных систем
- Страничное распределение
- Управление локальными ресурсами
- Вызов отдаленных процедур (RPC)
- Базовые операции RPC
- Физическая организация устройств ввода вывода
- Кэширование диска
- Процессы и нити в распределенных системах
- Критическая секция
- Особенности областей использования
- Сетевые операционные системы
- Дерево каталогов в nds
- Множественные прикладные среды
- ООП эффективен
- Сравнение вариантов организации взаимодействия сетей
- Нити и RPC
- Репликация
- Страничное распределение
- Управление памятью
- Вызов отдаленных процедур (RPC)
- Команды разработчиков и гражанский порыв
- Термины, концепции и соображения
- Подменю
- Настройки Server
- Область Session Settings
- Раздел User Details
- Контент
- Базовые операции RPC
- Физическая организация устройств ввода вывода
- Кэширование диска
- Процессы и нити в распределенных системах
- Область Parameters — Component
- Критическая секция
- Особенности областей использования
- Сетевые операционные системы
- Изменение шаблона для веб-сайта
- Дерево каталогов в nds
- Множественные прикладные среды
- ООП эффективен
- Сравнение вариантов организации взаимодействия сетей
- Нити и RPC
- Репликация
- Страничное распределение
- Управление памятью
- Вызов отдаленных процедур (RPC)
- Рабочая среда
- В третьей части вы определяете тип данных
- Подключаемые модули
- Средства Joomla!
s#0