Система ввода/вывода и системные файлы Первоначальная загрузка Дисковые структуры Общий объем дискового пространства Сохранение данных

Загрузка операционной системы

Программы низкоуровневого форматирования, предназначенные для накопителей ST-506/412, должны работать с ними на уровне прерывания INT 13h или еще более низком. Большинство таких программ обращается к диску только через прерывание, поскольку практически любая операция, выполняемая в процессе их работы, доступна через интерфейс INT 13h. Но этого нельзя сказать о контроллерах и накопителях других типов (IDE, SCSI и ESDI), для которых такие операции, как создание карты дефектов и некоторые другие, выполняются иначе, чем для устройств, выполненных в стандарте ST-506/412. Стандартные программы форматирования, взаимодействующие с накопителем через прерывание INT 13h, не могут работать с контроллерами, которые должны выполнять такие специальные операции, как, например, определение параметров накопителя и подстановка их вместо табличных значений, "зашитых" в ПЗУ системной BIOS. По этой причине для большинства контроллеров разрабатываются специальные программы форматирования дисков, работающие "в обход" интерфейса INT 13h. Большинство же подобных программ общего назначения (так называемые неразру-шающие программы, к которым относятся Calibrate и SprinRite II) обращается к контроллеру через интерфейс INT 13h (а не непосредственно), и потому они не могут быть использованы для первоначального форматирования. Начальное форматирование низкого уровня должно выподняться программой, предназначенной  для конкретного контроллера.

Помимо нескольких основных программ, предназначенных для форматирования накопителей, лишь немногие способны обращаться к диску на уровне прерывания INT 13h. К их числу относится, например, входящая в DOS программа FDISK. Программа Diskedit (из Norton Utilities) и программы из старых версий этого пакета могут взаимодействовать с диском на уровне INT 13h в том случае, если работают в режиме физических секторов. Это бывает жизненно необходимо в тех случаях, когда данные на диске серьезно повреждены — например, испорчены таблицы разбиения. Поскольку эти таблицы, а также любые разделы, определенные для других операционных систем (не DOS), в DOS недоступны, единственный способ до них добраться — это работать через прерывание INT 13h. Большинство же программ, предназначенных для восстановления данных, использует только прерывания DOS INT 25 и INT 26h, что делает их в подобных ситуациях совершенно бесполезными.

Команды, направляемые в порт В/В контроллера диска. Программы, использующие интерфейс самого низкого уровня, "общаются" непосредственно с контроллером диска на его "родном" языке. Это означает, что программа посылает специфические команды управления в адрес соответствующего порта В/В, причем они могут быть разными даже для контроллеров одного и того же типа (например, ESDI). Системная BIOS должна быть спроектирована с расчетом на обслуживание контроллеров определенного типа, поскольку они взаимодействуют именно на уровне портов В/В. Большинство программ низкоуровневого форматирования, разработанных фирмами-изготовителями накопителей, тоже должно обращаться непосредственно к контроллеру, поскольку набора функций, вызываемых через прерывание INT 13h, недостаточно для выполнения всех операций, предусмотренных во многих ныне существующих контроллерах ST-506/412, не говоря уже о ESDI и SCSI-устройствах.

Все вышесказанное проиллюстрировано на рис. 20.2. Как нетрудно заметить, большинство прикладных программ работает через интерфейс INT 21h, на уровне которого команды преобразуются в функции системной BIOS, вызываемые через прерывание INT 13h. Системная BIOS преобразует эти функции в команды, передаваемые непосредственно контроллеру. Контроллер принимает и исполняет команды и передает результаты выполненных операций "наверх". Соответствующая информация, пройдя через все уровни в обратном порядке, добирается, в конце концов, до прикладной программы. Такая иерархия программного обеспечения позволяет программам-приложениям считывать и записывать данные, не заботясь о деталях этих процессов и отдавая их "на откуп" DOS и системной BIOS. Следствием такого подхода является то, что прикладные программы могут выполняться на самых разных по своей конструкции и элементной базе компьютерах — при условии, что в них установлены системные BIOS и DOS со стандартными наборами вызываемых функций.

Любая программа может взаимодействовать с интерфейсом любого уровня "в обход" лежащих выше, однако это потребует от программиста значительно больших усилий. Низший из доступных уровней — это непосредственное обращение к регистрам контроллера через порт В/В (к самому дисководу обратиться невозможно — это привилегия контроллера). На рис. 20.2 указаны адреса этих портов для контроллеров некоторых типов. Нетрудно заметить, что эти адреса разные; разными являются и наборы команд, которые можно передавать в указанные порты.

Рис. 20.2. Взаимосвязь между интерфейсами различных уровней

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

Персональный компьютер