Составители:
функций. Когда ОС переносится, то изменяются только эти данные
и функции, которые ими манипулируют.
Для легкого переноса ОС при ее разработке должны быть
соблюдены нижеуказанные требования.
− Переносимый язык высокого уровня. Большинство переносимых
ОС написано на языке С (стандарт ANSI X3.159-1989). Ассемблер
используется только для тех частей системы, которые должны
непосредственно взаимодействовать с аппаратурой (например,
обработчик прерываний). Однако непереносимый код должен быть
тщательно изолирован внутри тех компонентов, где он
используется.
− Изоляция процессора. Некоторые низкоуровневые части ОС
должны иметь доступ к процессорно-зависимым структурам
данных и регистрам. Однако код, который делает это, должен
содержаться в небольших модулях, которые могут быть заменены
аналогичными модулями для других процессоров.
− Изоляция платформы. Зависимость от платформы заключается
в различиях между рабочими станциями разных производителей,
построенными на одном и том же процессоре. Должен быть введен
программный уровень, абстрагирующий аппаратуру (кэши,
контроллеры прерываний ввода-вывода и т. п.) вместе со слоем
низкоуровневых программ таким образом, чтобы высокоуровневый
код не нуждался в изменении при переносе с одной платформы на
другую.
10.1.3 Требования по совместимости
Совместимость - способность ОС выполнять программы,
написанные для других ОС или для более ранних версий данной операционной
системы, а также для другой аппаратной платформы.
Необходимо разделять вопросы двоичной совместимости и
совместимости на уровне исходных текстов приложений.
Двоичная совместимость достигается в том случае, когда можно
взять исполняемую программу и запустить ее на выполнение на другой ОС.
Для этого необходимы: совместимость на уровне команд процессора,
совместимость на уровне системных вызовов и даже на уровне
библиотечных вызовов, если они являются динамически связываемыми.
Совместимость на уровне исходных текстов требует наличия
соответствующего компилятора в составе программного обеспечения, а
также совместимости на уровне библиотек и системных вызовов. При этом
необходима перекомпиляция имеющихся исходных текстов в новый
выполняемый модуль.
139
функций. Когда ОС переносится, то изменяются только эти данные
и функции, которые ими манипулируют.
Для легкого переноса ОС при ее разработке должны быть
соблюдены нижеуказанные требования.
− Переносимый язык высокого уровня. Большинство переносимых
ОС написано на языке С (стандарт ANSI X3.159-1989). Ассемблер
используется только для тех частей системы, которые должны
непосредственно взаимодействовать с аппаратурой (например,
обработчик прерываний). Однако непереносимый код должен быть
тщательно изолирован внутри тех компонентов, где он
используется.
− Изоляция процессора. Некоторые низкоуровневые части ОС
должны иметь доступ к процессорно-зависимым структурам
данных и регистрам. Однако код, который делает это, должен
содержаться в небольших модулях, которые могут быть заменены
аналогичными модулями для других процессоров.
− Изоляция платформы. Зависимость от платформы заключается
в различиях между рабочими станциями разных производителей,
построенными на одном и том же процессоре. Должен быть введен
программный уровень, абстрагирующий аппаратуру (кэши,
контроллеры прерываний ввода-вывода и т. п.) вместе со слоем
низкоуровневых программ таким образом, чтобы высокоуровневый
код не нуждался в изменении при переносе с одной платформы на
другую.
10.1.3 Требования по совместимости
Совместимость - способность ОС выполнять программы,
написанные для других ОС или для более ранних версий данной операционной
системы, а также для другой аппаратной платформы.
Необходимо разделять вопросы двоичной совместимости и
совместимости на уровне исходных текстов приложений.
Двоичная совместимость достигается в том случае, когда можно
взять исполняемую программу и запустить ее на выполнение на другой ОС.
Для этого необходимы: совместимость на уровне команд процессора,
совместимость на уровне системных вызовов и даже на уровне
библиотечных вызовов, если они являются динамически связываемыми.
Совместимость на уровне исходных текстов требует наличия
соответствующего компилятора в составе программного обеспечения, а
также совместимости на уровне библиотек и системных вызовов. При этом
необходима перекомпиляция имеющихся исходных текстов в новый
выполняемый модуль.
139
Страницы
- « первая
- ‹ предыдущая
- …
- 137
- 138
- 139
- 140
- 141
- …
- следующая ›
- последняя »
