Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

MS-DOS для программиста

© Александр Фролов, Григорий Фролов
Том 18, М.: Диалог-МИФИ, 1995, 254 стр.

[Назад] [Содеожание] [Дальше]

1.1. Основные компоненты операционной системы

На дистрибутивных дискетах MS-DOS расположены файлы io.sys, msdos.sys, wina20.386, командный процессор command.com, файлы внешних команд операционной системы (такие, как format.com, fdisk.exe и т. п.), драйверы и другие файлы.

После установки MS-DOS файлы io.sys, msdos.sys, wina20.386 и command.com переписываются в корневой каталог диска C:. Остальные файлы записываются в отдельный каталог, который по умолчанию называется dos (хотя при установке вы можете указать другое имя). Дополнительно в корневом каталоге формируются два текстовых файла с именами config.sys и autoexec.bat.

Для чего предназначены файлы, расположенные в корневом каталоге диска C:?

Файлы io.sys, msdos.sys и command.com являются основными компонентами MS-DOS. Опишем назначение этих и других файлов более подробно.

IO.SYS

Файл io.sys содержит расширение базовой системы ввода/вывода BIOS (Basic Input/Output System) и является интерфейсом между операционной системой и BIOS. Расширение используется операционной системой для взаимодействия с аппаратурой компьютера и BIOS.

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

Все программные прерывания можно разделить на две группы.

Первая группа - это прерывания базовой системы ввода/вывода BIOS. Обработчик этих прерываний записан в микросхеме постоянного запоминающего устройства (ПЗУ), расположенной на основной плате компьютера (motherboard). Обработчики прерываний BIOS работают с портами ввода/вывода стандартных устройств компьютера и обслуживают соответствующие аппаратные прерывания.

В мире выпускается очень много различных моделей основных плат для компьютеров, совместимых в той или иной степени с IBM PC. Использование BIOS позволяет до некоторой степени стандартизовать программный интерфейс с аппаратурой, так как производитель основной платы может учесть в BIOS все аппаратные особенности.

Вторая группа - прерывания MS-DOS. Обработчики этих прерываний находятся в файлах io.sys и msdos.sys.

Расширение базовой системы ввода/вывода MS-DOS, расположенное в файле io.sys, является как бы прослойкой между операционной системой MS-DOS и BIOS. Для выполнения операций ввода/вывода ядро MS-DOS обращается как к самой базовой системе ввода/вывода BIOS, так и к ее расширению, загружаемому в оперативную память из файла io.sys.

В результате применения такой многоступенчатой схемы была достигнута потрясающая совместимость операционной системы MS-DOS с аппаратурой. MS-DOS способна работать практически на любом компьютере, созданном любой фирмой. Лишь бы этот компьютер был хоть немного совместим с IBM PC.

MSDOS.SYS

Файл msdos.sys является в некотором смысле набором программ обработки прерываний, в частности прерывания INT 21h. Это ядро операционной системы.

Программы MS-DOS обращаются к прерыванию INT 21h в тех случаях, когда им нужно получить обслуживание от операционной системы. Например, заказать блок памяти, открыть файл или прочитать его содержимое, и т. д.

COMMAND.COM

Файл command.com - это так называемый командный процессор.

Командный процессор предназначен для организации диалога с пользователем компьютера. Он анализирует введенные команды и организует их выполнение.

Так называемые внутренние команды (dir, copy и т. д.) обрабатываются именно командным процессором. Не ищите в каталоге dos файлы программ с именами dir.exe или copy.com - таких файлов там нет. Внутренние команды потому и называются внутренними, что их обработчик находится в самой операционной системе. Точнее говоря, в файле command.com, который является важнейшей компонентой операционной системы MS-DOS.

Программист может написать свой собственный командный процессор и подключить его вместо стандартного. Новый командный процессор должен выполнять все функции, которые раньше выполняла стандартная программа command.com.

CONFIG.SYS

Файл config.sys представляет собой текстовый файл, предназначенный для определения конфигурации MS-DOS, а также для загрузки драйверов и резидентных программ. Он создается автоматически программой установки MS-DOS и затем при необходимости редактируется пользователем. Для редактирования файла можно использовать текстовый редактор edit, который входит в состав MS-DOS.

AUTOEXEC.BAT

Для автоматического выполнения часто используемых последовательностей команд MS-DOS можно создать так называемый пакетный файл. Этот текстовый файл с расширением имени .bat в каждой своей строке содержит вызов внутренней или внешней команды MS-DOS, а также специальные операторы.

На этапе установки MS-DOS в корневом каталоге диска C: создается пакетный файл с именем autoexec.bat. Этот файл запускается сразу после загрузки MS-DOS и содержит команды определения среды выполнения программ, а также вызовы инициализирующих и резидентных программ.

WINA20.386

Файл с именем wina20.386, который записывается в корневой каталог программой установки MS-DOS, представляет собой виртуальный драйвер для операционной системы Microsoft Windows (о виртуальных драйверах Microsoft Windows вы можете прочитать в 17 томе нашей серии книг "Библиотека системного программиста").

Основное назначение виртуального драйвера wina20.386 - обеспечение совместной работы со старшей областью памяти HMA операционных систем MS-DOS и Microsoft Windows версии 3.0 в расширенном режиме. Так как в настоящее время подавляющее большинство пользователей работают с Microsoft Windows версии 3.1 или с Microsoft Windows for Workgroups, этот файл, скорее всего, не понадобится вам совсем. Вы можете удалить его с диска.

Драйверы

Драйверы представляют собой программы, обслуживающие различную аппаратуру. Кроме этого, в виде драйверов могут быть оформлены различные расширения MS-DOS, такие как система динамического сжатия данных на диске или система управления расширенной памятью.

Обычно драйверы находятся в файлах, имеющих расширение имени .sys, хотя есть и драйверы, встроенные в MS-DOS. Драйвер подключается к операционной системе MS-DOS с помощью оператора device, расположенного в файле config.sys.

Загрузочный файл драйвера имеет специальный формат, который будет подробно описан в нашей книге.

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

Например, новое дисковое устройство может иметь другое количество дорожек и секторов, другие управляющие команды. Все это учитывается драйвером и базовой системой ввода/вывода BIOS, а прикладная программа будет работать с новым диском, как и раньше, используя прерывания BIOS и MS-DOS.

Внешние команды

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

Подробное описание внутренних и внешних команд выходит за рамки нашей книги. Основные команды описаны в первом томе нашей серии книг "Персональный компьютер - шаг за шагом". Сведения об остальных командах вы сможете найти в руководстве пользователя MS-DOS. Кроме того, в продаже есть много книг, посвященных командам MS-DOS.

Расскажем немного о программах, предназначенных для подготовки дисков и дискет.

Подготовка системной дискеты

Файлы операционной системы выделяются своим особым расположением на диске (кроме файла command.com) - эти файлы должны находиться в специально отведенном для них месте. Если вам нужно подготовить системную дискету (т. е. такую, с которой можно загружать операционную систему), для переноса файлов операционной системы следует использовать специальные средства. Если вы просто скопируете файлы msdos.sys и io.sys на чистую дискету, она от этого не станет системной.

Самый простой способ подготовки системной дискеты - отформатировать ее при помощи внешней команды format с параметром /s, например:

c:\>format a: /s

В этом случае после форматирования на дискету будут перенесены файлы операционной системы.

Вы можете также перенести системные файлы на дискету командой sys:

c:\>sys c:

Перед тем как вводить эту команду, сделайте текущим корневой каталог диска C:, так как в противном случае программа sys.com не сможет найти файлы io.sys, msdos.sys и command.com (что довольно странно, эти файлы найти достаточно легко).

Программа FDISK

Программа fdisk предназначена для подготовки жесткого диска к работе. Она разбивает диск на участки, называемые разделами.

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

Программа fdisk позволяет создать для MS-DOS первичный и вторичный раздел. В первичном разделе располагается системный диск C:, с которого выполняется загрузка операционной системы, вторичный раздел может быть разделен на логические диски (D:, E:, F: и т. д.). Диски, расположенные во вторичном разделе, не могут быть системными.

Заметим, что старые версии MS-DOS (до версии 4.0) позволяли создавать логические диски размером не более 32 Мбайт. Это связано с тем, что эти версии использовали 16-разрядную адресацию секторов диска, что недостаточно для дисков больших размеров.

Иногда вместо программы fdisk для подготовки жесткого диска используются специальные программы, такие как Advanced Disk Manager, Speed Stor и т. д. Используя свои собственные форматы разделов и таблиц разделов (и свои драйверы дисковых устройств), перечисленные выше программы предоставляют такие дополнительные возможности, как защита логического диска от записи или организация парольной защиты данных на диске. При этом для доступа к нестандартному разделу используется специальный драйвер.

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

Кроме того, драйверы, используемые для доступа к нестандартным разделам диска занимают дефицитное место в оперативной памяти и уменьшают производительность MS-DOS.

Некоторые программы, особенно защищенные от копирования, отказываются работать на диске, подготовленном нестандартными средствами. Причины этого мы объясним в следующем томе, когда будем обсуждать проблемы защиты программ от несанкционированного копирования.

Резидентные программы

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

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

Например, пользователь работает с текстовым процессором. И тут ему потребовалось поискать что-нибудь в справочной базе данных, сделать вычисления на калькуляторе и т. п. Для этого ему достаточно активизировать нужную резидентную программу, нажав соответствующую комбинацию клавиш. После завершения работы с резидентной программой пользователь может вернуться к редактированию текста или другой прерванной работе.

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

В качестве альтернативы пользователь MS-DOS версий от 5.0 и выше может использовать переключатель задач. Однако этот способ имеет свои недостатки.

[Назад] [Содеожание] [Дальше]