русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Логическая организация дисковых накопителей внешней памяти. Основные области (BOOT, FAT, ROOT, DATA AREA)

Первый сектор жесткого диска (сектор 1, дорожка 0, головка 0) содержит главную загрузочную запись (Master Boot Record). Эта запись занимает только начальную часть сектора. Сама по себе главная загрузочная запись является программой. Эта программа во время начальной загрузки операционной системы с жесткого диска помещается по адресу 7C00:0000, после чего ей передается управление. Загрузочная запись продолжает процесс загрузки операционной системы. В конце самого первого сектора жесткого диска располагается таблица разделов диска (Partition Table). Эта таблица содержит четыре элемента, описывающих максимально четыре раздела диска. В последних двух байтах сектора находится число 55AA. Это признак таблицы разделов. Элемент таблицы разделов диска это структура размером 16 байтов, описывающая часть диска, называемую разделом. В структуре описаны границы раздела в терминах номеров сектора, дорожки и головки, там располагается информация о размере раздела в секторах и о назначении раздела. Разделы диска могут быть активными, активный раздел может быть использован для загрузки операционной системы. Диск может содержать одновременно несколько активных разделов, которые могут принадлежать разным операционным системам.


Смещение

Раз мер

Содержимое

(+0)

1Beh

Загрузочная запись - программа, которая загружается и выполняется во время начальной загрузки операционной системы

(+1BEh)

10H

Элемент таблицы разделов диска

(+1CEh)

10H

Элемент таблицы разделов диска

(+1DEh)

10H

Элемент таблицы разделов диска

(+1EEh)

10H

Элемент таблицы разделов диска

(+1FEh)

2

Признак таблицы разделов - 55AAh

формат первого сектора жесткого диска:
Все элементы таблицы разделов диска имеют одинаковый формат:


Смещение

Размер

Содержимое

(+0)

1

Признак активного раздела:
0 - раздел не активный;
80h - раздел активный.

(+1)

1

Номер головки для начального сектора раздела.

(+2)

2

Номер сектора и цилиндра для начального сектора раздела в формате функции чтения сектора INT 13h.

(+4)

1

Код системы:
0 - неизвестная система;
1, 4 - DOS;
5 - расширенный раздел DOS.

(+5)

1

Номер головки для последнего сектора раздела.

(+6)

2

Номер сектора и цилиндра для последнего сектора раздела в формате функции чтения сектора INT 13h.

(+8)

4

Относительный номер сектора начала раздела.

(+12)

4

Размер раздела в секторах.

В самом первом секторе активного раздела расположена загрузочная запись (Boot Record). Загрузочная запись считывается в оперативную память главной загрузочной записью, после чего ей передается управление. Загрузочная запись и выполняет загрузку операционной системы. Таким образом, загрузка операционной системы с жесткого диска - двухступенчатый процесс. Вначале модули инициализации BIOS считывают главную загрузочную запись в память по адресу 7C00:0000 и ей передается управление. Главная загрузочная запись просматривает таблицу разделов и находит активный раздел. Если активных разделов несколько, на консоль выводится сообщение о необходимости выбора активного раздела для продолжения загрузки. Байт со смещением 4 - это код системы, использующей раздел диска. Для DOS зарезервированы значения 0, 1, 4, 5.

Значение 0 соответствует неиспользуемому разделу диска. Если код системы в элементе таблицы раздела равен 1 или 4, это означает, что раздел используется DOS в качестве первичного раздела (Primary Partition). Первичный раздел используется DOS как логический диск. Этот раздел обычно является активным и из него выполняется загрузка операционной системы. В зависимости от того, какой код системы используется для обозначения первичного раздела DOS (1 или 4) меняется одна из характеристик логического диска - размер элемента таблицы размещения файлов (FAT). Код 1 используется для обозначения 12-битовой FAT, 4 - для 16-битовой FAT. Таблица размещения файлов будет описана ниже в этой главе. Значение кода системы, равное 5, обозначает расширенный раздел DOS (Extended DOS Partiton). Используя все элементы таблицы разделов для создания логических дисков, невозможно создать более четырех дисков. Использование расширенного раздела DOS позволит создать любое количество логических дисков. Все эти диски будут располагаться в пределах одного расширенного раздела. Первичный раздел должен быть активным, он используется как диск С: и из него выполняется загрузка операционной системы. Расширенный раздел разбивается утилитой на логические диски D:, E: и т.д.

Расширенный раздел не может быть активным, следовательно, невозможно выполнить загрузку операционной системы с логических дисков, расположенных в этом разделе. Если в элементе таблицы разделов байт кода системы имеет значение 5, то в начале раздела, указанном в этом элементе, располагается сектор, содержащий таблицу логических дисков. Фактически эта таблица является расширением таблицы разделов диска, расположенной в самом первом секторе физического диска. Таблица логических дисков имеет формат, аналогичный таблице разделов диска, но имеет только два элемента. Один из них указывает на первый сектор логического диска DOS, он имеет код системы 1 или 4. Второй элемент может иметь код системы, равный 5 или 0. Если этот код равен 5, то элемент указывает на следующую таблицу логических дисков. Если код системы равен 0, то соответствующий элемент не используется. Таблицы логических дисков связаны в список, на начало этого списка указывает элемент таблицы разделов диска с кодом системы, равным 5. Для таблицы логических дисков имеется отличие в использовании полей границ логических дисков: если код системы равен 1 или 4, эти границы вычисляются относительно начала расширенного раздела; для элемента с кодом системы 5 используется абсолютная адресация (относительно физического начала диска). Самый первый сектор логического диска (и самый первый сектор на системной дискете) занимает загрузочная запись (Boot Record). Эта запись считывается из активного раздела диска программой главной загрузочной записи (Master Boot Record) и запускается на выполнение. Задача загрузочной записи - выполнить загрузку операционной системы. Каждый тип операционной системы имеет свою загрузочную запись. Даже для разных версий одной и той же операционной системы программа загрузки может выполнять различные действия. Кроме программы начальной загрузки операционной системы в загрузочной записи находятся параметры, описывающие характеристики данного логического диска. Все эти параметры располагаются в самом начале сектора, в его так называемой форматированной области. 

Структура BOOT области


Смещение

Размер

Содержимое

(+0)

3

Команда JMP xxxx - переход типа NEAR на программу начальной загрузки

(+3)

8

Название фирмы-производителя операционной системы и версия, например: "IBM 4.0"

(+11)

25

Extended BPB - расширенный блок параметров BIOSBIOS

(+36)

1

Физический номер дисковода (0 -флоппи, 80h - жесткий диск)

(+37)

1

Зарезервировано

(+38)

1

Символ ')' - признак расширенной загрузочной записи DOS 4.0

(+39)

4

Серийный номер диска (Volume Serial Number), создается во время форматирования диска

(+43)

11

Метка диска (Volume Label)

(+54)

8

Зарезервировано, обычно содержит запись типа 'FAT12 ', которая идентифицирует формат таблицы размещения файлов FAT

Поле со смещением 11 содержит расширенный блок параметров BIOS. Он состоит из обычного BPB и дополнительного расширения:


(0)

2

sect_siz

Количество байтов в одном секторе диска.

(+2)

1

clustsiz

Количество секторов в одном кластере.

(+3)

2

res_sect

Количество зарезервированных секторов.

(+5)

1

fat_cnt

Количество таблиц FAT.

(+6)

2

root_siz

Максимальное количество дескрипторов файлов, содержащихся в корневом каталоге диска.

(+8)

2

tot_sect

Общее количество секторов на носителе данных (в разделе DOS).

(+10)

1

media

Байт-описатель среды носителя данных.

(+11)

2

fat_size

Количество секторов, занимаемых одной копией FAT.

 

 

 

---- Расширение стандартного BPB -----

(+13)

2

sectors

Количество секторов на дорожке

(+15)

2

heads

Количество магнитных головок

(+17)

2

hidden_l

Количество скрытых секторов для раздела, который по размеру меньше 32 мегабайтов.

(+19)

2

hidden_h

Количество скрытых секторов для раздела, превышающего по размеру 32 мегабайта. (Только для DOS 4.0).

(+21)

4

tot_secs

Общее количество секторов на логическом диске для раздела, превышающего по размеру 32 мегабайта.

Сразу после загрузочного сектора на логическом диске находятся сектора, содержащие таблицу размещения файлов FAT (File Allocation Table). Весь диск разбивается операционной системой на участки одинакового размера, называемые кластерами. Кластер может содержать несколько секторов. Для каждого кластера FAT имеет свою индивидуальную ячейку, в которой хранится информация об использовании данного кластера. Другими словами, таблица размещения файлов - это массив, содержащий информацию о кластерах. Размер этого массива определяется общим количеством кластеров на логическом диске. Все свободные кластеры помечены в ней нулями. Если файл занимает несколько кластеров, то эти кластеры связаны в список. Для связанных в список кластеров элементы таблицы FAT содержат номера следующих используемых данным файлом кластеров. Конец списка отмечен в таблице специальным значением. Номер первого кластера, распределенного файлу, хранится в элементе каталога, описывающего данный файл. Утилиты операционной системы и некоторые специальные утилиты проверяют диск на предмет наличия дефектных областей. Кластеры, которые находятся в этих дефектных областях, отмечаются в FAT как плохие и не используются операционной системой.

Итак, FAT - массив информации об использовании кластеров диска, содержит односвязные списки кластеров, распределенных файлам. Номера начальных кластеров файлов хранятся в каталогах

Существуют несколько форматов FAT - 12-битовый ,16-битовый и 32 битовый. Эти форматы используют, соответственно, 12,16 и 32 бита для хранения информации об одном кластере диска.
При использовании FAT 16-битового формата операционная система может работать с диском, который имеет размер более 32 мегабайт. DOS версии 4.0 при использовании 16-битового формата FAT и кластеров размером 4 сектора может работать с разделами, по размеру достигающими 134 мегабайтов. Первый байт FAT называется "Описатель среды" (Media Descriptor) или байт ID идентификации FAT. Он имеет такое же значение, как и байт-описатель среды, находящийся в BOOT-секторе логического диска.
Остальная часть FAT состоит из ячеек, каждая ячейка соответствует одному кластеру диска. Эти ячейки могут содержать следующие значения:


FAT12

FAT16

Что означает

000h

0000h

Свободный кластер

ff0h - ff6h

Fff0h - fff6h

Зарезервированный кластер

ff7h

Fff7h

Плохой кластер

ff8h - fffh

Fff8h - ffffh

Последний кластер в списке

002h - fefh

0002h - ffefh

Номер следующего кластера в списке

Адрес области FAT вычисляется следующим образом:
Адрес FAT  = начало раздела + корневой сектор + число резерв-
ных секторов.
Адрес корневого каталого вычисляется следующим образом:
Адрес каталога = начало раздела + корневой сектор + число резервных секторов + число FAT x число секторов в одной FAT.
При вычислении адресов области FAT и каталога с использованием трехмерных координат для  задания адреса сектора  (головка,  цилиндр,  сектор)  сначала изменяется значение сектора, затем - головки, последним изменяется номер цилиндра. Как мы уже говорили, любой каталог содержит 32-байтовые элементы - дескрипторы, описывающие файлы и другие каталоги. Приведем формат дескриптора:


Смещение

Размер

Содержимое

(+0)

8

Имя файла или каталога, выравненное на левую границу и дополненное пробелами.

(+8)

3

Расширение имени файла, выравненное на левую границу и дополненное пробелами.

(+11)

1

Атрибуты файла.

(+12)

10

Зарезервировано.

(+22)

2

Время создания файла или время его последней модификации.

(+24)

2

Дата создания файла или дата его последней модификации.

(+26)

2

Номер первого кластера, распределенного файлу.

(+28)

4

Размер файла в байтах.

Байт атрибутов является принадлежностью каждого файла. Биты этого байта имеют следующие значения:


0

Файл предназначен только для чтения, в этот файл нельзя писать и его нельзя стирать.

1

Скрытый файл, этот файл не будет появляться в списке файлов, создаваемом командой операционной системы DIR.

2

Системный файл. Этот бит обычно установлен в файлах, являющихся составной частью операционной системы.

3

Данный дескриптор описывает метку диска. Для этого дескриптора поля имени файла и расширения имени файла должны рассматриваться как одно поле длиной 11 байтов. Это поле содержит метку диска.

4

Дескриптор описывает файл, являющийся подкаталогом данного каталога.

5

Флаг архивации. Если этот бит установлен в 1, то это означает, что данный файл не был выгружен утилитой архивации (например, программой BACKUP).

6-7

Зарезервированы.

Обычно файлы имеют следующие комбинации битов в байте атрибутов:


0

Обычные файлы (тексты программ, загрузочные модули, пакетные файлы).

7

Только читаемые, скрытые, системные файлы. Такая комбинация битов байта атрибутов используется для файлов операционной системы IO.SYS, MSDOS.SYS.

8

Метка тома. Дескриптор метки тома может находиться только в корневом каталоге логического диска.

10h

Дескриптор, описывающий каталог.

20h

Обычный файл, который не был выгружен утилитами BACKUP или XCOPY.

В любом каталоге, кроме корневого, два первых дескриптора имеют специальное назначение. Первый дескриптор содержит в поле имени строку:
"."Этот дескриптор указывает на содержащий его каталог. Т.е. каталог имеет ссылку сам на себя. Второй специальный дескриптор содержит в поле имени строку: ".."Этот дескриптор указывает на каталог более высокого уровня. Если в поле номера первого занимаемого кластера дескриптора с именем ".. " находится нулевое значение, это означает, что данный каталог содержится в корневом каталоге.

Просмотров: 6319

Вернуться в оглавление:Шпаргалки по компьютеру




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.