BegSC Word; {Начало раздела - сектор/цилиндр} Sys Byte; {Код системы} EndHd Byte; {Конец раздела - номер головки} EndSC Word; {Конец раздела - сектор/цилиндр} Sees Longint; {Относительный номер начального сектора} Size Longint; {Длина раздела в секторах} end; {Part_Type}

Описываемая логическая структура (загрузочный сектор, таблица распределения файлов и т.д.) создается на каждом логическом диске, т.е. на одном физическом диске существует несколько (по числу логических разделов) загрузочных секторов. Самый первый загрузочный сектор называется главным — именно он используется для начальной загрузки операционной системы. Этот сектор программами BIOS считывается в буфер, начинающийся по адресу $7СОО:$0000, и по этому же адресу передается управление. Получив управление, главный загрузчик просматривает таблицу разделов диска и выбирает раздел (логический диск), имеющий признак активности в поле BootF (если диск активен, это поле имеет значение $80, в противном случае — 0). Затем в память считывается соответствующий загрузочный сектор и управление передается ему. Таким образом, если ЖД разбит на разделы, загрузка ДОС проходит в два этапа. Это позволяет иметь на одном диске несколько загрузчиков для разных операционных систем. Например, активный логический диск может нести сетевую операционную систему, в этом случае его загрузчик осуществляет загрузку этой системы.

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

При анализе главного загрузочного сектора следует иметь в виду важное соглашение ДОС: описатели логических разделов диска построены по принципу связанного списка (см. рис.3.2).

В секторе главного загрузчика используются лишь два описателя Part_Type из четырех возможных: первый описатель (он называется описателем первичного раздела ДОС) определяет физическое расположение и параметры логического диска С, а второй (описатель расширенного раздела ДОС) — расположение на диске следующего описателя. В секторе, соответствующем второму описателю, значащими являются только два поля Part_Type, первое из которых определяет логический диск D, а второе содержит ссылку на новый описатель и т.д.

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

Следующая программа считывает главный загрузчик и организует просмотр связанного списка описателей логических разделов первого жесткого диска.