Модуль расширения базовой системы ввода-вывода (IO.SYS)

Базовая система ввода/вывода, находящаяся в постоянном запоминающем устройстве (BIOS), является инвариантной по отношению к операционной системе, устанавливаемой на данной машине. В этом смысл BIOS является общей и неизменяемой частью всех возможных операционных систем для данной модели ПЭВМ. Изменение BIOS - нетривиальная задача, поскольку она очень тесно связана с особенностями аппаратуры конкретной модели ПЭВМ.

Расширение BIOS с помощью дополнительного модуля DOS IO.SYS придает гибкость операционной системе, позволяя управлять с ее помощью таким набором аппаратных средств ПЭВМ, который наиболее точно соответствовал бы замыслу разработчиков операционной системы. Этот модуль относительно легко может модифицироваться разработчиками с учетом нужд конкретной версии DOS.

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

О необходимости подключения новых драйверов внешних устройств, а также об изменении других параметров DOS уведомляется через файл конфигурации CONFIG.SYS. Этот текстовый файл обрабатывается модулем расширения IO.SYS, который осуществляет необходимую подстройку прерываний и других параметров DOS в соответствии с заданными в CONFIG.SYS командами конфигурирования. Команды конфигурирования могут указывать:

1. Дополнительные драйверы, которые необходимо подключить к ДОС. Простой пример:

DEVICE=MOUSE.SYS.

Команд такого типа в CONFIG.SYS может быть несколько.

2. Режим, при котором пользователь будет иметь возможность прервать любую работающую программу, дав команду BREAK (нажав на клавиатуре комбинацию клавиш CtrH- Break). В файле CONFIG.SYS установка указанного режима отображается выражением:

BREAK=ON.

3. Количество файлов, которые могут быть открыты одновременно. Пример команды конфигурирования, устанавливающей число одновременно открытых файлов:

FILES=20.

4. Количество буферов для обмена информацией с дисковыми накопителями. Пример соответствующей команды:

BUFFERS=8.

5. Имя файла, который будет играть роль нестандартного командного процессора (вместо стандартного файла COMMAND.COM). Пример команды, задающей новый командный процессор с именем START. СОМ:

SHELL=START.COM.

Таким образом, с помощью команд конфигурирования, заданных в файле CONFIG.SYS, пользователь может задать собственные, нестандартные возможности, которые вводятся в DOS на время текущего сеанса (до очередного перезапуска машины).

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