47121 (597321), страница 27
Текст из файла (страница 27)
NSB, SB и подсистема ввода-вывода образуют машинозависимую часть DOS.
BM-DOS – это центральный компонент DOS, реализующий основные функции операционной системы.
Управление ПУ с помощью BM DOS осуществляется на более высоком уровне, чем управление посредством драйверов на основе организации обращений к драйверам. Именно здесь находится файловая система, обеспечивающая выполнение операций над файлами. Основание этой системы образует подсистема ввода-вывода. Файловая система является наиболее развитой функциональной частью DOS.
Основу BM DOS составляют обработчики прерываний верхнего уровня. Обращение к BM DOS возможно только через механизм прерываний. Именно прерывания верхнего уровня выдают большинство программ, работающих под управлением DOS. Обработчики этих прерываний, в свою очередь, могут генерировать прерывания нижнего уровня.
Компоненты подсистемы ввода-вывода, загружаемые с диска, и BM DOS в процессе работы системы находятся в оперативной памяти постоянно (резидентно).
В то время как BIOS, EM BIOS и BM DOS в совокупности управляют ресурсами компьютера, интерпретатор команд CI отвечает за поддержку пользовательского интерфейса DOS.
Пользователь общается с системой путем передачи ей команд, которые она в состоянии проинтерпретировать. Под командой традиционно понимается указание на выполнение некоторого действия.
Файл автозапуска AUTOEXEC.BAT, исполняемый CI в процессе загрузки системы, включает команды DOS и запросы на выполнение программ, которые пользователь должен регулярно выдавать после запуска DOS в работу (например для загрузки резидентных программ). Это освобождает пользователя от частого выполнения рутинных операций. Если файл AUTOEXEC.BAT отсутствует, то CI выдает запросы на установку даты и времени.
CI состоит из двух модулей: резидентного и транзитного.
Резидентный модуль хранится после запуска DOS в оперативной памяти постоянно и включает обработчики трех важных прерываний, а также код подгрузки транзитного модуля CI.
Транзитный (нерезидентный) модуль может перекрываться в оперативной памяти выполняемыми программами, а затем восстанавливаться путем считывания с диска. Этот модуль содержит исполнитель так называемых внутренних команд DOS и загрузчик программ в оперативную память для выполнения.
Внутренними являются команды DOS, которые обычно используются чаще других.
Доступ к CI осуществляется по прерываниям от клавиатуры и другим программным прерываниям, которые он обслуживает.
Дополнительно к тому, что уже отмечалось, EM BIOS, BM DOS и CI содержат коды инициализаций, выполняемые только при загрузке DOS и затем уничтожаемые для освобождения памяти.
Утилиты – это обслуживающие программы, которые предоставляют пользователю сервисные услуги. Утилиты DOS делятся на две категории:
1) не диалоговые утилиты, к которым относятся также утилиты, способные выдавать пользователю ряд простых запросов, но не поддерживающие высокоразвитый пользовательский интерфейс;
2) интерактивные утилиты, имеющие развитый полноэкранный, организованный в виде меню интерфейс.
Очевидно, выполненное разделение весьма условно, но без него трудно отдать дань традиции в трактовке внешней команды DOS.
Внешней командой DOS считают команду, реализуемую утилитами первой или второй категории, но в не диалоговом режиме. Внешней команда именуется потому, что она реализуется не CI, а отдельной программой – утилитой. Внешние команды дополняют пользовательский интерфейс системы. DOS имеет вполне определенный перечень внешних команд.
Оболочка MS-DOS Shell – это надстройка над CI, внешне напоминающая Windows, которая упрощает работу пользователя в среде DOS и предоставляет ему ряд дополнительных возможностей.
Достоинствами оболочки MS-DOS Shell являются:
-
возможность выделения файлов для групповых операций в различных каталогах, применения групповых операций к найденным файлам;
-
поддержка создания и использования высокоразвитого меню программ;
-
обеспечение переключения задач;
-
компактность резидентного кода (около 4,5 кбайт).
Недостатки MS-DOS Shell:
-
отсутствие поддержки манипулирования поддеревьями файловой структуры;
-
невозможность работы с архивами;
-
слабые средства визуализации файлов.
Несмотря на наличие неоспоримых достоинств, оболочка MS-DOS Shell не пользуется заметной популярностью.
К инструментальным средствам DOS принадлежат:
-
система программирования MS-DOS QBasic (Quick Basic), построенная на основе интерпретации;
-
отладчик Debug, позволяющий тестировать и отлаживать исполняемые файлы;
-
текстовый редактор MS-DOS Editor, обеспечивающий подготовку исходных программ, а также простых текстовых доку-ментов.
BM DOS, CI, утилиты, оболочка и инструментальные средства DOS составляют ее машинонезависимую часть. Конечно, понятие "машинонезависимость" весьма условно, поскольку в любом случае необходим микропроцессор, совместимый с микропроцессором 8086/88 фирмы Intel. Именно эти и более совершенные микропроцессоры применяются в IBM-совместимых ПК.
Не все компоненты DOS, размещаемые в файлах, необходимы для того, чтобы DOS была в состоянии работать. Их отсутствие лишь ограничивает функциональные возможности системы.
Минимальная конфигурация MS-DOS включает: EM BIOS (файл IO.SYS), BM DOS (файл MSDOS.SYS) и CI (файл COMMAND.COM), если не принимать во внимание BIOS, NSB и BR.
Ограничения, накладываемые на структуру системного диска:
-
файлы IO.SYS и MSDOS.SYS регистрируется на первой и второй позициях корневого каталога системного диска соответственно (первой здесь считается позиция элемента корневого каталога, следующая за стандартным обязательным элементом, обозначаемым точкой);
-
файл COMMAND.COM находится в любом месте корневого каталога системного диска;
-
если имеются файлы DBLSPACE.BIN, CONFIG.SYS и AUTOEXEC.BAT, то они также должны содержаться в корневом каталоге системного диска.
Если в файле CONFIG.SYS сделать специальное указание командой SHELL, то файл COMMAND.COM можно разместить в любом каталоге системного диска или любом другом месте диска, если он доступен (является "установленным") во время загрузки DOS.
Остальные файлы DOS могут располагаться в любых каталогах каких угодно дисков. Однако необходимо хранить их в единственном каталоге жесткого диска.
Приведенные ограничения справедливы только в том случае, когда системный диск не сжат компрессором DoubleSpace. Если эта операция произведена, то в корневом каталоге несжатой части системного диска должны оставаться только файлы IO.SYS, MSDOS.SYS и DBLSPACE.BIN, а также еще не упоминавшийся файл конфигурации компрессора, создаваемый им автоматически и имеющий имя DBLSPACE.INI. Файлы COMMAND.COM, CONFIG.SYS и AUTOEXEC.BAT будут считываться из корневого каталога соответствующего сжатого логического диска, поэтому они обязаны находиться именно в нем, если в каждом из данных файлов есть необходимость. Объясняется это тем, что после подключения к системе драйвера DBLSPACE.BIN имя привода, закрепленное за системным диском, присваивается сжатому логическому диску, а сам системный диск получает другое имя. Например, если загрузка производится с диска С:\ и он сжат компрессором DoubleSpace, то при подключении драйвера DBLSPACE.BIN имя С:\ получает сжатый диск, созданный на диске C:\, и загрузка естественным образом продолжается с него.
Несмотря на сказанное, необходимо хранить копии файлов COMMAND.COM, CONFIG.SYS и AUTOEXEC.BAT также и в корневом каталоге несжатой части системного диска. Если последняя рекомендация выполнена, то ПК можно будет загрузить даже тогда, когда доступ к сжатому логическому диску становится невозможным в случае возникновения на нем логических дефектов. После загрузки DOS недоступность сжатого логического диска станет очевидной, и пользователь сможет предпринять адекватные возникшей ситуации меры.
3.3 Операционная система MS-DOS
3.3.1 Логическая структура дисков
Все винчестеры и флоппи-диски, поддерживаемые MS-DОS, за рядом исключений имеют сходный логический формат.
Под логическим форматом понимается то, что на диске резервируются определенные области для хранения служебной информации, необходимой операционной системе для работы с этим устройством.
Процесс создания и заполнения этих областей носит название логического форматирования.
Для создания логической структуры диска используются специальные программы, входящие обычно в состав операционной системы или существующие как независимые утилиты. Содержимое создаваемых областей может полностью или частично заполняться и изменяться не только во время форматирования, но и в процессе последующей работы с данным диском.
3.3.1.1 Логическая структура гибкого магнитного диска
Практически каждый диск содержит следующие области: загрузочная запись или сектор BR (Boot Record), две (одну) таблицы размещения файлов (FAT – File Allocation Table), корневой каталог RD (Root Directory) и область данных DA (Data Area) (рис. 3.7, 3.8).
Рис. 3.7. Логическая структура гибкого магнитного диска
Рис. 3.8. Структура системной области
Загрузочный сектор BR (SB) (рис. 3.9) каждого диска занимает по определению только один сектор и хранится в логическом секторе 0. В нем содержится некоторая информация о диске и небольшая программа IPL (2) (Initial Program Loading 2). Почему именно 2, а не 1, будет ясно из дальнейшего объяснения. Первым байтом этого сектора должен быть либо код безусловного перехода JMP (E9h) с последующим 16-битным смещением, либо код "короткого" (short) перехода JMP (EBh) с 8-битным смещением, причем третьим байтом в этом случае является код операции NOP (90h). Заканчивается сектор определенной кодовой комбинацией – сигнатурой (AA55h). Сразу за инструкцией JMP в этом секторе следует 8-байтное поле, резервируемое для идентификации имени и версии OEM (Original Eguipment Manufacturer). Программы форматирования традиционно записывают здесь ASCII-строку, содержащую марку и версию используемой операционной системы или наименование пакета, например MSDOSn.n либо PCTools.
Рис. 3.9. Структура загрузочного сектора
Безусловно, главным компонентом сектора BR является так называемый блок параметров BIOS BPB (BIOS Parameter Block). Это важнейшая структура данных, содержащая важную информацию: тип носителя (media descriptor), количество используемых байт на сектор и секторов на кластер, количество копий FAT и др.
Последний элемент сектора BR – это программа IPL2. Начальная инструкция JMP в этом секторе выполняет переход на точку входа именно этой программы.
Таблица размещения файлов располагается непосредственно после загрузочной записи и имеет переменный размер (в секторах). FAT используется для хранения сведений о размещении файлов на диске. Эта таблица состоит из элементов (12- или 16-битных), каждый из которых соответствует определенному участку дискового пространства и соответствующим кодом характеризует его состояние: занят, свободен или имеет дефект. В самом начале каждой таблицы FAT (первый элемент) хранится дескриптор (media descriptor), определяющий тип носителя (например для жесткого диска – F8h).
Минимальным элементом, которым MS-DOS оперирует при работе с дисками, является не сектор, а кластер. Кластеры состоят из нескольких секторов (2, 4 и т. д.).
Для дисков с магнитным носителем обычно используется две копии FAT, которые следуют одна за другой. Содержимое их полностью дублируется.
Корневой каталог диска всегда занимает строго фиксированное место – сразу за последней таблицей FAT. Он состоит из ограниченного числа 32-байтных записей, каждая из которых содержит информацию о файле или другом каталоге (подкаталоге), а также метке диска.
Корневая директория включает список всех файлов на дискете, его элементы содержат всю информацию о файле, за исключением сведений о размещении файла, которые хранятся в таблице размещения файлов. Любой элемент имеет длину 32 байт и включает восемь полей (все они выравниваются по левой границе, пустые байты заполняются пробелами):
1) имя файла – 8 байт. Если первый байт имеет значение Е516, то элемент не используется, если 2Е16, то этот элемент указывает на директорий нижнего уровня;
2) расширение имени файла – 3 байт;
3) атрибут – 1 байт. Используется для установления признака:
-
"только чтение" (нулевой бит);
-
скрытого файла (первый бит);
-
системного файла (второй бит);
-
признака метки тома (третий бит);
-
признака поддиректории (четвертый бит);
-
признака архивного файла (пятый бит);
-
шестой и седьмой биты этого байта резервные.
Если задан признак метки тома, то этот элемент содержит не ссылку на файл, а имя диска, которое занимает первые 11 байт. Архивный бит используется утилитами BACKUP и RESTORE;
















