Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GLAVA3_red.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
115.71 Кб
Скачать

3.4.2. Машино - зависимые компоненты операционной системы

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

Объем машинно - зависимых компонентов операционной системы зависит от того, насколько велики отличия в аппаратных платформах, для которых разрабатывается операционная система. Одно из наиболее очевидных отличий – несовпадение системы команд процессоров – преодолевается достаточно просто. Операционная система программируется на языке высокого уровня, а затем соответствующим компилятором вырабатывается код для конкретного типа процессора. Однако во многих случаях различия в организации аппаратуры компьютера лежат гораздо глубже и преодолеть их таким образом не удается. Например, однопроцессорный и двухпроцессорный компьютеры требуют применения в операционных системах совершенно разных алгоритмов распределения процессорного времени. Аналогично отсутствие аппаратной поддержки виртуальной памяти приводит к принципиальному различию в реализации подсистемы управления памятью. В таких случаях в код операционной системы придется вносить специфику аппаратной платформы, для которой эта операционная система разрабатывается.

Для уменьшения количества машинно - зависимых модулей производители операционных систем ограничивают распространение своей операционной системы только несколькими типами процессоров и созданными на их базе аппаратными платформами. Например, разработчики операционной системы Windows NT ограничили возможности своей операционной системы только четырьмя типами процессоров.

Для компьютеров на основе процессоров Intel x86/Pentium разработка экранирующего машинно - зависимого слоя операционной системы несколько упрощается за счет встроенной в постоянную память компьютера базовой системы ввода-вывода - BIOS. BIOS содержит драйверы для всех устройств, входящих в базовую конфигурацию компьютера: жестких и гибких дисков, клавиатуры, дисплея и т.д. Эти драйверы выполняют примитивные операции по управлению устройствами компьютера, но за счет этих операций экранируются различия аппаратных платформ созданных на процессорах фирмы Intel или совместимых с ними процессоров разными производителями. Разработчики операционной системы могут пользоваться слоем драйверов BIOS как частью машинно - зависимого слоя операционной системы, а могут и заменить все или часть драйверов BIOS компонентами операционной системы.

3.4.3. Переносимость операционной системы

Если код операционной системы может быть сравнительно легко перенесен с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу другого типа, то такую операционную систему называют переносимой или мобильной.

Для того чтобы обеспечить свойство мобильности операционной системы, разработчики следуют следующим правилам.

  • Большая часть кода операционной системы должна быть написана на языке, трансляторы которого имеются на всех компьютерах, куда предполагается перенести систему. Такими языками являются стандартные языки высокого уровня. Наибольшее распространение, как язык для написания операционных систем, получил язык Си.

  • Объем машинно - зависимых частей кода, которые непосредственно взаимодействуют с аппаратными средствами, должен быть по возможности минимизирован.

  • Аппаратно- зависимый код должен быть надежно изолирован в нескольких модулях, а не быть распределен по всей операционной системе.

В идеале слой машинно - зависимых компонентов ядра полностью экранирует остальную часть операционной системы от особенностей аппаратной платформы. Подменяя реальную аппаратуру неким унифицированным виртуальным компьютером, одинаковым для всех вариантов аппаратной платформы. Все слои операционной системы, которые лежат выше слоя машинно - зависимых компонентов, могут быть написаны для управления этой виртуальной аппаратурой. Таким образом, у разработчиков появляется возможность создавать один вариант машинно - независимой части операционной системы (включая компоненты ядра, утилиты, системные обрабатывающие программы) для всего набора поддерживаемых платформ (см. рис. 3.7.).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]