MS DOS 5.0 совместима с MS DOS 3.3.
MS DOS 6.0 совместима с MS DOS 5.0, 3.3.
MS DOS 6.2 совместима с MS DOS 6.0, 5.0, 3.3.
Структура MS DOS
Важнейшей особенностью MS DOS является ее модульность. Это свойство позволяет изолировать друг от друга отдельные части сложной системы, облегчая ее разработку и эксплуатацию.
В состав MS DOS входят следующие основные модули:
– базовая система ввода-вывода (BIOS);
– блок начальной загрузки (Boot Record);
– модуль расширения базовой системы ввода-вывода (файл IBMBIO.COM или IO.SYS для версии 5.0 и выше);
– модуль обработки прерываний (файл IBMDOS.COM или MSDOS.SYS для версии 5.0 и выше);
– командный процессор (файл COMMAND.COM);
– файлы конфигурации системы – CONFIG.SYS и AUTOEXEC.BAT.
Файлы IO.SYS и MSDOS.SYS должны находиться в корневом каталоге диска, с которого загружается MS DOS.
Для расширения возможностей операционной системы используются различные утилиты, драйверы устройств и программы.
Например,
– ANSI.SYS – расширенный драйвер консоли (экрана и клавиатуры);
– HIMEM.SYS – драйвер дополнительной (Extended Memory) памяти;
– KEYB.COM – драйвер переключения языковых раскладок клавиатуры;
– KEYBOARD.SYS – файл с описаниями языковых раскладок клавиатуры, оформленный как драйвер;
– COUNTRY.SYS – файл с таблицами локализации, алфавитами сортировки;
– DISPLAY.SYS – драйвер дисплея; в частности, загружает локализованные шрифты;
– MODE.COM – программа настройки ряда параметров экрана и портов ввода-вывода системы.
Базовая система ввода-вывода (BIOS)
Базовая система ввода-вывода (BIOS), находится в постоянном запоминающем устройстве (ПЗУ) компьютера и занимает 8 Кбайт, начиная с сегментного адреса FE0016. BIOS формально не является частью MS DOS, однако тесно с ней связана.
BIOS реализует следующие основные функции:
– автоматическую проверку аппаратных компонентов при включении компьютера;
– вызов блока начальной загрузки операционной системы (загрузка в памяти программ ОС происходит в два этапа: сначала – блока начальной загрузки с передачей на него управления; затем с его помощью – остальных модулей ОС);
– выполнения базовых операций ввода-вывода с монитором, клавиатурой, дисками и принтером;
– обслуживание системных вызовов или прерываний нижнего уровня (векторы от 0 до 1F16).
Блок начальной загрузки
Блок начальной загрузки – это небольшая программа (объемом 512 байт), расположенная в 1-м секторе 0-дорожки 0-стороны системной дискеты и в 1-м секторе HDD-диска, в разделе, отведенном под DOS.
Назначение этой программы – загрузка в память системного файла IO.SYS при начальной загрузке компьютера. Блок начальной загрузки просматривает корневой каталог системного диска и осуществляет поиск файлов IO.SYS и MSDOS.SYS. Если он их находит, то происходит их загрузка в оперативную память и передача управления MS DOS. Если файлы отсутствуют в корневом каталоге – появляется соответствующее сообщение.
При запуске ПЭВМ либо после включения напряжения питания, либо путем нажатия клавиш CTRL+ALT+DEL осуществляется считывание первого сектора с дискеты, установленной в дисковод А, и размещение его в оперативной памяти по адресу 31744 (7С0016). Затем BIOS передает управление по этому адресу, и последующие действия выполняет программа-загрузчик. Если дискета не установлена в дисковод А, соответствующее считывание выполняется с жесткого диска.
В начале «загрузчика» находятся служебная информация и блок параметров (BIOS Parameter Block – BPB). Здесь содержатся такие данные (в скобках указан размер соответствующего поля):
1. переход типа near на программу загрузки – jmp адрес (3 байта);
2. имя фирмы-производителя и версия системы (8 байт);
3. число байтов на сектор (2 байта). Здесь начинается блок параметров BIOS;
4. число секторов в кластере (1 байт);
5. число резервных секторов перед первой таблицей размещения файлов (FAT) – File Allocation Table (2 байта);
6. число таблиц размещения файлов (1 байт);
7. максимально возможное число 32-байтных элементов корневого директория (2 байта);
8. общее число секторов на диске (2 байта);
9. формат диска (1 байт);
10. число секторов в одной таблице размещения файлов (2 байта);
11. число секторов на дорожек или цилиндре (2 байт);
12. число головок записи/чтения (2 байта);
13. число скрытых секторов (2 байта).
Далее идет собственно программа-загрузчик.
Модуль взаимодействия с BIOS (IO.SYS, IBMBIO.COM)
IO.SYS представляет собой дополнение к базовой системе ввода-вывода. Он расширяет возможности BIOS или изменяет ее свойства с помощью дополнительных драйверов. В целом модуль производит настройку на нужды конкретной системы; исправление ошибок BIOS в ПЗУ; обслуживание новых периферийных устройств, таких, как жесткие диски большой емкости, графопостроители и т. п. Также после запуска операционной системы IO.SYS проверяет, нет ли на системном диске файла конфигурации CONFIG.SYS. Если этот файл найден, то считываются его команды, которые указывают, какие дополнительные драйверы необходимо загрузить.