Структура магнітного диска
Інформація на магнітних дисках розміщується і передається блоками. Кожний такий блок називається сектором (sector), сектори розташовані на концентричних доріжках поверхні диска. Доріжка (track) утворюється при обертанні магнітного диска під зафіксованою в деякому визначеному положення магнітної голівки. Накопичувач на жорстких магнітних дисках (НЖМД) вміщує один або більше дисків.
Групи доріжок (треків) одного радіусу, розташованих на поверхнях магнітних дисків, утворюють циліндри (cylinder). Сучасні жорсткі диски можуть мати по декілька десятків тисяч циліндрів.
Кожний сектор складається з поля даних і поля службової інформації, що ідентифікує та обмежує його. В більшості сучасних операційних систем (ОС) розмір сектора дорівнює 512 байт.
Фізична адреса сектора на диску визначається за допомогою трьох "координат" – [c – h - s],
де с – номер циліндра (доріжки на поверхні диска, cylinder);
h – номер робочої поверхні диска (магнітної голівки, head);
s – номер сектора на доріжці.
Номер циліндра с знаходиться в діапазоні від 0 до с-1, де с – кількість циліндрів. Номер робочої поверхні диска h належить діапазону від 0 до h-1, де h – число магнітних голівок в накопичувачі.
Номер сектора на доріжці вказується в діапазоні 1...s, де s – число секторів на доріжці.
Обмін інформацією між оперативним запам'ятовуючим пристроєм (ОЗП) і дисками фізично здійснюється тільки секторами. Вся сукупність фізичних секторів на диску представляє його неформатовану ємність.
Жорсткий диск може бути розбитий на декілька розділів (partition), які потім можуть використовуватися однією операційною системою або різними ОС. На кожному розділі може бути організована своя файлова система. Але для організації навіть однієї файлової системи небхідно визначити, по крайній мірі, один розділ.
Розділи диска можуть бути двох типів – primary (первинний) і extended (розширений). Максимальне число первинних розділів дорівнює чотирьом. При цьому на диску має бути хоча б один primary – розділ. На кожному диску може бути лише один розширений розділ, який в свою чергу, може бути розділений на велику кількість підрозділів – логічних дисків (logical).
Один із primary – розділів має бути активним, іменно з нього повинна завантажуватися програма завантаження операційної системи або менеджер завантаження, призначення якого – завантажити програму завантаження ОС з якого – небудь іншого розділу і вже за її допомогою завантажувати операційну систему. Зважаючи на те, що до завантаження ОС система керування файлами працювати не може, слід використовувати для вказання завантажувачів виключно абсолютні адреси в форматі [c – h - s].
За фізичною адресою [0–0-1] на жорсткому диску знаходиться головний завантажувальний запис (master boot record, MBR), що вміщує позасистемний завантажувач (non–system bootstrap, NSB), а також таблицю розділів (partition table, PT). Цей запис займає рівно один сектор, він розміщується в пам'яті, починаючи з адреси 0:7C00h, після чого керування передається коду, що знаходиться в цьому першому секторі магнітного диска. MBR є основним засобом завантаження ОС з жорстокого диска, що підтримується BIOS.
В MBR знаходяться три важливих елементи (табл. 1):
1. програма початкового завантаження (non–system bootstrap). Вона запускається BIOS після успішного завантаження в пам'ять першого сектора з MBR. Їі призначення – завантажити наступну, більш складну програму – стартовий сектор операційної системи – і передати йому керування;
2. таблиця опису розділів диска (partition table). Розташовується в MBR за зміщенням 0x1BE і займає 64 байти. Таблиця partition table описує розміщення і характеристики наявних на вінчестері розділів;
3. сигнатура MBR. Останні два байти MBR мають вміщувати число AA55h. При наявності цієї сигнатури BIOS перевіряє що перший блок був завантажений успішно.
Таблиця 1.Структура MBR
Зміщення | Розмір, байт | Вміст |
Програма аналізу Partition table і завантаження System bootstrap з активного розділу жорсткого диска | ||
+1BEh | Partition1 entry (Описувач розділу) | |
+1CEh | Partition2 entry | |
+1DEh | Partition3 entry | |
+1EEh | Partition4 entry | |
+1FEh | Сигнатура (AA55h) |
Із структури MBR видно, що на початку сектора знаходиться програма аналізу таблиці розділів і читання першого сектора з активного розділу диска. Таблиця partition table розташована в кінці MBR, і для опису кожного розділу в цій таблиці відводиться по 16 байт (табл. 2).
Таблиця 2. Формат елемента таблиці розділів
Назва елемента Partition table | Довжина, байт |
Прапор активності розділу | |
Номер голівки початку розділу | |
Номер сектора і номер циліндра завантажувального сектора розділу | |
Кодовий ідентифікатор операційної системи | |
Номер голівки кінці розділу | |
Номер сектора і циліндра останнього сектора розділу | |
Молодше і старше двобайтове слово відносного номера початкового сектора | |
Молодше і старше двобайтове розміру розділу в секторах |
Першим байтом в елементі розділу йде прапор активності розділу boot indicator (0 – не активний, 128 (80h) – активний). Він визначає, чи є розділ системи завантажувальним і чи є небхідність виконувати завантаження операційної системи з нього при ввімкненні комп'ютера. Активним може бути лише один розділ.
За прапором активності слідує байт номера голівки, з якої починається розділ. За ним слідують два байти, що визначають відповідно номер сектора і номер циліндра завантажувального сектора, де знаходиться перший сектор завантажувача операційної системи. Потім слідує кодовий ідентифікатор System ID, що вказує на належність даного розділу до тієї чи іншої операційної системи і установки в ньому відповідної файлової системи. В таблиці 3 наведені значення деяких (найбільш відомих) ідентифікаторів.
Таблиця 3. Сигнатури (типи) розділів
System ID | Тип розділу | System ID | Тип розділу |
Empty (порожній розділ) | Novell NetWare | ||
FAT16 | Linux swap | ||
HPFS/NTFS | Linux native | ||
0B | WIN95 FAT32 | OS/2 | |
SFS | Linux Extended | ||
4D | QNX 4.x | EB | Be OS |
За байтом коду операційної системи розташований байт номера голівки кінця розділу, за яким ідуть два байти – номера сектора і номера циліндра останнього сектора даного розділу.
Номер сектора і номер циліндра секторів в розділах займають по 6 і 10 біт відповідно.
Біти номера циліндра | Біти номера сектора | ||||||||||||||
Завантажувач non-system bootstrap призначений для пошуку за допомогою partition table активного розділу, копіювання в оперативну пам'ять комп'ютера завантажувача system bootstrap із вибраного розділу і передачі йому керування, що дозволяє виконати завантаження операційної системи.
Зразу за сектором MBR розміщуються безпосередньо розділи (рис. 1). В процесі початкового завантаження сектора MBR, що вміщує таблицю partition table, працюють програмні модулі BIOS. Початкове завантаження вважається виконаним коректно лише у випадку, коли таблиця розділів вміщує допустиму інформацію.
В MS DOS в первинному розділі може бути сформований тільки один логічний диск, а в розширеному – будь-яка їх кількість. Кожний логічний диск керується своїм логічним приводом. Кожному логічному диску на вінчестері відповідає своя логічна (відносна) нумерація. Фізична адресація жорсткого диска наскрізна.
Первинний розділ DOS включає тільки системний логічний диск без будь-яких додаткових інформаційних структур. Розширений розділ DOS вміщує вторинний запис MBR (secondary MBR, SMBR), до складу якого замість partition table входить таблиця логічного диска(LDT, logical disk table), їй аналогічна.
Головна таблиця розділів
| |||
Перша розширена
таблиця розділів
Друга розширена
таблиця розділів
Рис.1. Розбиття диска на розділи
Таблиця LDT описує розташування і характеристики розділу, що вміщує єдиний логічний диск, а також може специфікувати наступний запис SMBR. Якщо в розширеному розділі DOS створено К логічних дисків, то він вміщує К екземплярів, зв'язаних в список. Кожний елемент цього списка описує відповідний логічний диск і посилається на наступний (крім останнього) елемент диска.
Дата добавления: 2016-07-27; просмотров: 1932;