Модули DOS

             1. Основные компоненты ДОС

     Всю систему можно разделить на шесть основных частей, функции каж-
дой мз которых мы кратко рассмотрим в этом разделе.  Первая часть - это
система BIOS в ПЗУ.  Это система поставляется вместе с IBM/PC  и  может
использоваться любой операционной системой. Функция BIOS в ПЗУ заключа-
ется в обслуживании основных и наиболее фундаментальных операций компь-
ютера.  Поскольку система BIOS в ПЗУ для IBM/PC является "встроенной" в
комптютер,  она является не только составной частью ДОС, но и составной
частью любой операционной системы IBM/PС.
     Еще одна часть - "загрузочная запись" дискеты.  Загрузочная запись
- это очень короткая и простая программа,  находящаяся в первом секторе
каждой дискеты.  Функция этой программы заключается в запуске  процесса
загрузки операционной системы после включения компьютера или перезапус-
ка (нажатия клавиш CTRL-Alt-Del).  Загрузочная запись считывает еще два
модуля  операционной  системы в память и они завершают процесс загрузки
ДОС.
     Следующие две   части   ДОС   представляют  собой  дисковые  файлы
IBMBIO.COM и IBMDOS.COM. Обе эти части загружаются в память загрузочной
записью и остаются в памяти во время работы ДОС, так что провести между
ними различие довольно трудно. Файл IBMBIO.COM представляет собой изме-
няемое  дополнение  к  системе  BIOS в ПЗУ.  Начиная с версии 2.00 файл
IBMBIO.COM может дополняться другими частями,  называемыми независимыми
драйверами устройств,  которые мы подробнее рассмотрим несколько позже.
Система BIOS в ПЗУ,  IBMBIO.COM и драйверы устройств, вместе взятые об-
разуют "физический" уровень операционной системы.
     Файл IBMDOS.COM реализует основные услуги  ДОС.  Это  "логический"
уровень ввода/вывода операционной системы.
     Оба эти файла являются "скрытыми" системными файлами.  Имена  этих
файлов не включаются в оглавление диска, вызываемое по команде DIR. Од-
на из функций IBMBIO.COM заключается в загрузке еще одного модуля  опе-
рационой системы.
     Пятая часть -  это  дисковый  файл  COMMAND.COM.  Главная  функция
COMMAND.COM заключается в обработке команд, вводимых пользователем. Ко-
манды ДОС,  считающиеся внутренними,  такие как TYPE, COPY и DIR факти-
чески реализуются программами COMMAND.COM.  Собственно COMMAND.COM раз-
деляется на две части:  одна становится частью IBMDOS.COM,  а вторая  -
процессором дополнительных команд.
     Шестая и последняя часть ДОС состоит из всех внешних команд, таких
как  FORMAT  и DISKCOPY.  Функции этих команд различны и реализующие их
программы загружаются в память только в случае необходимости. В отличие
от остальных пяти частей ДОС, все эти дополнительнве программы не явля-
ются интегральной составляющей ДОС,  хотя они и поставляются  вместе  с
ней.  Некоторые из этих дополнительных программ, например, FORMAT, нас-
только важны, что обойтись без них практически невозможно.
     Внешние команды являются нерезидентными частями ДОС, поскольку они
не находятся в памяти постоянно. Файлы IBMBIO.COM, IBMDOS.COM и драйве-
ры  устойств  находятся в памяти постоянно и образуют резидентную часть
ДОС. Файл COMMAND.COM можно выделить в отдельную категорию как полу-ре-
зидентную составляющую ДОС,  о чем речь пойдет ниже. Загрузочная запись
используется только временно и поэтому не является  резидентной  частью
ДОС.  В следующих шести разделах мы более подробно рассмотрим каждую из
частей ДОС.


                                     - 2 -
                2. Система BIOS в ПЗУ

     Первая часть в ДОС - это BIOS в ПЗУ или базовая система  ввода/вы-
вода,  размещающаяся в постоянной памяти. Эта система обеспечивает наи-
более простые и универсальные услуги операционной системы,  связанные с
осуществлением ввода/вывода.
     Система BIOS располагается в ПЗУ начиная с адреса FE00 и до  FFFF,
сразу же после интепретатора БЕЙСИКа.
     Поскольку BIOS в ПЗУ является частью IBM/PC,  она может изменяться
только в том случае,  когда изменениям подвергается аппаратная реализа-
ция системы.  В качестве составной части IBM/PC, система BIOS в ПЗУ яв-
ляется не просто одной из частей ДОС, но частью любой операционной сис-
темы IBM/PC.
     Система BIOS  в  ПЗУ состоит из нескольких частей,  большинство из
которых представляет собой программы (остальные -  это  важные  таблицы
данных,  которые мы рассмотрим в последующих главах). Программа системы
BIOS, которая выполняется первой, представляет собой тест функциониова-
ния.
     Эта программа поверяет память и внешние устройства, подключенные к
IBM/PC, как только будет включено питание компьютера. Работа этой прог-
раммы определяет ту задержку,  которая имеет место между включением пи-
тания и загрузкой операционной системы.  Чем больший объем памяти подк-
лючен к Вашему компьютеру,  тем дольше выполняется тест, поскольку наи-
более длительной процедурой является процедура поверки памяти.
     Следующая часть BIOS, которая должна выполняться как программа за-
пуска операционной системы,  - это программа вызова загрузчика операци-
онной системы. Эта программа проверяет, подключен ли дисковод с гибкими
дисками  и  считывает с дискеты "загрузочную запись".  После считывания
загрузочной записи программа запуска передает ей управление,  чтобы она
считала оставшиеся части операционной системы.
     Если в системе нет дисковода или при считывании загрузочной записи
произошла ошибка, то программа запуска BIOS передает управление кассет-
ной системе БЕЙСИК.  Если Вы включите IBM/PC,  не установив  дискету  в
дисковод,  то Вы увидите, что начала работу программа системы БЕЙСИКа.
     Помимо двух уже описанных частей - автономного теста функцонирова-
ния и программы запуска,  система BIOS в ПЗУ содержит множество  других
программ и они-то представляют для нас наибольший интерес.  Сюда входят
программы обслуживания всего  стандартного  периферийного  оборудования
IBM/PC.  Эти  программы выполняют основные функции управления клавиату-
рой,  дисплеем, дискетами, асинхронным адаптером связи, устройством пе-
чати и кассетным интерфейсом. Работой с этими программами нам необходи-
мо овладеть, чтобы полностью использовать все возможности IBM/PC.

     3. Начальная загрузка - загрузочная запись

     Загрузочная запись необходима для запуска ДОС. Принцип использова-
ния загрузочной записи реализован практически на всех компьютерах. Заг-
рузочная запись содержит минимум необходимых команд  для  считывания  и
запуска основных частей операционной системы.
     При запуске IBM/PC либо включением питания,  либо нажатием  клавиш
Ctrl-Alt-Del, процедура запуска системы BIOS в ПЗУ считывает первую за-
пись дискеты,  установленной в дисковод А и помещает ее  в  стандартную
область  памяти,  по  адресу 31744 или 7С00 (шестнадцатиричное).  После
считывания загрузочной записи BIOS передает ей управление, выполняя пе-
реход по адресу 31744.  Далее загрузочная запись должна продолжить заг-
рузку операционной системы.
     Основное назначение  загрузочной записи для ДОС заключается просто
в загрузке файлов IBMBIO.COM и IBMDOS.COM. Загрузочная запись имет раз-
мер  стандартного  сектора на дискете,  512 байт,  что недостаточно для
сложной программы.  Для упрощения работы  этой  программы,  оба  файла,

                                     - 3 -
IBMBIO.COM  и IBMDOS.COM,  размещаются в определенных постоянных местах
на дискете. Это избавляет программу загрузки от необходимости искать их
в справочнике дискеты.
     Этим, кстати,  "системная" дискета отличается от обычной - на ней,
в  определенных  местах,  находятся  два  системных  файла IBMDOS.COM и
IBMBIO.COM.  Поэтому нельзя просто преобразовать обычную дискету в сис-
темную - места,  зарезервированные для системных файлов, могут быть за-
няты другими файлами.
     Хотя загрузочная программа не столь совершенна, чтобы осуществлять
поиск системных файлов,  она все же способна проверить правильность  их
включения в справочник.  Поскольку оба системных файла включены в спра-
вочник дискеты,  они защищены как от стирания,  так и от  любых  других
способов  доступа  установлением атрибутов скрытого и системного файла.
(В следующей главе мы поясним, что такое скрытые и системные файлы).
     В  связи  с  простотой  ее  задачи,  программа  загрузки
является относительно стабильной  составной  частью  ДОС.  Ее
потребовалось    изменить,   когда   изменялся   размер   или
местоположение системных файлов, а это произошло с  введением
поддержки двухсторонних дискет в версии ДОС 1.10.

                    4. IBMBIO.COM

     Первый из двух системных файлов,  IBMBIO.COM, предназначен для до-
полнения функций системы BIOS в ПЗУ.  Как BIOS в ПЗУ,  так и IBMBIO.COM
занимаются  обслуживанием  операций ввода/вывода или обслуживанием уст-
ройств, что то же самое. Такая функция предполагает обработку различных
подробностей, связанных с функционированием устройств ввода/вывода. Сю-
да же включается обнаружение ошибок и их исправление,  что для программ
еще сложнее.
     Программы IBMBIO.COM отличаются тем,  что их легко можно изменить,
чего нельзя сказать о программах BIOS в ПЗУ. Файл IBMBIO.COM предназна-
чен для решения трех задач, которые невозможно решить с помощью системы
BIOS  в ПЗУ.  Первая задача заключается в настройке на нужды конкретной
операционной системы, ДОС.
     Вторая задача  IBMBIO.COM заключается в исправлении любых ошибок в
BIOS в ПЗУ,  если в этом возникнет необходимость.  Программы,  подобные
системе BIOS,  проверяются очень тщательно, ведь их размещение в ПЗУ не
допускает исправлений.  Если ошибки все же будут позднее  обнаружены  в
BIOS, их можно будет исправить путем внесения соответствующих изменений
в IBMBIO.COM.  Это делается путем изменения векторов  прерываний  таким
образом,  чтобы управление при обращении к операциям BIOS сначала попа-
дало в IBMBIO.COM,  а уже затем в BIOS.  Соглашения о вызовах  процедур
системы BIOS в ПЗУ всегда предполагает использование прерываний, вместо
прямых переходов по адресам ПЗУ.  Основная причина использования преры-
ваний как раз и состоит в обеспечении возможностей перехвата управления
у процедур BIOS,  ведь, в противном случае, такой возможности просто не
существовало бы.
     Третья задача, которую не позволяет решить BIOS, и, которую за нее
решает  IBMBIO.COM,  заключается в обслуживании новых периферийных уст-
ройств,  таких как жесткие диски большой  емкости,  или  восьмидюймовые
(203мм) дискеты,  или плоттеры,  или любые из сотен устройств,  которые
могут быть подключены к IBM/PC.  Когда  новое  устройство  ввода/вывода
подключается к IBM/PC,  обслуживающая его программа должна включаться в
файл IBMBIO.COM или его расширения,  без необходимости замены микросхем
ПЗУ, в которых размещается система BIOS.
     В наиболее ранних версиях ДОС задача включения нового устройства в
систему  предполагала  внесение изменений в IBMBIO.COM и,  возможно,  в
другие системные программы ДОС.  Хотя это не слишком сложно  для  таких
фирм как "ИБМ" или "Майкрософт", такая задача может оказаться непосиль-

                                     - 4 -
ной для пользователя, которому требуется включить дополнительное обору-
дование в свою систему.
     Поскольку возможность добавления новых устройств к компьютеру сос-
тавляет  немаловажное условие его успеха на рынке,  процедура включения
обслуживающих программ в ДОС была упрощена,  начиная с ДОС версии 2.00.
Когда  управление  впервые после запуска системы передается IBMBIO.COM,
он проверяет,  находится ли на дискете файл конфигурации системы.  Если
файл конфигурации найден,  считываются его команды, часть которых опре-
деляет ряд параметров системы.
     Команды файла конфигурации включают имена всех программ обслужива-
ния устройств, которые необходимо включить в BIOS. Каждая из этих прог-
рамм загружается в память как дополнение к IBMBIO.COM.  Такая схема об-
легчает добавление новых устройств,  позволяет делать это модульно,  не
затрагивая системные файлы ДОС.
     Как правило,  любая программа, работающая на IBM/PC, будет исполь-
зовать обычную версию BIOS для ДОС.  Однако,  в некоторых случаях прог-
рамме необходимо бывает особое обслуживание операций ввода/вывода. Пос-
кольку IBMBIO.COM представляет собой дисковый файл, который можно изме-
нить,  имеет смысл разработать версию IBMBIO.COM,  настроенную на  Ваши
конкретные  нужды.  Пример такой настройки Вы можете найти в диагности-
ческих программах.

                    5. IBMDOS.COM

     Разделение операционной  системы  на  два  модуля,  IBMBIO.COM   и
IBMDOS.COM  позволяет разделить те части,  которые специфичны для конк-
ретного компьютера и те,  которые являются общими для всех компьютеров,
работающих под управлением ДОС.
     Служебные процедуры ДОС,  в определенной степени произвольно, раз-
делены  на те,  которые вызываются с помощью собственных прерываний,  и
те,  которые разделяют общее прерывание  (номер  33,  шестнадцатиричное
значение 21). В терминологии ДОС, первая группа называется прерываниями
ДОС, а вторая - вызовами функций. В обоих случаях для их вызова исполь-
зуются программные прерывания,  причем по той же причине, что и для вы-
зова программ BIOS: для обеспечения модульности.
     Диапазон прерываний  от 32 до 63 (шестнадцатиричные значения от 20
до 3F) зарезервированы для использования ДОС. Используется только часть
этих прерываний,  а остальные обеспечивают возможность дальнейшего рас-
ширения. Программы обслуживания прерываний ДОС включают чтение и запись
секторов дискеты, доступ к контролю за ошибками ДОС и операциями клави-
атуры Ctrl-Break.
     Вызовы функций ДОС обеспечивают, в основном, промежуточный уровень
обслуживания операций ввода/вывода. В качестве примеров можно упомянуть
ввод с клавиатуры, обычный вывод на экран дисплея, ввод/вывод по асинх-
ронной линии связи и вывод на печать.  Предусмотрены  также  логические
операции  для дискет - открытие и закрытие файлов,  поиск в справочнике
файлов,  удаление и создание файлов, чтение и запись данных. Эти проце-
дуры обеспечивают практически все элементарные операции,  которые могут
потребоваться программе для работы с файлами и данными,  хранящимися  в
файле, так чтобы программе не приходилось самостоятельно расшифровывать
данные справочников, таблиц размещения файлов и т.п.
     Большая часть  этих служебных процедур ДОС интенсивно используется
программами более высокого уровня ДОС.  Например,  процедура  поиска  в
справочнике используется командами DIR и COPY.  Кроме того, она исполь-
зуется интерпретатором команд для поиска программных файлов.  В разделе
4.9 будет рассмотрен полный список служебных процедур ДОС.

      6. Файл COMMAND.COM и внутренние команды


                                     - 5 -
     Следующая составная часть ДОС,  файл COMMAND.COM, одна из наиболее
интересных частей, как с точки зрения тех услуг, которые она предостав-
ляет пользователю,  так и с точки зрения принципов ее функционирования.
COMMAND.COM имеет несколько функций.  Прежде всего,  это "процессор ко-
манд", что означает возложенные на него функции ввода команды, набирае-
мой на клавиатуре, и определения дальнейших действий.
     Когда вводится внутренняя команда,  такая как DIR, COPY, TYPE, REM
или  PAUSE,  то  запрашивается  случайная  процедура,  "встроенная"   в
COMMAND.COM, так что она может выполняться немедленно.
     Чтобы распознавать внутренние команды, COMMAND.COM содержит табли-
цу имен команд. Если просмотреть файл COMMAND.COM, то можно увидеть эти
имена команд.  Для просмотра файла  COMMAND.COM  можно  воспользоваться
программой DEBUG или DiskLook. Там же Вы увидите сообщение, которое ДОС
выдает в начале работы.  При желании эти сообщения можно изменить с по-
мощью  команды DEBUG или SecMod,  так чтобы ДОС начинала работу выдачей
Вашей фамилии или названия компании. Можно также изменить и имена внут-
ренних команд, причем сделать это просто, если не изменяется длина име-
ни.
     Если команды нет в таблице внутренних команд, значит имеется в ви-
ду внешняя команда,  которую COMMAND.COM будет искать во внешнем файле.
В  ответ на наш запрос,  COMMAND.COM осуществляет поиск файла обработки
команды на соответствующей дискете и запускает его выполнение.
     Когда  COMMAND.COM  находит  программный  файл  в  любом
формате,  он  выполняет  загрузку  этого  файла  в  память  и
выполняет  любое  необходимое  преобразование. После загрузки
файла  и  формирования   приставки   программного   сегмента,
COMMAND.COM передает управление этой программе, так чтобы она
могла выполнить свою работу.
     Если файл обработки команды относится к типу ".BAT", то есть явля-
ется файлом пакетной обработки,  то он содержит  в  формате  текстового
файла в коде ASCII последовательность команд, которые должны выполнять-
ся так,  как будто они вводятся с  клавиатуры.  Одна  из  многих  задач
COMMAND.COM  заключается  в отслеживании позиции в файле пакетной обра-
ботки, так чтобы после выполнения одной команды сразу переходить к дру-
гой. Если в процессе обработки одного пакетного файла будет вызван дру-
гой,  то возврата к первому не произойдет, так как файлы пакетной обра-
ботки не могут быть вложенными, зато их можно объединять в цепочку.
     В некоторых системах весь ввод команд может быть  переназначен  на
файл,  причем это относится как к программам, вводящим данные с клавиа-
туры, так и к интерпретатору команд. К ДОС это не относится. Только ин-
терпретатор  команд COMMAND.COM может автоматически выполнять чтение из
файлов пакетной обработки.
     Кстати, программы могут вносить изменения в файл пакетной обработ-
ки и таким образом определять, какая команда будет выполнена следующей.
Это  часто  делается в сложных приложениях для замены последовательного
выполнения программ.

  Командный процессор, COMMAND.COM состоит из трех отдельных частей:
     1. Резидентной   части,   размещаемой  в  ОЗУ  непосредственно  за
IBMDOS.COM и ее рабочей областью. Эта часть содержит подпрограммы обра-
ботки прерываний 22H (адрес завершения),  23H (реакция на Ctrl-Break) и
24H (реакция на фатальную ошибку), а также подпрограмму подзагрузки не-
резидентных  частей.  (При завершении программы вычисляется контрольная
сумма области нерезидентной части командного процессора,  и выясняется,
не затерта ли она. Если да, то нерезидентная часть подзагружается). За-
метим,  что вся стандартная обработка ошибок производится  этой  частью
COMMAND.COM. Это включает выдачу сообщений об ошибках и обработку отве-
та на вопрос "Abort, Retry or Ignore".
     - Часть инициализации располагается в памяти вслед за резидентом и

                                     - 6 -
получает управление при запуске системы.  Эта часть включает  обработку
файла AUTOEXEC.BAT.  Она также определяет адрес, начиная с которого мо-
гут загружаться программы.  Эта часть перекрывается первой же  програм-
мой, загружаемой COMMAND, так как не используется после выполнения ини-
циализации.
     - Нерезидентые части загружаются в конец (старшие адреса) ОЗУ.  Их
две:  собственно командный процессор (часть 3),  выполняющий  обработку
диалогjds[ команд и из командных файлов,  и (часть 4) загрузчик, загру-
жающий и выполняющий нерезидентные команды (т.е.  файлы с  расширениями
.COM или .EXE).  Загрузчик располагается в самом конце ОЗУ и вызsвается
операцией вызова и загрузки прогамм (Exec).
     Часть 3 COMMAND выдает приглашение (напр. A>), принимает команды с
клавиатуры (или из командного файла) и начинает их выполнение.  Для не-
резидентных  команд она формирует командную строку и выполняет операцию
Exec для загрузки и вызова соответствующей программы.

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

     Последнюю часть операционной системы ДОС составляют внешние коман-
ды.  Они называются внешними, поскольку они не включены в состав ДОС, и
не являются резидентными в памяти IBM/PC. Вместо этого, внешние команды
хранятся в программных файлах на дискетах.
     Как все программные файлы,  все внешние команды  имеют  расширение
имени файла ".COM" или ".EXE",  что указывает,  в каком из форматов они
оформлены.  Мы рассмотрим эти форматы, когда будем рассматривать струк-
туру дискет и файлов в следующей главе.
     Примерами внешних команд могут служить DISKCOPY,  COMP,  FORMAT, а
такие программы как EDLIN,  BASIC или BASICA тоже в определенном смысле
являются внешними командами,  хотя их лучше все  же  считать  языковыми
процессорами, такими как макроассемблер или Паскаль.
     Внешние команды не отличаются от других программных файлов,  кото-
рые Вы сами разрабатываете или покупаете.  С одной точки зрения внешние
команды действительно являются частью  операционной  системы,  особенно
те, без которых операционной системой нельзя воспользоваться, такие как
FORMAT. Однако, с другой точки зрения, внешние команды - это всего лишь
вспомогательные программы,  утилиты, которые полезны, но которые не яв-
ляются операционной системой.  Разница между  внешней  командой  ДОС  и
обычной  программой  заключается просто в Вашем отношении к ней - как к
части ДОС или как к чему-нибудь малосущественному.


                8. Инициализация DOS

     При запуске  системы (либо операцией перезагрузки системы ),  либо
при включении питания с системной дискетой в устройстве A:),  блок  на-
чальной  загрузки считывается в память и получает управление.  Он прос-
матривает  каталог,  чтобы  убедиться,  что  первые  два   файла   суть
IBMBIO.COM и IBMDOS.COM (в указанном порядке).  Если эти файлы не обна-
ружены, на экран выдается сообщение об ошибке, иначе оба файла считыва-
ются в оперативную память. (IBMBIO.COM должен быть первым файлом в кор-
невом каталоге и располагаться на последовательных секторах).
     Подпрограмма инициализации в IBMBIO.COM определяет состояние обру-
дования,  инициализирует дисковую систему  и  подключенные  устройства,
загружает драйверы устройств,  и устанавливает значения младших вектров
прерываний.  Затем она выполняет настройку адресов в IBMDOS.COM и пере-
дает управление на первый байт DOS.
     Так же как и в IBMBIO.COM,  первый байт DOS  содержит  переход  на
подпрограмму инициализации,  которая после выполнения перекрывается об-
ластью данных командного процессора. DOS инициализирует свои внутренние

                                     - 7 -
рабочие  таблицы,  инициализирует  вектора прерываний 20-27 и формирует
Префикс Программного Сегмента (См. Гл. 6) для COMMAND.COM в самом млад-
шем доступном сегменте; затем она возвращается в IBMBIO.COM.
     Последнее инициализационное действие IBMBIO.COM заключается в заг-
рузке COMMAND.COM по адресу, установленному подпрограммой инициализации
DOS. Затем IBMBIO.COM передает управление на первый байт COMMAND.
[ Назад | Оглавление | Далее ]


Сайт создан в системе uCoz
Сайт создан в системе uCoz