Операционные системы, среды и оболочки. Макаренко С.И. - 139 стр.

UptoLike

Составители: 

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

                  10.1.3 Требования по совместимости

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

                                  139