Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
os / OC / ЛЕКЦИИ ПО РАЗДЕЛУ «НАСТРОЙКА ОС WINDOWS NT» КУРСА «ОПЕРАЦИОННЫЕ СИСТЕМЫ».doc
Скачиваний:
44
Добавлен:
13.04.2015
Размер:
17.01 Mб
Скачать

6.3. Ограничения при работе с большими дисками

В MS-DOS и первых версиях Windows доступ к дискам, в том числе на этапе начальной загрузки операционной системы, был организован через прерывание 13 BIOS. При этом использовалась адресация секторов на диске на основе указания номеров цилиндра, головки и сектора на дорожке (C / H / S). Чтобы прочитать или записать сектор на диск, необходимо было передать три байта (24 бит), в которых записывались номер цилиндра (10 бит), номер головки (6 бит) и номер сектора (6 бит). Это ограничивало размер жесткого диска двумя гигабайтами.

Для преодоления этого ограничения стали использовать оставшиеся 2 бита. В результате возникло несколько режимов работы BIOS.

Режим Extended CHS (ECHS) или Large disk support (обычно обозначается Large) использует два незанятых бита номера головки для увеличения числа адресуемых цилиндров. Это позволило использовать геометрию диска в 1024 цилиндра, 128 считывающих головок и 64 сектора. Трансляцию Extended CHS в реальный CHS-адрес (который может иметь большее количество цилиндров) осуществляет BIOS. Это позволяет работать с дисками объемом до 102412864512=4294967296 байт или 4 Гбайт.

Разработчики жестких дисков продолжали увеличивать плотность записи на диск, число пластин и дорожек, изобретали другие способы увеличения объема дисков. В частности число секторов на дорожках стало разным (на более длинных дорожках, расположенных ближе к краю пластин, число секторов стали увеличивать). В результате три числа C / H / S уже перестали правильно отражать геометрию диска, а старые BIOS перестали обеспечивать доступ ко всему дисковому пространству.

Тогда был разработан другой прием для работы с большими дисками через прерывание 13 – линейная адресация блоков (Linear Block Addressing или LBA), в котором все секторы на диске нумеруются последовательно, начиная с первого сектора на нулевой дорожке нулевого цилиндра. Вместо CHS-адреса каждый сектор получает логический адрес – его порядковый номер в общем массиве секторов. Нумерация логических секторов начинается с нуля, причем нулевой сектор содержит главную загрузочную запись (MBR). В Setup BIOS поддержка преобразования линейного номера в CHS-адрес обозначается как поддержка LBA. Таким образом, в современных версиях BIOS обычно имеется выбор из трех вариантов: Large, LBA и Normal. Последний вариант означает, что трансляция адресов не производится.

Но и в режиме LBA обращение к физическому диску все равно осуществляется через функции прерывания 13, которые используют адресацию C / H / S. Как следствие возникает ограничение на возможный объем диска: BIOS и, следовательно, ранние версии Windows не могли адресовать диски объемом более 8 Гбайт.

Необходимо отметить, что все перечисленные ограничения существенны только на этапе загрузки операционной системы, поскольку современные версии Windows иLinuxпри работе с дисками уже не используют прерывание 13 BIOS, а применяют собственные драйверы для работы с дисками. Но, прежде чем система сможет использовать собственный драйвер, она должна, как минимум, его загрузить. Поэтому на этапе начальной загрузки любая система вынуждена пользоваться BIOS. Это и вызывает ограничение на размещение многих операционных систем за пределами 8 Гбайт: они не могут оттуда загружаться, хотя после успешной загрузки могут работать с дисками гораздо большего объема. Но некоторые операционные системы, в частностиLinux, умеют обходить это ограничение.