2.7.1. Двоичная совместимость и совместимость исходных текстов
Необходимо различать совместимость на двоичном уровне и совместимость на уровне исходных текстов. Приложения обычно хранятся в ОС в виде исполняемых файлов, содержащих двоичные образы кодов и данных. Двоичная совместимость достигается в том случае, когда можно взять исполняемую программу и запустить ее на выполнение в среде другой ОС.
Совместимость на уровне исходных текстов требует наличия соответствующего компилятора в составе программного обеспечения компьютера, на котором предполагается выполнять данное приложение, а также совместимости на уровне библиотек и системных вызовов. При этом необходима перекомпиляция имеющихся исходных текстов в новый исполня-емый модуль. Совместимость на уровне исходных текстов важна в основном для разработчиков приложений, в распоряжении которых эти исходные тексты всегда имеются. Но для конечных пользователей практическое значение имеет только двоичная совместимость, так как только в этом случае они могут использовать один и тот же коммерческий продукт, поставляемый в виде двоичного исполняемого кода, в различных операционных средах и на различных машинах. Для пользователя, купившего в свое время пакет (например, 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.
- Рецензенты:
- Ответственные за выпуск:
- Оглавление
- Введение
- 1. Назначение и функции операционной системы
- 1.1. Функциональные компоненты операционной системы автономного компьютера
- 1.1.1. Управление процессами
- 1.1.2. Управление памятью
- 1.1.3. Управление файлами и внешними устройствами
- 1.1.4. Защита данных и администрирование
- 1.1.5. Интерфейс прикладного программирования
- 1.1.6. Пользовательский интерфейс
- Вопросы для самопроверки
- Контрольные вопросы
- 1.2. Сетевые операционные системы
- 1.2.1. Сетевые и распределенные ос
- 1.2.2. Два значения термина «сетевая ос»
- 1.2.3. Функциональные компоненты сетевой ос
- 1.2.4. Сетевые службы и сетевые сервисы
- 1.2.5. Встроенные сетевые службы и сетевые оболочки
- 1.3. Требования к современным операционным системам
- Вопросы для самопроверки
- Контрольные вопросы
- 2. Архитектура операционной системы
- 2.1. Ядро и вспомогательные модули ос
- 2.2. Ядро и привилегированный режим
- 2.3. Многослойная структура ос
- 2.4. Аппаратная зависимость ос
- 2.5. Переносимость операционной системы
- Вопросы для самопроверки
- Контрольные вопросы
- 2.6. Микроядерная архитектура
- 2.6.1. Концепция
- 2.6.2. Преимущества и недостатки микроядерной архитектуры
- 2.7. Совместимость и множественные прикладные среды
- 2.7.1. Двоичная совместимость и совместимость исходных текстов
- 2.7.2. Трансляция библиотек
- 2.7.3. Способы реализации прикладных программных сред
- Вопросы для самопроверки
- Контрольные вопросы
- 3. Процессы и потоки
- 3.1. Мультипрограммирование
- 3.1.1. Мультипрограммирование в системах пакетной обработки
- 3.1.2. Мультипрограммирование в системах разделения времени
- 3.1.3. Мультипрограммирование в системах реального времени
- Вопросы для самопроверки
- Контрольные вопросы
- 3.2. Мультипроцессорная обработка
- Вопросы для самопроверки
- Контрольные вопросы
- 3.3. Планирование процессов и потоков
- 3.4. Понятия «процесс» и «поток»
- 3.4.1. Создание процессов и потоков
- 3.4.2. Планирование и диспетчеризация потоков
- 3.4.3. Состояния потока
- 3.4.4. Вытесняющие и невытесняющие алгоритмы планирования
- 3.4.5. Алгоритмы планирования, основанные на квантовании
- 3.4.6. Алгоритмы планирования, основанные на приоритетах
- 3.4.7. Смешанные алгоритмы планирования
- 3.5. Синхронизация процессов и потоков
- 3.5.1. Цели и средства синхронизации
- 3.5.2. Сигналы
- Вопросы для самопроверки
- Контрольные вопросы
- 4. Управление памятью
- 4.1. Функции операционной системы по управлению памятью
- 4.2. Типы адресов
- Вопросы для самопроверки
- Контрольные вопросы
- 4.3. Алгоритмы распределения памяти
- 4.3.1. Алгоритмы распределения без использования внешней памяти Распределение памяти динамическими разделами
- Распределение памяти перемещаемыми разделами
- 4.3.2. Алгоритмы распределения с использованием внешней памяти
- Свопинг и виртуальная память
- Страничное распределение
- Сегментное распределение
- Сегментно-страничное распределение
- Разделяемые сегменты памяти
- Вопросы для самопроверки
- Контрольные вопросы
- 5. Ввод-вывод и файловая система
- 5.1. Задачи операционной системы по управлению файлами и устройствами
- 5.2. Специальные файлы
- 5.3. Логическая организация файловой системы
- 5.3.1. Цели и задачи файловой системы
- 5.3.2. Типы файлов
- 5.3.3. Иерархическая структура файловой системы
- 5.3.4. Имена файлов
- 5.3.5. Монтирование
- 5.3.6. Атрибуты файлов
- 5.3.7. Логическая организация файла
- Вопросы для самопроверки
- Контрольные вопросы
- 5.4. Физическая организация файловой системы
- 5.4.1. Диски, разделы, секторы, кластеры
- 5.4.2. Физическая организация и адресация файла
- 2048 Записей
- 5.5. Физическая организация fat
- Кластер № 17 – начальный кластер файла file1; кластер № 18 – начальный кластер файла file2
- 5.6. Физическая организация файловых систем s5 и ufs
- 5.7. Физическая организация файловой системы ntfs
- 5.7.1. Структура тома ntfs
- 5.7.2. Структура файлов ntfs
- 5.7.3. Каталоги ntfs
- Вопросы для самопроверки
- Контрольные вопросы
- 5.8. Контроль доступа к файлам
- 5.8.1. Доступ к файлам как частный случай доступа к разделяемым ресурсам
- 5.8.2. Механизм контроля доступа
- Имена файлов
- 5.8.3. Организация контроля доступа в ос unix
- Процесс
- Запрос операции
- Вопросы для самопроверки
- Контрольные вопросы
- 5.8.4. Организация контроля доступа в ос Windows nt
- 5.8.5. Разрешения на доступ к каталогам и файлам
- Соотношение индивидуальных и стандартных разрешений для файлов
- Вопросы для самопроверки
- Контрольные вопросы
- Ответы на вопросы для самопроверки
- Лабораторные работы
- Методические указания для проведения лабораторных занятий и выполнения контрольной работы
- Лабораторная работа № 1 Системный реестр Windows 9x. Редактор базы данных регистрации
- Редактор системного реестра. Утилита regedit.Exe
- Командный файл системного реестра
- Утилита редактора системных правил Poledit
- Список ключей системного реестра
- Заблокировать возможность удаления принтеров.
- Заблокировать возможность добавления принтеров.
- Скрыть вкладку «Устройства» утилиты «Система».
- Скрыть вкладку «Профили оборудования» утилиты «Система».
- Лабораторная работа № 2 Администрирование сетевой ос Windows xp
- Установка удаленного терминала (Remote DeskTop Connection)
- Работа с Windows 2003 Server
- Утилиты панели управления
- Управление рабочей станцией
- Администрирование
- Конфигурирование сервера
- Управление контроллером домена
- Предоставление доступа к ресурсам сервера
- Привилегия клиента удаленного терминала
- Панель задач. Управление процессами
- Лабораторная работа № 3 Командные центры Windows 9х
- Утилита «Дата/время»
- Утилита «Клавиатура»
- Утилита «Мышь»
- Утилита «Специальные возможности»
- Утилита «Принтеры»
- Утилита «Шрифты»
- Утилита «Установка и удаление программ»
- Утилита «Система»
- Утилита «Язык и стандарты» Окно утилиты Язык и стандарты содержит вкладки Денежные единицы, Время, Дата, Региональные стандарты, Числа.
- Рабочий стол. Свойства рабочего стола
- Лабораторная работа № 4 Установка ос Fedora Core X. Режимы работы системы. Инсталляция приложений
- Подготовка жесткого диска к инсталляции ос Linux
- Программа редактирования разделов жесткого диска PowerQuest PartitionMagic 8.0
- Создать как: (Create as:) Logical Partition Тип раздела: (Partition type:) Linux Ext3 Размер: (Size:) 9500
- Инсталляция ос Fedora Core X
- Графический интерфейс gnome ос Linux
- Лабораторная работа № 4 Установка ос Fedora Core X
- Текстовый интерфейс ос Linux Алфавитно-цифровой терминал
- Режимы работы ос Linux
- Установка приложений в ос Red Hat
- Лабораторная работа № 5 Подсистемы управления ос
- Управление ресурсами ос Linux
- Графические утилиты управления процессами. Системный монитор
- Подсистемы управления, общие для всех ресурсов
- Администрирование в ос Red Hat. Локальные системы
- Пользовательский интерфейс
- Регистрация событий
- Лабораторная работа № 6 Файловые системы. Сетевые сервисы ос Linux
- Команды и утилиты, предназначенные для работы с файловыми системами
- Создание, редактирование и удаление разделов жесткого диска. Утилита fdisk
- Создание и локализация файловой системы
- Файловые службы и сетевые файловые системы
- Автомонтирование
- Сервисы Linux
- Список вопросов к контрольной работе
- Библиографический список