Особенности загрузки ОС
Рассмотрим подробнее процесс загрузки ОС как этап, предваряющий работу системы, сопряженный с взаимодействием с некоторым накопителем внешней памяти.
Процедура начальной загрузки (англ. bootstrap loader) вызывается как программное прерывание (BIOS INT 19h). Эта процедура определяет первое готовое устройство из списка разрешенных и доступных (гибкий или жесткий диск, а в современных компьютерах это могут быть еще и компакт-диск, привод ZIP-drive, сетевой адаптер или иное устройство) и пытается загрузить с него в ОП короткую главную программу загрузчик. Для накопителей на жестких магнитных дисках – это известный главный или внесистемный загрузчик (NSB) из MBR, и ему передается управление.
Главный загрузчик определяет на диске активный раздел, загружает его собственный системный загрузчик и передает управление ему. Наконец, этот загрузчик находит и загружает необходимые файлы ОС и передает ей управление. Далее ОС выполняет инициализацию подведомственных ей программных и аппаратных средств – добавляет новые сервисы, вызываемые, как правило, тоже через механизм программных прерываний, и расширяет (пли заменяет) некоторые сервисы BIOS.
Необходимо отметить, что в современных мультипрограммных ОС большинство сервисов BIOS, изначально расположенных в ПЗУ, как правило, заменяются собственными драйверами ОС, поскольку они должны работать в режиме прерываний, а не в режиме сканирования готовности.
Прежде чем форматировать диск под определенную файловую систему, он может быть поделен на разделы – непрерывные части физического диска, которую ОС представляет пользователю как логические устройства (логические диски, логические разделы)15. Логическое устройство функционирует так, как если бы это был отдельный физический диск. Именно с логическими устройствами работает пользователь, обращаясь к ним по символьным именам, используя, например, обозначения А, В, С, SYS и т.п. Операционные системы разного типа используют единое для всех них представление о разделах, но создают на его основе логические устройства, специфические для каждого типа ОС. Так же как файловая система, с которой работает одна ОС, в общем случае не может интерпретироваться ОС другого типа, логические устройства не могут быть использованы ОС разного типа. На каждом логическом устройстве может создаваться только одна файловая система.
В частном случае, когда все дисковое пространство охватывается одним разделом, логическое устройство представляет физическое устройство в целом. Если диск разбит на несколько разделов, то для каждого из этих разделов может быть создано отдельное логическое устройство. Логическое устройство может быть создано и на базе нескольких разделов, причем эти разделы не обязательно должны принадлежать одному физическому устройству. Объединение нескольких разделов в единое логическое устройство может выполняться разными способами и преследовать разные цели, основные из которых: увеличение общего объема логического раздела, повышение производительности и отказоустойчивости. Примерами организации совместной работы нескольких дисковых разделов являются так называемые RAID16-массивы.
На разных логических устройствах одного и того же физического диска могут располагаться файловые системы разного типа. На рис. 43 показан пример диска, разбитого на три раздела, в которых установлены две файловых системы NTFS (разделы С и Е) и одна файловая система FAT (раздел D).
16 RAID (англ. redundant array of independent/inexpensive disks) – дисковый массив независимых дис- ков, предназначенный для повышения надѐжности хранения данных и/или для повышения скорости чтения/записи информации.
Все разделы одного диска имеют одинаковый размер блока, определенный для данного диска в результате низкоуровневого форматирования. Однако в результате высокоуровневого форматирования в разных разделах одного и того же диска, представленных разными логическими устройствами, могут быть установлены файловые системы, в которых определены кластеры отличающихся размеров. 136
Операционная система может поддерживать разные статусы разделов, особым образом отмечая разделы, которые могут быть использованы для загрузки модулей ОС, и разделы, в которых можно устанавливать только приложения и хранить файлы данных. Один из разделов диска помечается как загружаемый (или активный). Именно из этого раздела считывается загрузчик ОС.