Системное программное обеспечение персональных ЭВМ


10.3. Логическая структура диска



10.3. Логическая структура диска

Некоторые области диска содержат системную информацию, используемую DOS при работе с данным диском. К таким областям относятся:

  • Главная Загрузочная Запись (MBR - Master Boot Record) - только для жесткого диска;
  • Загрузочный Сектор логического диска (Boot-сектор);
  • Таблица Размещения Файлов (FAT - File Allocation Table);
  • Корневой Каталог (Root Directiry).

10.3.1. MBR занимает самый первый сектор жесткого диска (дорожка 0, головка 0, сектор 1). Причины введения MBR в логическую структуру диска следующие. Формат некоторых системных данных и обращений к прерываниям 0x25, 0x26 в ранних версиях DOS не предусматривал возможности работы с жестким диском объемом более 32 Мбайт. Начиная с версии DOS 3.30, это ограничение обходится путем разбиения жесткого диска на два или более логических дисков, объем каждого из которых менее 32 Мбайт. И хотя уже в версии 4.0 снято ограничение на объем логического диска, возможность разбиения диска остается, так как обеспечивает целый ряд дополнительных удобств (например, разделение внешней памяти между пользователями).

Формат MBR следующий (в программе примера 10.2 он описан структурой struct MBR):

  • первые 466 (0x1BE) байт занимает программа начальной загрузки;
  • далее следует таблица разделов, состоящая из четырех элементов;
  • последние два байта - признак конца таблицы - код 0xAA55.

Программа начальной загрузки, содержащаяся в MBR, выполняет поиск по таблице активного раздела (логического диска, с которого должна происходить загрузка DOS), чтение в память Boot-сектора этого раздела и передачу управления на него.

Элемент таблицы разделов описан в программе примера 10.2 структурой struct Part. Добавим некоторые комментарии к этому описанию.

Поле ActFlag принимает значение 0x80 для активного раздела или 0 - для неактивного.

В физических адресах начала и конца раздела дорожка и сектор задаются в формате регистра CX прерывания 0x13. Раздел, как правило, начинается и заканчивается на границе цилиндра. Если первый сектор цилиндра занимает MBR (или ее продолжение в расширенном разделе DOS), то остальные сектора этой дорожки не используются, и раздел начинается с сектора 1, головки 1 этой дорожки.


- Начало -  - Назад -  - Вперед -