Nodevice.su
[AD970x90]
Поиск по сайту:
пример: "ASUS dvd"









Фильтр файлов
Производитель:
Устройство:
Архив новостей:
« 11.2022
Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

Последние новости

Наша кнопка


Размести на своем сайте HTML код с нашей кнопкой.

Статья "Что у диска внутри"

[AD1]

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

 

Жесткий диск, как и всякое другое блочное устройство, хранит информацию фиксированными порциями, которые называются блоками. Блок является наименьшей порцией данных, имеющей уникальный адрес на жестком диске. Обмен информацией с жестким диском предполагает указание этого адреса в качестве параметра команды, выдаваемой контроллеру. Размер блока со временем стал стандартным для всех жестких дисков - 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). Разделы полностью подобны целому диску в том, что они состоят из смежных блоков. Благодаря такой организации для описания раздела достаточно указания начала раздела и его длины в блоках.

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

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

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

Диск разбивается на разделы программным путем. То есть вы можете создать произвольную конфигурацию разделов. Информация о разбиении диска хранится в самом первом блоке жесткого диска, называемым главной загрузочной записью (Master Boot Record (MBR)).

MBR является основным средством загрузки с жесткого диска, поддерживаемым BIOS. В MBR находятся три важных элемента:

  • Программа начальной загрузки. Именно она запускается BIOS\'ом после успешной загрузки в память первого блока (MBR). Она, очевидно, не превышает 512 байт и ее хватает только на то, чтобы загрузить стартовый сектор операционной системы и передать туда управление;
  • Таблица описания разделов диска. Располагается по смещению 0x1BE в MBR. Таблица описывает четыре раздела. Только один из четырех разделов имеет право быть помеченным как активный, что будет означать, что программа загрузки должна загрузить в память первый сектор именно этого раздела и передать туда управление;
  • Сигнатура MBR. Последние два байта MBR должны содержать число 0xAA55. По наличию этой сигнатуры биос проверяет, что первый блок был загружен успешно. Сигнатура эта выбрана не случайно. Ее успешная проверка позволяет установить, что все линии данных могут передавать и нули, и единицы.

Программа загрузки просматривает таблицу разделов, выбирает из них активный, загружает первый блок этого раздела и передает туда управление.

С точки зрения разделов диска наиболее популярной до недавнего времени была и остается MS-DOS. Она забирает в свое пользование два из четырех разделов: Primary DOS partition, Extended DOS partition. Первый из них, (primary) это обычный досовый диск C:. Второй - это контейнер логических дисков. Они все болтаются там в виде цепочки подразделов, которые так и именуются: D:, E:, ... Логические диски могут иметь и инородные файловые системы, отличные от файловой системы DOS. Однако, как правило, инородность файловой системы связана присутствием еще одной операционной системы, которую, вообще говоря, следовало бы поместить в свой собственный раздел (не extended DOS), но для таких выходок часто оказывается слишком маленькой таблица разделов.

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

В случае OS/2 предлагается ставить Boot Manager, который умеет выбирать системы, но он занимает один цилиндр диска и один раздел в таблице разделов. В более общем случае можно поставить System Commander, но эта программа тоже довольно громоздка и, что более критично, она располагается в разделе DOS, что может привести к печальным последствиям в случае вирусов или просто сбоев в файловой системе DOS.

Довольно много программ работает напрямую с таблицей разделов диска. Это делает каждая операционная система при старте, программы типа Norton disk doctor, fdisk и др. Поэтому проблема совместимости заставляет использовать только четыре раздела после загрузки операционной системы. У систем со сродственными файловыми системами (таких как DOS и Windows) может возникнуть проблема перемены местами дисковых разделов. Такое возможно в случае, когда DOS есть отдельно от Windows. Появляется проблема перестановки разделов, чтобы обеспечить различные диски С: при загрузке.

Вот основные проблемы, встающие перед пользователем при желании завести несколько операционных систем.



Автор статьи:
Обсудить статью на форуме Версия для печати

Комментарии к статье:

К данной статье комментарии пока что отсутствуют.
Добавить комментарий
Ваше имя:
Ваш e-mail:
Введите код:
Ваше сообщение:
После модерации Ваш комментарий в течение двух дней будет добавлен на сайт

Статьи категории Устройства хранения информации

Cтраницы: Следущая 1 2 3 4 5 6 7 8 9 10 Следущая Последняя
Новые драйвера Топ DLL-файлов Топ мануалов Популярные запросы
Драйвер Intex IT-305WC Windows XP, 2000, 98, ME DLL-файл binkw32.dll Panasonic KX-TC 1481, 1484, 1486 asus c682mfi
Драйвер Lapara LA-1300k-x5 Windows 7 DLL-файл xinput1_3.dll Pioneer DEH-P3600MP asus c682mfi rev. 1.00
Драйвер Lexmark X1290 Windows XP, 2000, 2003 DLL-файл Mss32.dll Becker AUDIO 10 ECE TYP 6021 ИБП Mustek powermust 650
Драйвер HP ENVY m4 series Intel Management Engine Interface (MEI) Windows 8 64-bit DLL-файл OpenAL32.dll SONY XR-3750 Mustek powermust office 650
Драйвер HP ENVY m4 series IDT High-Definition (HD) Audio Driver Windows 8 64-bit DLL-файл MSCOMCTL.OCX Panasonic KX-TC 1401, 1405 aoc 24e1q
Драйвер HP ENVY m4 series IDT High-Definition (HD) Audio Driver Windows 8 64-bit DLL-файл KERNEL32.DLL Panasonic KX-TC 1503 aoc 24e1q
Драйвер HP ENVY dv7 series 3D DriveGuard Windows 8 64-bit DLL-файл msvcr71.dll Pioneer DEH-P4650MP i-sensys
Драйвер HP ENVY dv7 series Intel Rapid Storage Technology Driver Windows 8 64-bit DLL-файл COMDLG32.OCX Dialon F10 Mf4410
Драйвер HP ENVY dv7 series Realtek Card Reader Driver Windows 8 64-bit DLL-файл binkw32.dll Pioneer DEH-P3630MP Cambridge c-995nano B
Драйвер HP ENVY dv7 series Ralink Bluetooth Software Driver Windows 8 64-bit DLL-файл d3dx9_30.dll APC BACK-UPS - 600 canon i sensys-mf 4410
Драйвер HP ENVY dv7 series Realtek Local Area Network (LAN) Driver Windows 8 64-bit DLL-файл storm.dll Sony DCR-DVD105E SurgeArrest
Драйвер HP ENVY dv7 series Intel Bluetooth Driver Windows 8 64-bit DLL-файл openal32.dll SONY CDX-F5500X Simple Communications
Драйвер HP ENVY dv7 series Qualcomm Atheros AR9000 Series Wireless LAN Driver Windows 8 64-bit DLL-файл msvcp71.dll APC SMART-UPS V/S - 1000 PCI-контроллер Simple Communications
Драйвер HP ENVY dv7 series Ralink 802.11 Wireless LAN Adapter Windows 8 64-bit DLL-файл lame_enc.dll Pioneer DEH-4050 Sumsung S27F358FWI
Драйвер HP ENVY dv7 series Ralink Bluetooth Software Driver Windows 8 64-bit DLL-файл COMCTL32.OCX Scher-Khan Magicar 5 N15235