Распределение
памяти в MS-DOS
Рассмотрим,
что получается, когда происходит загрузка ОС, т.е. какова структура стандартной
памяти:
При
загрузке образуется таблица векторов прерываний, содержащая адреса обработчиков
прерываний.
Это
очень важная таблица и поэтому она занимает первый килобайт памяти (0..1024
б.). Дальше до 1380 байт находится область данных в BIOSе (область,
которую использует сам BIOS). Дальше
область данных DOS. Эти области фиксированы и их
размеры определены, а дальше начинается просто порядок, а размеры могут
меняться по различным причинам. Дальше расположен файл IO.SYS, его размер в
принципе известен, но в память он может помещаться не весь. Дальше находится
системный файл MSDOS.SYS. Дальше находятся внутренние буфера MSDOS.SYS. Дальше
находятся драйверы устройств.
Затем
находится резидентная часть command.com. Затем находятся пользовательские программы. В самом
конце стандартной памяти загружается транзитная часть command.com. И для того,
чтобы пользовательским программам было больше места, эта транзитная часть при
загрузке пользовательских программ забирает. После того как программа
завершается, резидентная часть считывает с диска транзитную часть и записывает
ее в какое-то место. (ОН САМ СКАЗАЛ: «ВОТСЮДА». Куда я не знаю.) Поэтому у нас всегда должно быть место
подключения к системному диску. Если системный диск не будет находиться на
месте, то после завершения работы какой-то программы транзитная часть command.com не может быть
записана и ОС работать не будет.