Министерство Образования Российской Федерации
ГОУВПО «КнАГТУ»
Факультет компьютерных технологий
Кафедра МОП ЭВМ
ЛАБОРАТОРНАЯ РАБОТА № 3
по курсу "Операционные системы "
Студента группы 3ВТ-1: Горн М.А.
Преподаватель: Тихомиров В. А.
2005 г
Задание:
- краткие теоретические сведения о структуре и порядке организации дисковой памяти (FAT) в операционной системе MS DOS.
- дизассемблированный текст начального загрузчика MS DOS из MBR с пояснениями важнейших моментов его работы.
- экранную копию цепочки таблиц разделов исследуемого жесткого диска (физическое и логическое представление) с объяснением их взаимосвязи между собой.
- экранную копию одного из BOOT секторов жесткого диска (физическое и логическое представление) с объяснением взаимосвязи параметров таблицы БАЗЫ ДИСКА между собой и с параметрами таблицы разделов диска.
- экранную копию начального участка таблицы FAT диска (физическое и логическое представление) с объяснением взаимосвязи параметров таблицы FAT, и параметров таблицы БАЗЫ ДИСКА.
- экранную копию одного начального участка каталога ROOT (физическое и логическое представление) с объяснением взаимосвязи параметров таблицы ROOT и таблицы FAT.
- изучить, кратко описать назначение и уметь применять для работы с дисками в системе FAT-16 и FAT-32 утилиты DOS:
FDISK, FORMAT, FIND, Chkdsk, Dblspace, Drvspace, Deltree, Diskcopy, Fc, LABEL, Scandisk, Subst, SYS, Xcopy, изучить, кратко описать назначение и уметь применять для работы с дисками в системе FAT-16 и FAT-32 утилиты Nortona:
UNERASE, NDD, DiskEdit, SpeedDisk, DiskTools, Undelete
Дизассемблированый текст программы
mov bx,data_3e ; (0000:7C00=0E8h)
mov ax,201h
push di
;Чтение секторов
int 13h ; Disk dl=drive ? ah=func 02h
; read sectors to memory es:bx
pop di
jnc loc_11 ; Jump if carry=0
xor ax,ax ; Zero register
;Сброс контролера
int 13h ; Disk dl=drive ? ah=func 00h
; reset disk, al=return status
dec di
jnz loc_10 ; Jump if not zero
mov si,6A3h
jmp short loc_7 ; (014B)
Этот участок программы считывает сектора с диска, по его завершению программа завершает свою работу.
MBR (Master Boot Record)
Так как емкость фиксированного диска относительно велика, некоторые пользователи ПЭВМ предпочитают применять только одну часть дискового пространства под DOS, а другие части - под другие операционные системы. Для этого доступное пространство фиксированного диска может быть разбито на четыре логические части - разделы, доступ к каждому из которых осуществляется отдельно. Данные каждого раздела могут храниться на нем совершенно независимо от данных, расположенных в других разделах. Каждый раздел может иметь свой собственный загрузочный сектор и операционную систему.
Первый сектор жесткого диска содержит 64-байтовую таблицу разделов и программу начальной загрузки диска. Таблица указывает, где на диске расположен каждый раздел. Кроме того, в таблице помечается один раздел как загрузочный.
Первый сектор загрузочного раздела является загрузочным сектором, который ROM
BIOS может использовать для загрузки операционной системы.
Программа начальной загрузки диска просматривает таблицу, чтобы определить, какой из разделов является загрузочным. После этого она считывает загрузочный сектор раздела с диска в память. Загрузочный сектор содержит свою программу начальной загрузки, которая, в свою очередь, считывает операционную систему с диска в память и передает ей управление.
Так как загрузочные разделы помечаются в таблице, можно выбирать между разделами фиксированного диска, просто корректируя саму таблицу и заново начиная работу с компьютером. Все операционные системы, способные поддерживать фиксированные диски, предоставляют в распоряжение пользователей программу, которая позволяет выполнять корректировку таблицы разделов. (Утилита системы DOS FDISK
как раз является такой программой.)
Таблица состоит из четырех 16-битовых записей, начинающихся со смещения 1ВЕН
в загрузочном секторе диска. Формат записи таблицы разделов фиксированного диска таков:
Смещение от Значение начала записи
00H Индикатор загрузки (80Н = загружаемый, 0 = не загружаемый раздел)
01H Начальный номер головки
02H Начальные номер цилиндра (10 битов) и номер сектора (6 битов)
04H Системный индикатор:
1 - первичный раздел DOS, 12-битовая FAT;
2 - XENIX;
4 - первичный раздел DOS, 16-битовая FAT;
5 - расширенный раздел DOS;
8 - другой, отличный от DOS раздел.
05H Последний номер головки
06H Последние номера цилиндра и сектора
08H Начальный сектор (относительно начала диска)
0CH Число секторов в разделе
В моем случае таблица раздела первичного раздела DOS имеет вид:
Диск D:
Зная координаты первого и последнего сектора раздела, можно вычислить число секторов от начала раздела DOS до начала данного раздела и суммарное количество секторов в разделе. И обратно, имея информацию о числе секторов между началом раздела DOS и началом данного раздела, координатах первого сектора раздела DOS, суммарном количестве секторов в разделе, количестве сторон, цилиндров и секторов на дорожку, можно получить координаты первого и последнего сектора раздела.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.