Поиск по сайту:


«Assembler IBM PC 2. Составные части MS-DOS и её инициализация»

Файл: 4 КБ
Поделиться:

Всю систему можно условно разделить на пять основных частей. Первая часть – это Базовая Система Ввода-Вывода (BIOS – Basic Input Output System), записанная в той части памяти компьютера, которая носит название постоянного запоминающего устройства (ПЗУ). Дополнительная часть BIOS располагается во внешней памяти и переписывается в оперативную память (ОЗУ) компьютера в процессе загрузки. Функция BIOS ПЗУ заключается в обслуживании основных и наиболее фундаментальных операций компьютера. Поскольку система BIOS ПЗУ для IBM PC является "встроенной" в компьютер, она является не только составной частью DOS, но и составной частью любой операционной системы IBM PС. BIOS ПЗУ содержит программы, выполняющие следующие функции:

·     тест самопроверки (программа POST – Power On Self Test – самопроверка при включении питания);

·     начальный загрузчик;

·     комплекс программ управления аппаратурой компьютера на самом низком (физическом) уровне, путём обращения к портам и аппаратным буферам.

Второй и третьей частью DOS являются дисковые файлы Io.sys и Msdos.sys. Оба файла считываются с диска в ОЗУ начальным загрузчиком. Io.sys осуществляет дополнение BIOS в зависимости от потребностей данной версии операционной системы. В ходе инициализации Io.sys формирует список резидентных драйверов устройств в соответствии со списком оборудования, полученным при работе POST, и изменяет некоторые векторы прерываний BIOS (т.е. Io.sys перехватывает обработку этих векторов у BIOS ПЗУ). Программа Msdos.sys (ядро DOS) устанавливает векторы прерываний DOS и выполняет инициализацию резидентных драйверов периферийных устройств (драйвером называется резидентная программа, постоянно находящаяся в памяти и обеспечивающая взаимодействие некоторых внешних устройств с операционной системой). Помимо этого, эта программа загружает командный процессор Сommand.com, – четвёртую часть операционной системы DOS. Command.com обслуживает работу системы с пользователем и состоит из трех частей:

·     резидентной части, содержащей обработчики прерываний 22h (завершение процесса), 23h (реакция на Сtrl-C и Ctrl-Break), 24h (критическая ошибка);

·     части инициализации, располагающейся в памяти вслед за резидентной частью Command.com. Она обеспечивает выполнение файла Autoexec.bat и уничтожается (освобождает память) после выполнения своих функций;

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

Для распознавания внутренних команд (таких как DEL, DIR, CD, COPYMD, TYPE, REM и прочие) командный процессор содержит таблицу имён команд. Если при просмотре данной таблицы заданная команда не обнаружена, значит, она относится к категории внешней. Внешние команды (пятая часть DOS) не являются резидентными в памяти IBM PC и хранятся в программных файлах на диске. Как и все программные файлы, внешние команды имеют расширение имени файла .COM или .EXE. Примерами внешних команд могут служить Diskcopy.com, Doskey.com, Format.com, Mem.exe и т. п.

Инициализацию операционной системы условно разделим на 2 этапа. На первом производится самотестирование программой POST BIOS, на втором выполняется загрузка операционной системы.

При включении питания процессор начинает работу с передачи управления по адресу FFFF:0000. Этот адрес принадлежит ПЗУ BIOS и содержит команду перехода на начало программы POST в ПЗУ. Программа POST выполняет тест ОЗУ (как правило, прохождение этого теста трассируется на экране терминала) и прочего оборудования ПЭВМ и инициализирует таблицу векторов прерываний в части прерываний, обслуживаемых BIOS. Затем BIOS начинает процедуру начальной загрузки. Начальный загрузчик опрашивает первое устройство гибких дисков, проверяя на нем наличие диска для начальной загрузки. Если диска там нет, программа обращается к жёсткому диску, читает с него главную загрузочную запись (Master Boot Record – MBR) и помещает её в память. MBR (512 байт), размещаемая в секторе 1, стороне 0, дорожке 0 первой доступной дискеты (или жесткого диска), обычно считывается в память по адресу 07C0h : 0000h и содержит небольшую программу и таблицу разделов диска, из которой данная программа получает информацию об активном (системном) диске. Выявив системный диск, программа из MBR читает первый 512-байтный сектор (0-ой по номеру) из системного диска, который и содержит загрузчик операционной системы.

Загрузка операционной системы (второй этап) определяется видом операционной системы и подробно рассматривается в специальных руководствах. Здесь кратко остановимся лишь на особенностях загрузки "близкой нам" MS-DOS (не будем забывать также о возможности конфигурации двойной загрузки, например, DOS и Windows 2000 – Windows при установке "видит" другую систему и по умолчанию её сохраняет).

Загрузчик, прежде всего, считывает файлы Io.sys и Msdos.sys. Затем выполняется обработка конфигурационных файлов Config.sys и Autoexec.bat, настраивающих среду функционирования компьютера. Сначала обрабатывается файл Config.sys, который в основном распределяет память и загружает драйверы устройств, после этого с помощью файла Autoexec.bat запускаются команды, которые можно было бы, в принципе, набрать пользователю в командной строке DOS и отправить на выполнение. Autoexec.bat также определяет каталоги (список каталогов указывается в строке, начинающейся оператором PATH), в которых должны будут искаться исполняемые программы. Последнее инициализационное действие DOS заключается в загрузке файла Command.com с последующей передачей ему управления.