- •Для специальности
- •230105.51 (2203) Программное обеспечение вычислительной техники и автоматизированных систем
- •Рецензенты: о.В. Фаллер, преподаватель Колледжа МосГу;
- •Содержание
- •7.8. Организация программных комплексов 56
- •7.8. Организация программных комплексов 53
- •Пояснительная записка
- •1. Общие вопросы теории операционных систем
- •1.1. Классификация программного обеспечения
- •1.2. Запуск операционной системы
- •1.3. Координация действий при работе эвм
- •1.4. Понятие файловой системы
- •1.5. Схема отыскания кластеров файла на диске в файловой системе fat16
- •2. Командный язык для управления системой
- •2.1. Особенности командного языка
- •2.2. Организация пакетной обработки информации
- •2.2.1. Формальные параметры командных файлов
- •2.2.2. Дополнительные возможности пакетной обработки. Утилита be
- •3. Конфигурирование ядра ос на примере ms dos
- •3.1. Файл config.Sys
- •3.2. Управление распределением оперативной памяти в реальном режиме работы процессора
- •3.3. Файл автозагрузки autoexec.Bat
- •4. Типы программ
- •5. Системный сервис ms dos
- •6. Организация программных комплексов
- •6.1. Код возврата программы
- •6.2. Программный хвост
- •6.3. Окружение программы
- •6.4. Запуск одной программы из другой
- •6.5. Макрокоманды
- •Пример использования макрокоманды:
- •6.6. Создание процедур и передача параметров
- •6.7. Межсегментный вызов процедур
- •6.8. Модульный принцип построения программ
- •7. Ос Windows. Особенности работы
- •7.1. Работа с файловой системой. Ms Visual Basic ver 6.0
- •7.2. Api Интерфейс Windows на примере Visual Basic ver 6.0
- •7.3. Работа с буфером обмена
- •7.4. Работа со шрифтами
- •7.5. Работа с клавиатурой и мышью
- •7.6. Ole Технология
- •7.7. Работа с мультимедиа
- •7.8. Организация программных комплексов
- •7.9. Sdi и mdi программы
- •8. Разработка справочных систем для Windows 32x
- •8.1. Формат справки WinHelp
- •8.2. Подготовка справочного файла с помощью программы Windows Help Designer
- •8.3. Подключение справочной системы к программе
- •8.4. Разработка справочных систем в формате html
- •8.4.1. Создание тем справочной службы
- •8.4.2. Создание проекта справочной службы
- •8.4.3. Формирование оглавления
- •8.4.4. Задание поисковых индексов
- •8.5. Подключение справочных файлов к программам на Visual Basic
- •9. Общая архитектура операционных систем
- •9.1. Архитектура ос
- •9.2. Ядро и вспомогательные модули ос
- •9.3. Ядро в привилегированном режиме
- •9.4. Многослойная структура ос
- •9.5. Аппаратная зависимость и переносимость ос
- •9.6. Типовые средства аппаратной поддержки ос
- •9.7. Машинно-зависимые компоненты ос
- •9.8. Переносимость операционной системы
- •9.9. Концепция микроядерной архитектуры
- •9.10. Преимущества и недостатки микроядерной архитектуры
- •9.11. Совместимость и множественные прикладные среды
- •9.12. Двоичная совместимость и совместимость исходных текстов
- •9.13. Трансляция библиотек
- •9.14. Способы реализации прикладных программных сред
- •Приложение. Некоторые функции системного сервиса msdos. Прерывание 21h Организация ввода с клавиатуры
- •Организация вывода
- •Файлы и каталоги
- •Запуск одной программы из другой
- •Литература
- •Для специальности
- •230105.51 (2203) Программное обеспечение вычислительной техники
9.11. Совместимость и множественные прикладные среды
В то время как многие архитектурные особенности операционных систем непосредственно касаются только системных программистов, концепция множественных прикладных сред непосредственно связана с нуждами конечных пользователей — возможностью операционной системы выполнять приложения, написанные для других операционных систем. Такое свойство операционной системы называется совместимостью.
9.12. Двоичная совместимость и совместимость исходных текстов
Необходимо различать совместимость на двоичном уровне и совместимость на уровне исходных текстов. Приложения обычно хранятся в ОС в виде исполняемых файлов, содержащих двоичные образы кодов и данных. Двоичная совместимость достигается в том случае, когда можно взять исполняемую программу и запустить ее на выполнение в среде другой ОС.
Совместимость на уровне исходных текстов требует наличия соответствующего компилятора в составе программного обеспечения компьютера, на котором предполагается выполнять данное приложение, а также совместимости на уровне библиотек и системных вызовов. При этом необходима перекомпиляция имеющихся исходных текстов в новый исполняемый модуль.
Совместимость на уровне исходных текстов важна в основном для разработчиков приложений, в распоряжении которых эти исходные тексты всегда имеются. Но для конечных пользователей практическое значение имеет только двоичная совместимость, так как только в этом случае они могут использовать один и тот же коммерческий продукт, поставляемый в виде двоичного исполняемого кода, в различных операционных средах и на различных машинах. Для пользователя, купившего в свое время пакет (например, 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.
