MS-DOS для программиста© Александр Фролов, Григорий ФроловТом 18, М.: Диалог-МИФИ, 1995, 254 стр. 1.2. Процесс загрузки операционной системыПри включении питания компьютера управление передается базовой системе ввода/вывода BIOS. Она выполняет проверку аппаратуры компьютера, формирует начальную часть таблицы векторов прерываний, инициализирует устройства и начинает процесс загрузки операционной системы. Загрузка начинается с того, что BIOS делает попытку прочитать самый первый сектор дискеты, вставленной в дисковод А: (на системной дискете этот сектор содержит загрузчик операционной системы). Если в дисковод вставлена системная дискета, с ее самого первого сектора считывается загрузчик. Затем ему передается управление. Если дискета не системная, т. е. не содержит загрузочной записи, на экран выводится сообщение с просьбой заменить дискету. Если же дискеты в дисководе А: вообще нет, то BIOS читает основную загрузочную запись (Master Boot Record), расположенную в начале диска С:. Обычно это самый первый сектор на диске. Управление передается загрузчику, который находится в этом секторе. Загрузчик анализирует содержимое таблицы разделов (она также находится в первом секторе), выбирает активный раздел и читает загрузочную запись этого раздела. Загрузочная запись активного раздела (Boot Record) аналогична загрузочной записи, расположенной в первом секторе системной дискеты. Загрузочная запись активного раздела считывает с диска файлы io.sys и msdos.sys (именно в этом порядке). Затем считываются и загружаются драйверы, встроенные в MS-DOS. Анализируется содержимое файла config.sys, загружаются перечисленные в этом файле драйверы. Сначала загружаются драйверы, описанные операторами device, затем - резидентные программы, указанные оператором install. После этого считывается командный процессор command.com и ему передается управление. Командный процессор состоит из трех частей - резидентной, инициализирующей и транзитной. Первой загружается резидентная часть. Она обрабатывает прерывания INT 22h, INT 23h, INT 24h, управляет загрузкой транзитной части. Эта часть командного процессора обрабатывает ошибки и выдает запрос пользователю о действиях при обнаружении ошибок. Инициализирующая часть используется только в процессе загрузки операционной системы. Она определяет начальный адрес, по которому будут загружаться запускаемые программы и инициализирует выполнение файла autoexec.bat. Транзитная часть командного процессора располагается в старших адресах памяти. В этой части находятся обработчики внутренних команд MS-DOS и интерпретатор пакетных файлов (с расширением имени .bat). Транзитная часть выдает системное приглашение (например, А:\>), ожидает ввода команды оператора с клавиатуры или из пакетного файла и организует их выполнение. После загрузки командного процессора и выполнения начальных процедур, перечисленных в файле autoexec.bat, подготовка системы к работе завершена. |