HPFSиспользуется для хранения элементов каталога. Каждый элемент начинается с узла.
В корневом каталоге:
Усеченное имя
Указатель на F-узел, в котором хранится информация о физическом расположении файла на диске (длина – 11 секторов)
Атрибуты
В HPFS вместо того, чтобы описывать каждый сектор занимаемого файла используется указатель на 1 и количество записанных секторов w.
Такая система последовательных секторов называется экстент.
Файловая система NTFS(кратко)
В файловой системе NTFS вся информация, в том числе и та, что описывает файл, хранится в файле.
Каждый файл в файловой таблице содержит:
Информацию о файле (первый 16)
Файл регистр
Записи о файле
NTFS более надежна, обеспечивает конфиденциальность.
Порядок загрузки:
Загрузчик (ПЗУ) находит 1 физический сектор, читает и записывает 7C00 (адрес). Программа загрузчика может читать любой сектор. Самый первый сектор содержит корневую запись, последняя часть первого сектора содержит таблицу разделов (4-элементная таблица). Более 4-х разделов нельзя.
DOS читает и ищет активные разделы (0 – неактивен, 1– активен) и передает на выполнение (управление). Загрузка завершена.
Формат исполняемых файлов:
С расширением .COM
С расширением .EXE
COM не превышает размер 64 КБ и представляет из себя двоичный образ задачи.
При запуске DOS считывает его в память со смещением 100h. Первые 100 б содержат префикс программного сегмента (PSP). ВCOM ds, cs, ss указывают на один сегмент.
Файл .EXE:
Информация для загрузчика
Исполняемый код
В начале файла заголовок – информация для загрузчика.
Смещение 2 байта – код 4D5A (MZ)
Смещение 2 байта – число бат в последнем блоке
Следующее 2 байта – длина файла в блоке
Следующее 2 байта – число элементов таблицы настройки адресов
Следующее 2 байта (8-9) – длина заголовка в 16-байтовом параграфе; начало исполняемого файла
Заканчивается со смещением 1В и далее таблица настройки адресов (смещение 1В).
2 поле:
2-хбайтовое смещение
2-хбайтовый сегмент
и указывает слово в загрузочном модуле, содержит адрес, который должен быть настроен на место памяти, куда загружается задача.
Под данные – 64 КБ
Под стек – 64 КБ
Под код – сколько угодно (64-КБх)
PSP представляет из себя 100 – байтовую область, вслед за которой загружается программа.
В двух байтах (первых) int 21h – завершение.
Смещение 0Е4В – адрес обработчика критических ошибок.
Со смещением 81 Б – длина строки с параметром
Со смещением с 81 до 7F – содержимое командной строки
Работа отладчика:
Norma db ‘16’ ‘Hello’, 0Ah, ØDh, ‘$’
db ‘DEBUG’ 0Ah, ØDh, ‘$’
CODE:
Start:
mov ax, @DATA
mov DS,AX
mov DS, offset norma
mov ah,0
int 21h
mov ax,ss
cmp ax,es [30]
je exit
mov ah,9
mov dx, offset trast
int 21h
exit:
mov ax,4c00h
int 21h
end start
В PSP программа со смещением 2F находится 4-байтовая область, в которую DOS помещает указатель стека при обращении к системе функций, так как при выполнении ряда системных функций используется внутренний стек DOS.
При пошаговом выполнении обработку int 21h первым выполняет отладчик, чей указатель будет сохранен в активном PSP.