ОПЕРАЦИОННАЯ СИСТЕМА ДОС ОСНОВЫ ОРГАНИЗАЦИИ ДОС В этой главе будет кратко рассмотрена система ДОС, основная операционная система IBM/PC. Мы не будем слишком подробно рассматривать ее, частично потому что ДОС может составить достаточный предмет для нескольких книг сама по себе, а частично потому, что эта книга в основном посвящена внутренней организации IBM/PC, а не организации ДОС. Здесь тесно соприкасаются все три упоминавшиеся выше области интересов. Практически все, о чем пойдет речь в данной главе, относится к IBM/PC, совместимым с ней компьютерам, а также к компьютерам, работающим под управлением MS-DOS. Но все же, поскольку ДОС очень широко используется на IBM/PC, необходимо иметь определенные представления об ее организации. Так как основное внимание в этой книге уделяется наиболее сложным возможностям IBM/PC, мы покажем как осуществляется доступ к этим возможностям с помощью средств операционной системы ДОС. ДЛЯ ЧЕГО НУЖНЫ ОПЕРАЦИОННЫЕ СИСТЕМЫ НАЗНАЧЕНИЕ ОПЕРАЦИОННЫХ СИСТЕМ Чтобы полностью овладеть всеми возможностями своего компьютера, необходимо понимать его операционную систему. Предлагаемый в этой главе краткий обзор позволит Вам понять, что собой представляет ДОС. Слишком подробных знаний Вы не приобретете, но ознакомление с этой главой позволит Вам начать с ней работать. Назначение операционной системы заключается в обеспечении удобства управления компьютером. Операционная система, в полном смысле этого термина, является первой и наиболее важной программой любого компьютера. Как правило, она является и наиболее сложной. Поразительно, что наиболее совершенные программы используются только для управления самим компьютером. Ирония здесь заключается в том, что компьютеры и программы для них разрабатывались для выполнения полезной работы, а не как самоцель. Но с другой стороны, наиболее мощный инструмент, созданный человеком, компьютер, имеет достаточно возможностей, чтобы работать сам по себе и человек не смог бы управлять им, если бы не операционная система. ОСНОВНЫЕ ДЕЙСТВИЯ, ВЫПОЛНЯЕМЫЕ ДОС Рассмотрим лишь некоторые действия, которые должна выполнить операционная система: -Проверить, имеется ли на исходной дискете файл с указанным именем. -Проверить, достаточно ли места на целевой дискете для размещения файла (учитывая все свободное место на дискете, а, если копия файла уже есть на дискете, то еще и место, которое она занимает). -Если на целевой дискете должен создаваться новый файл, то необходимо проверить, имеется ли свободное место в справочнике или он уже заполнен. -Установить формат исходной дискеты: односторонний или двухсторонний? -Проверить, не копируется ли файл сам в себя (что запрещено). -Проверить наличие в системе двух дисководов, поскольку для систем с одним дисководом необходимо имитировать диск В. -Установить формат целевой дискеты: односторонний или двухсторонний? -Проверить, больше или меньше 64К размер буфера. -Проверить, необходимо ли вычислять размер исходного файла по его размеру, указанному в справочнике, или он будет определяться маркером конца файла (как для текстовых файлов в коде ASCII). -Проверить, совпадает ли размер файла, указанный в справочнике, с действительным размером. -Установить, какой объем памяти можно использовать в качестве буфера при перезаписи файла. ОСНОВНЫЕ ФУНКЦИИ ДОС Основная забота операционной системы, такой как ДОС, заключается в том , чтобы скрыть от пользователя эти ненужные ему подробности. Значительная часть функций операционной системы заключается в обслуживании устройств ввода/вывода. Помимо физического уровня обслуживания ДОС обеспечивает и услуги более высокого уровня, такие как поиск в справочниках, копирование файлов и загрузку программ. Один из путей достижения эффективности операционных систем - это модульность их разработки. Операционная система упрощается и становится более эффективной, если ее разработчики разделят все ее функции на отдельные части. Затем эти части должны быть организованы в тщательно спланированную иерархическую систему, в которой каждый уровень иерархии выполняет присущие ему функции, освобождая уровни, находящиеся выше по иерархии, от их выполнения (и, в свою очередь, не занимаясь деталями функций, присущих нижним уровням). Теперь мы перейдем к рассмотрению отдельных частей ДОС. СОСТАВ ДОС. ШЕСТЬ ОСНОВНЫХ МОДУЛЕЙ ДОС Всю систему можно разделить на шесть основных частей, функции каждой из которых мы кратко рассмотрим в этом разделе. Первая часть - это система BIOS в ПЗУ. Это система поставляется вместе с IBM/PC и может использоваться любой операционной системой. Функция BIOS в ПЗУ заключается в обслуживании основных и наиболее фундаментальных операций компьютера. Поскольку система BIOS в ПЗУ для IBM/PC является "встроенной" в компьютер, она является не только составной частью ДОС, но и составной частью любой операционной системы IBM/PC. Еще одна часть - "загрузочная запись" дискеты. Загрузочная запись - это очень короткая и простая программа, находящаяся в первом секторе каждой дискеты. Функция этой программы заключается в запуске процесса загрузки операционной системы после включения компьютера или перезапуска (нажатия клавиш CTRL-Alt-Del). Загрузочная запись считывает еще два модуля операционной системы в память и они завершают процесс загрузки ДОС. Следующие две части ДОС представляют собой дисковые файлы IBMBIO.COM и IBMDOS.COM. Обе эти части загружаются в память загрузочной записью и остаются в памяти во время работы ДОС, так что провести между ними различие довольно трудно. Файл IBMBIO.COM представляет собой изменяемое дополнение к системе BIOS в ПЗУ. Файл IBMDOS.COM реализует основные услуги ДОС. Это "логический" уровень ввода/вывода операционной системы. Пятая часть - это дисковый файл COMMAND.COM. Главная функция COMMAND.COM заключается в обработке команд, вводимых пользователем. Шестая и последняя часть ДОС состоит из всех внешних команд, таких как FORMAT и DISKCOPY. Функции этих команд различны и реализующие их программы загружаются в память только в случае необходимости. Внешние команды являются нерезидентными частями ДОС, поскольку они не находятся в памяти постоянно. Файлы IBMBIO.COM, IBMDOS.COM и драйверы устройств находятся в памяти постоянно и образуют резидентную часть ДОС. Файл COMMAND.COM можно выделить в отдельную категорию как полурезидентную составляющую ДОС. СИСТЕМА BIOS Первая часть в ДОС - это BIOS в ПЗУ или базовая система ввода/вывода, размещающаяся в постоянной памяти. Эта система обеспечивает наиболее простые и универсальные услуги операционной системы, связанные с осуществлением ввода/вывода. Поскольку BIOS в ПЗУ является частью IBM/PC, она может изменяться только в том случае, когда изменениям подвергается аппаратная реализация системы. В качестве составной части IBM/PC, система BIOS в ПЗУ является не просто одной из частей ДОС, но частью любой операционной системы IBM/PC. Система BIOS в ПЗУ состоит из нескольких частей, большинство из которых представляет собой программы (остальные - это важные таблицы данных, которые мы рассмотрим в последующих главах). Программа системы BIOS, которая выполняется первой, представляет собой тест функционирования. Следующая часть BIOS, которая должна выполняться как программа запуска операционной системы, - это программа вызова загрузчика операционной системы. Эта программа проверяет, подключен ли дисковод с гибкими дисками и считывает с дискеты "загрузочную запись". После считывания загрузочной записи программа запуска передает ей управление, чтобы она считала оставшиеся части операционной системы. Помимо двух уже описанных частей - автономного теста функционирования и программы запуска, система BIOS в ПЗУ содержит множество других программ и они-то представляют для нас наибольший интерес. Сюда входят программы обслуживания всего стандартного периферийного оборудования IBM/PC. Эти программы выполняют основные функции управления клавиатурой, дисплеем, дискетами, асинхронным адаптером связи, устройством печати и кассетным интерфейсом. ЗАГРУЗОЧНАЯ ЗАПИСЬ Загрузочная запись необходима для запуска ДОС. Принцип использования загрузочной записи реализован практически на всех компьютерах. Загрузочная запись содержит минимум необходимых команд для считывания и запуска основных частей операционной системы. Основное назначение загрузочной записи для ДОС заключается просто в загрузке файлов IBMBIO.COM и IBMDOS.COM. Этим, кстати, "системная" дискета отличается от обычной - на ней, в определенных местах, находятся два системных файла IBMDOS.COM и IBMBIO.COM. Поэтому нельзя просто преобразовать обычную дискету в системную - места, зарезервированные для системных файлов, могут быть заняты другими файлами. СИСТЕМНЫЕ ФАЙЛЫ IBMDOS.COM и IBMBIO.COM НАЗНАЧЕНИЕ IBMDOS.COM Первый из двух системных файлов, IBMBIO.COM, предназначен для дополнения функций системы BIOS в ПЗУ. Как BIOS в ПЗУ, так и IBMBIO.COM занимаются обслуживанием операций ввода/вывода или обслуживанием устройств, что то же самое. Программы IBMBIO.COM отличаются тем, что их легко можно изменить, чего нельзя сказать о программах BIOS в ПЗУ. Файл IBMBIO.COM предназначен для решения трех задач, которые невозможно решить с помощью системы BIOS в ПЗУ. Первая задача заключается в настройке на нужды конкретной операционной системы, ДОС. Вторая задача IBMBIO.COM заключается в исправлении любых ошибок в BIOS в ПЗУ, если в этом возникнет необходимость. Программы, подобные системе BIOS, проверяются очень тщательно, ведь их размещение в ПЗУ не допускает исправлений. Если ошибки все же будут позднее обнаружены в BIOS, их можно будет исправить путем внесения соответствующих изменений в IBMBIO.COM. Третья задача, которую не позволяет решить BIOS, и, которую за нее решает IBMBIO.COM, заключается в обслуживании новых периферийных устройств, таких как жесткие диски большой емкости, или восьмидюймовые (203мм) дискеты, или плоттеры, или любые из сотен устройств, которые могут быть подключены к IBM/PC. Когда новое устройство ввода/вывода подключается к IBM/PC, обслуживающая его программа должна включаться в файл IBMBIO.COM или его расширения, без необходимости замены микросхем ПЗУ, в которых размещается система BIOS. Как правило, любая программа, работающая на IBM/PC, будет использовать обычную версию BIOS для ДОС. Однако, в некоторых случаях программе необходимо бывает особое обслуживание операций ввода/вывода. Поскольку IBMBIO.COM представляет собой дисковый файл, который можно изменить, имеет смысл разработать версию IBMBIO.COM, настроенную на Ваши конкретные нужды. Пример такой настройки Вы можете найти в диагностических программах. ОСНОВА ДОС: IBMDOS.COM Разделение операционной системы на два модуля, IBMBIO.COM и IBMDOS.COM позволяет разделить те части, которые специфичны для конкретного компьютера и те, которые являются общими для всех компьютеров, работающих под управлением ДОС. Вызовы функций ДОС обеспечивают, в основном, промежуточный уровень обслуживания операций ввода/вывода. Большая часть этих служебных процедур ДОС интенсивно используется программами более высокого уровня ДОС. Например, процедура поиска в справочнике используется командами DIR и COPY. Кроме того, она используется интерпретатором команд для поиска программных файлов. Далее будет рассмотрен полный список служебных процедур ДОС. ФАЙЛ COMMAND.COM И ВНУТРЕННИЕ КОМАНДЫ Следующая составная часть ДОС, файл COMMAND.COM, одна из наиболее интересных частей, как с точки зрения тех услуг, которые она предоставляет пользователю, так и с точки зрения принципов ее функционирования. COMMAND.COM имеет несколько функций. Прежде всего, это "процессор команд", что означает возложенные на него функции ввода команды, набираемой на клавиатуре, и определения дальнейших действий. Чтобы распознавать внутренние команды, COMMAND.COM содержит таблицу имен команд. Если просмотреть файл COMMAND.COM, то можно увидеть эти имена команд. Для просмотра файла COMMAND.COM можно воспользоваться программой DEBUG или DiskLook. Там же Вы увидите сообщение, которое ДОС выдает в начале работы. При желании эти сообщения можно изменить с помощью команды DEBUG или SecMod, так чтобы ДОС начинала работу выдачей Вашей фамилии или названия компании. Можно также изменить и имена внутренних команд, причем сделать это просто, если не изменяется длина имени. ВНЕШНИЕ КОМАНДЫ Последнюю часть операционной системы ДОС составляют внешние команды. Они называются внешними, поскольку они не включены в состав ДОС, и не являются резидентными в памяти IBM/PC. Вместо этого, внешние команды хранятся в программных файлах на дискетах. Внешние команды не отличаются от других программных файлов, которые Вы сами разрабатываете или покупаете. С одной точки зрения внешние команды действительно являются частью операционной системы, особенно те, без которых операционной системой нельзя воспользоваться, такие как FORMAT. Однако, с другой точки зрения, внешние команды- это всего лишь вспомогательные программы, утилиты, которые полезны, но которые не являются операционной системой. Разница между внешней командой ДОС и обычной программой заключается просто в Вашем отношении к ней - как к части ДОС или как к чему-нибудь малосущественному.