Модули ДОС

Скачать реферат: Модули ДОС

Содержание реферата

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

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

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

4. IBMBIO.COM

5. IBMDOS.COM

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

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

8. Инициализация 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. Система 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 байт, что недостаточно для сложной программы. Для упрощения работы этой программы, оба файла, 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 и, возможно, в другие системные программы ДОС. Хотя это не слишком сложно для таких фирм как "ИБМ" или "Майкрософт", такая задача может оказаться непосильной для пользователя, которому требуется включить дополнительное оборудование в свою систему.

Поскольку возможность добавления новых устройств к компьютеру составляет немаловажное условие его успеха на рынке, процедура включения обслуживающих программ в ДОС была упрощена, начиная с ДОС версии 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 и внутренние команды

Следующая составная часть ДОС, файл 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".

- Часть инициализации располагается в памяти вслед за резидентом и получает управление при запуске системы. Эта часть включает обработку файла AUTOEXEC.BAT. Она также определяет адрес, начиная с которого мо гут загружаться программы. Эта часть перекрывается первой же программой, загружаемой COMMAND, так как не используется после выполнения инициализации.

- Нерезидентые части загружаются в конец (старшие адреса) ОЗУ. Их две: собственно командный процессор (часть 3), выполняющий обработку диалогj ds[ команд и из командных файлов, и (часть 4) загрузчик, загружающий и выполняющий нерезидентные команды (т.е. файлы с расширениями .COM или .EXE). Загрузчик располагается в самом конце ОЗУ и вызывается операцией вызова и загрузки прогамм (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 инициализирует свои внутренние рабочие таблицы, инициализирует вектора прерываний 20-27 и формирует Префикс Программного Сегмента (См. Гл. 6) для COMMAND.COM в самом младшем доступном сегменте; затем она возвращается в IBMBIO.COM.

Последнее инициализационное действие IBMBIO.COM заключается в загрузке COMMAND.COM по адресу, установленному подпрограммой инициализации DOS. Затем IBMBIO.COM передает управление на первый байт COMMAND.

Литература:

1. Джордан Справочник программиста персональных компьютеров

2. Нортон Архитектура персональных компьютеров фирмы IBM

3. Бэк Введение в системное программирование