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

Особенности структуры жесткого диска

Жесткий диск может быть разделен на несколько логических дисков (разделов, томов). Каждый из них рассматривается как автономный диск. Каждый логический диск имеет собственную системную и рабочую области. Любой логический диск может выступать в качестве загрузочного (системного) диска. Для обеспечения процесса начальной загрузки операционной системы, а также для хранения данных о физическом расположении логических дисков, в первом секторе жесткого диска (0-й цилиндр, 0-я сторона, 1-й сектор) создается специальная информационная структура - главная загрузочная запись (Master Boot Record, сокращенно MBR). MBR содержит код программы начальной загрузки и таблицу разделов диска (Partition Table). Каждый раздел в таблице представлен одним 16-байтовым элементом, содержимое которого формируется программой форматирования жесткого диска (например, FDISK). Для просмотра разделов можно использовать утилиту DiskEdit. Хотя работать с ней нужно очень осторожно. Здесь как у сапера - ошибаться нельзя - можно потерять всю информацию. Таблица 4. Структура таблицы разделов диска.

Смещение

Длина, байт

Содержимое

1-й элемент (для первого раздела диска)

+00

1

Флаг загрузки: 0 - не загружаемый 80h - загружаемый (BootAble)

+01

1

Начало раздела: Hds (№ головки)

+02

2

Начало раздела: Sec (№ сектора - 6 младших битов) Cyl (№ цилиндра - 10 старших битов)

+04

1

Код системы: 0 - неизвестна 1 - DOS (FAT-12) 4 - DOS (FAT-16)

+05

1

Конец раздела: HdE (№ головки)

+06

2

Конец раздела: Sec (№ сектора - 6 младших битов) Cyl (№ цилиндра - 10 старших битов)

+08

4

Абсолютный номер начального сектора раздела (соответствует номерам сектора, головки и цилиндра начала раздела): Cyl*сект./дор.*дор./цил.+Hds*сект./дор.+(Sec-1)

+0Ch

4

Число секторов раздела

2-й элемент (для второго раздела диска)

+10h

1

Флаг загрузки

...

...

...

...

...

...

Последний элемент (после описания последнего раздела диска)

0AA55h

Процесс загрузки системы с жесткого диска начинается со считывания MBR в ОЗУ и передачи управления на код находящейся в MBR программы. Эта программа читает таблицу разделов диска и определяет первый из разделов, помеченный как BootAble. Затем в память считывается boot-сектор этого раздела и ему передается управление. Далее работает программа начальной загрузки, находящаяся в boot-секторе раздела, которая загружает все необходимые системные файлы. Алгоритмы выполнения типовых файловых операций

Чтение файла

Чтение файла с диска (например, при выполнении команды TYPE D:\TEXT\name.txt) реализуется следующей процедурой:

  • В корневом каталоге логического диска D находится регистрационная запись, у которой:

    • поле "Имя" = ТЕХТ

    • поле "Расширение" = пусто

    • атрибут Dir = 1

В этой записи читается значение поля "Номер начального кластера" (N)

  • Читается первая копия FAT логического диска D и определяется цепочка номеров кластеров (которая начинается с N и оканчивается EOF), выделенных каталогу ТЕХТ.

  • Читается каталог ТЕХТ:

    • последовательно считываются все кластеры этой цепочки, начиная с N-го

    • находится регистрационная запись, у которой:

      • поле "Имя" = name

      • поле "Расширение" = txt

      • атрибут Dir = 0

В этой записи читается значение поля "Номер начального кластера" (N1).

  • Читается первая копия FAT диска D и определяется цепочка номеров кластеров (которая начинается с N1 и оканчивается EOF), выделенных файлу name.

  • Читается файл name: последовательно считываются все кластеры этой "цепочки", начиная с N1-го.

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