Что у диска внутри

Жесткий диск, как и всякое другое блочное устройство, хранит информацию фиксированными порциями, которые называются блоками.

Блок является наименьшей порцией данных, имеющей уникальный адрес на жестком диске. Обмен информацией с жестким диском предполагает указание этого адреса в качестве параметра команды, выдаваемой контроллеру. Размер блока со временем стал стандартным для всех жестких дисков — 512 байт.

Исторически сложилось так, что информация на диске хранилась в секторах. Сектора располагались на дорожках (цилиндрах), дорожки в свою очередь на сторонах диска, так что адрес блока на диске составлялся из трех чисел. Такой способ адресации диска был широко распространен и получил впоследствии обозначение аббревиатурой CHS (cylinder, head, sector). Именно этот способ был первоначально реализован в BIOS, поэтому впоследствии возникли ограничения, связанные с ним. Дело в том, что BIOS определил разрядную сетку адресов на 63 сектора, 1024 цилиндра и 255 головок. Однако развитие жестких дисков ограничилось использованием лишь 16 головок. Отсюда появилось первое ограничение на максимально допустимую для адресации емкость жесткого диска:

1024*16*63*512 = 504 Mb.

Разумеется, настали времена, когда такой емкости диска стало не хватать. Диски стали становится больше, число цилиндров на них превысило 1024, максимально допустимое число цилиндров. Однако, адресуемая часть диска продолжала равняться 504 Мбайтам, при условии, что обращение к диску велось средствами BIOS. Это ограничение со временем было снято введением так называемого механизма трансляции адресов, о котором чуть ниже.

Проблемы, возникшие с ограниченностью BIOS по части физической геометрии дисков, привели в конце концов к появлению нового способа адресации блоков на диске. Этот способ довольно прост. Блоки на диске описываются одним параметром — линейным адресом блока. Адресация диска линейно получила аббревиатуру LBA (logical block addressing). Линейный адрес блока однозначно связан с его CHS адресом:

lba = (cyl*HEADS + head)*SECTORS + (sector-1).

Введение поддержки линейной адресации в контроллеры жестких дисков дало возможность BIOS’aм заняться трансляцией адресов. Суть этого метода состоит в том, что если в приведенной выше формуле увеличить параметр HEADS, то потребуется меньше цилиндров, чтобы адресовать то же самое количество блоков диска. Но зато потребуется больше головок. Однако головок-то как раз использовалось всего 16 из 255. Поэтому BIOS’ы стали переводить избыточные цилиндры в головки, уменьшая число одних и увеличивая число других. Это позволило им использовать разрядную сетку головок целиком. Это отодвинуло границу адресуемого BIOS’ом дискового пространства до 8 Gb.

Дальнейшее увеличение адресуемых объемов диска с использованием прежних сервисов BIOS стало принципиально невозможным. Тогда был разработан новый расширенный интерфейс BIOS, учитывающий возможность очень больших адресов блоков. Однако этот интерфейс уже не совместим с прежним, вследствие чего старые операционные системы, такие как DOS, которые пользуются старыми интерфейсами BIOS, не смогли и не смогут переступить границы в 8 Gb. Современные системы уже не пользуются BIOS’ом, а используют собственные драйвера для работы с дисками. Поэтому данное ограничение на них не распространяется. Но следует понимать, что прежде чем система сможет использовать собственный драйвер, она должна как минимум его загрузить. Поэтому на этапе начальной загрузки любая система вынуждена пользоваться BIOS’ом. Это и вызывает ограничения на размещение многих систем за пределами 8 Gb, они не могут оттуда загружаться, но могут читать и писать информацию.

Обратимся теперь к размещению операционных систем на жестких дисках. Для организации систем дисковое адресное пространство блоков разделяется на части, называемые разделами (partitions). Разделы полностью подобны целому диску в том, что они состоят из смежных блоков. Благодаря такой организации для описания раздела достаточно указания начала раздела и его длины в блоках.

Разделы являются контейнерами всего своего содержимого. Этим содержимым является, как правило, файловая система. Под файловой системой с точки зрения диска понимается система разметки блоков для хранения файлов. После того, как на разделе создана файловая система и в ней размещены файлы операционной системы, раздел может стать загружаемым. Загружаемый раздел имеет в своем первом блоке небольшую программу, которая производит загрузку операционной системы. Однако для загрузки определенной системы нужно явно запустить ее загрузочную программу из первого блока. О том, как это происходит, будет рассказано чуть ниже.

Разделы с файловыми системами не должны пересекаться. Это связано с тем, что две разные файловые системы имеют каждая свое представление о размещении файлов, но когда это размещение приходится на одно и то же физическое место на диске, между файловыми системами возникает конфликт. Этот конфликт возникает не сразу, а лишь по мере того, как файлы начинают размещаться в том месте диска, где разделы пересекаются. Поэтому следует внимательно относиться к разделению диска на разделы.

Само по себе пересечение разделов не опасно. Опасно именно размещение нескольких файловых систем на пересекающихся разделах. Разметка диска на разделы еще не означает создания файловых систем. Однако, уже сама попытка создания пустой файловой системы (то есть форматирование), на одном из пересекающихся разделов может привести к возникновению ошибок в файловой системе другого раздела. Все сказанное относится в одинаковой степени ко всем операционным системам, а не только самым популярным
www.derstein.ru

Август 9, 2007 — Рубрика: Файлы
Метки: , ,
Реклама: полиэтиленовые пакеты где печатают

Реклама: Для вас. Оао евроцемент групп цены. Необходимо