На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 3 / ROM-BIOS в сравнении с загружаемой BIOS Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

ROM-BIOS в сравнении с загружаемой BIOS

Имеются две основные области различий, которые могут возникать внутри операционных систем MS-DOS различных исполнений. Эти различия очень существенно влияют на то, что можно выполнять, и что нельзя выполнять для компонентов, функционирующих в резидентной части оперативной памяти. Одна из таких областей различий формируется в зависимости от того, где первоначально располагается BIOS (Basic Input/Output System - базовая система ввода/вывода) для аппаратных средств системы в ROM (read-only memory - постоянное запоминающее устройство - ПЗУ) или в файле, который может быть загружен с диска. Воздействие этих альтернативных вариантов исполнения состоит в том, что BIOS, расположенная в ПЗУ, обеспечивает заданную среду для этой отдельной машины, в то время как загружаемая BIOS часто недоступна для программиста. (В отличие от систем CP/M, поставщики операционной системы MS-DOS не обеспечивают пользователей исходными листингами загружаемой BIOS).


Важность этой опции заключается в том, что MS-DOS не является реентерабельной (повторно-входимой)! Т.е., если написана резидентная подпрограмма, которая либо управляется прерываниями, либо помещает "заплаты" в векторы прерываний MS-DOS, то подпрограмма не может вызывать MS-DOS! Аппаратно MS-DOS поддерживает только один набор буферов внутренних данных, и любая попытка повторного входа приводит к полному отказу системы. Т.к. MS-DOS не является реентерабельной, она не может быть использована для выполнения ввода/вывода или поддержки функций для резидентных программ, управляемых прерываниями. Это ограничение может быть снято тогда, когда фирма "Майкрософт" выпустит конкурентную версию MS-DOS, в которой, надеемся, будет обеспечен способ обработки таких событий. До этих пор программисты, желающие писать резидентные подпрограммы, должны, вероятно, рассчитывать на ROM-BIOS или писать свои собственные подпрограммы драйверов. Все эти опции приводят в результате к непереносимому программному коду, но иногда это и есть цена платы за предоставляемые возможности.


Если BIOS, на самом деле, загружается с диска во время начальной загрузки системы, то почти наверняка для обеспечения интерфейса с аппаратными средствами пользователи будут писать свои собственные подпрограммы. В отличие от связи между обычными программами и MS-DOS, которые используют векторы прерываний, MS-DOS общается с BIOS посредством инструкций CALL и JMP. MS-DOS не имеет стандартной таблицы переходов для BIOS (типа системы CP/M), которая могла бы использоваться прикладным программистом, так как можно легко заметить, что иметь BIOS, базируемую на ROM, гораздо ценнее, чем писать резидентные подпрограммы для доступа к аппаратным средствам.


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz