Alexis hardware - логічна структура накопичувачів

Вінчестери, як і інші магнітні накопичувачі з прямим доступом, мають Дорожкова організацію дискової пам'яті. Це означає, що поверхня магнітних дисків розбивається на концентричні кільця різного діаметру - доріжки, починаючи з зовнішнього краю. Далі структуру інформації на вінчестері слід розглядати окремо з точки зору фізичної і логічної структур. Найчастіше плутанина виникає при порівнянні параметрів, що відносяться до різних структур.

фізична структура

З фізичної точки зору обидві поверхні всіх магнітних дисків в масиві-пакеті містять доріжки. BIOS не визначає, до якого конкретно «млинцю» належить та чи інша доріжка, тому всі поверхні пронумеровані єдиної наскрізною нумерацією. Кожній робочої поверхні відповідає своя головка. за якими, власне кажучи, поверхні і нумеруються (параметр heads). Фізично максимально допустиму кількість головок за всю історію виробництва вінчестерів дорівнювало 11, але в сучасних накопичувачах більше 6 головок не використовується. У використовуваних нині магнітних дисках число доріжок дорівнює 80, а число доріжок жорсткого диска досягає декількох тисяч. Доріжки, як і головки, ідентифікуються номером (зовнішня доріжка і верхня головка має нульовий номер). Кількість доріжок на диску визначається поверхневою щільністю запису.

Кожен сектор несе не тільки дані, але і службову інформацію. На початку кожного сектора записується його заголовок (prefix), за яким визначається початок і номер сектора, а в кінці - висновок (suffix), в якому знаходиться контрольна сума (checksum. CRC), необхідна для перевірки цілісності даних. Тема сектора включає в себе ідентифікатор (ID) сектора, першу CRC (контрольна сума) і інтервал включення запису. Ідентифікатор містить інформацію про номер циліндра, головки і сектора. Далі йде інтервал включення запису, після якого слід 512 байт даних. За даними розташовується друга CRC і інтервал між записами (секторами), необхідний для того, щоб застрахувати наступний сектор від запису на попередній. Це може статися через нерівномірне швидкості обертання диска. Завершує сектор предіндексний інтервал, який має розмір від 693 байт, служить для компенсації нерівномірності швидкості обертання диска. Таким чином, розмір сектора збільшується до 571 байта, з яких 512 байт становлять дані.

Вся ця інформація записується на заводі при низкоуровневом (LowLewel) форматуванні, використовуючи спеціальні програмні засоби (наприклад, Speed ​​Store або Disk Manager) або команди DOS. Крім проміжків між секторами існують ще й проміжки між самими доріжками. Префікси, суфікси і проміжки якраз і складають той простір диска, яке втрачається при форматуванні.

Сектора, що знаходять один над одним в пакеті дисків, на які одночасно може бути позиційований пакет головок, називається циліндром. У зв'язку з тим, що накопичувач має кілька дисків, розташованих один під одним, розбиття дисків ідентичні. Тому при розгляді жорстких дисків частіше говорять про циліндрах, ніж про доріжках.

Геометрія (ємнісні параметри) жорсткого диска описуються в BIOS наступною формулою:

де С - кількість циліндрів; Н - кількість головок; S- кількість секторів.

65536 x 16 x 256 x 512 = 128 Гбайт.

Сучасні IDE-контролера (починаючи зі стандартом ATA -2, EIDE) підтримують універсальний режим трансляції, для якого головним параметром є загальна кількість секторів. У більшості BIOS з'явилася функція «Autodetect», яка дозволяє зчитувати і встановлювати паспортні параметри накопичувача. При ініціалізації накопичувача передаються два параметри: кількість головок і секторів; потім накопичувач підлаштовує свою логічну структуру таким чином, щоб загальна ємність не змінилася, причому корекція здійснюється за рахунок циліндрів.

· З - 16 біт (максимум 2 16 = 65536)

· H - 4 біти (максимум 2 4 = 16)

· S - 8 біт (максимум 2 8 = 255).

логічна структура

Крім того, що накопичувач повинен бути налаштований в CMOS. його логічну структуру повинна розуміти операційна система. Для звернення до інформації використовується кластер (allocationunit) - мінімальна логічна одиниця доступу до інформації. Кожен кластер складається з декількох секторів (8 і більше). Кожен кластер пронумерований і може бути або вільний, або монопольно зайнятий для зберігання певного файлу, навіть якщо не всі сектори всередині його зайняті. Отже, навіть файл розміром кілька байт вимагає цілого кластера. В результаті, на кожному файлі втрачається близько половини кластера. Чим більше розмір кластера, тим більше втрати. Використання кластерів дозволяє прискорити роботу, так кількість кластерів істотно менше кількості секторів.

Нумерація кластерів не відповідає їх порядковому розташуванню на дисках. При роботі використовується той факт, що під час запису даних використовуються всі сектори, які на даний момент знаходяться під усіма головками, таким чином, заповнюється циліндр. Перш ніж перейти до наступного циліндра, заповнюється поточний щоб мати можливість зчитувати якомога більше інформації без переміщення головок.

Для DOS версії 3.0 і вище використовується алгоритм наступного вільного кластера розміщення файлів на диску. Кластери влаштовані так, що кожен з них посилається на наступний. При роботі DOS шукає вільні кластери не з початку диска, а з місця останнього запису на диск. DOS встановлює покажчик останнього записаного кластера і шукає вільні кластери, користуючись цим покажчиком. Покажчик розміщується в RAM і знищується при перезарузкі. Якщо DOS дійшла до кінця диска, то покажчик також видаляється, а пошук починається з початку диска. Таким чином здійснюються операції файлами на диску.

Цей алгоритм дозволяє відновлювати видалені файли. При видаленні файлу в початок його першого кластера ставиться знак «?», І все кластери, пов'язані з даними вважаються вільними. Покажчик виставляється на наступний вільний кластер, запис триває в йдуть далі вільних кластерах. Перезапис кластера, в якому відбулося видалення, відбудеться тільки коли покажчик в новому циклі дійде до даного кластеру. Навіть, якщо переписується один файл поверх іншого, то запис працює за такою ж схемою. А для кожного нового файлу використовується перша вільна запис.

файлові системи

Файлова система через використання кластерів дозволяє здійснювати доступ до даних. Більшість файлових систем побудовано на основі таблиці розміщення файлів (file allocation table - FAT). Найбільш поширені файлові системи FAT 12 (диски менш 16 Мбайт), FAT 16 (або просто FAT) і FAT 32.

FAT має на увазі наявність наступних структур (в порядку розташування їх на диску):

· Завантажувальні сектори головного і додаткового розділів

· Завантажувальний сектор логічного диска

· Таблиці розміщення файлів (FAT)

· Циліндр діагностичних операцій

MBR створюється за допомогою стандартної програми fdisk. Правда остання накладає деякі обмеження: первинний розділ може бути створений тільки один.

Також в Головною завантажувального запису знаходиться головний завантажувальний код - невелика програма, яка виконується з BIOS. Вона передає управління активному (завантажувального) розділу.

2. Завантажувальний запис (BootRecord) займає 32 перших сектора кожного логічного диска (для первинного розділу - циліндр 0, головка 1, сектор 1). Завантажувальний сектор активного розділу отримує управління від MBR. Він виконує деякі перевірки і запускає з диска перший системний файл io. sys. Формує завантажувальний запис програмою format. Нагадаю, що тільки Первинний розділ може бути активним. Завантажувальний запис, як Коренева таблиця розділів повинні закінчуватися сигнатурою 55АА. З цієї сигнатуре BIOS визначає, успішної чи була завантаження.

3. Таблиця розміщення файлів (FAT) - основна частина файлової системи, що дала їй назву. Вона являє собою набір записів з номерами, що відповідають номерам всіх кластерів на логічному диску. Кожному кластеру відповідає одне число. Для кожного кластера запис може мати кілька стандартних значень: кластер вільний, кластер пошкоджений або кластер є останнім кластером файлу, або містити посилання на наступний кластер в ланцюжку, що відноситься до того ж файлу. Виходить, що в таблиці зберігається інформація тільки про перший кластері ланцюжка кластерів одного файлу.

Кожна осередок FAT зберігає значення довжиною 12, 16 або 32 біта. Звідси і пішли назви FAT 12, FAT 16 і FAT 32. Розмір записів в таблиці FAT визначає максимальний розмір логічного тому. Так як в FAT 16 запис представлялася 2-байтовий числом, то на логічному диску не могло бути більш 65536 кластерів: 2 16 = 65536. У результаті нескладних обчислень ми знаходимо, що вся таблиця FAT поміщається в 1 Мбайт. Цим і користувалися віруси типу «Чорнобиль». У зв'язку цим FAT. починаючи з DOS 4.0 обмежувала обсяг логічного диска в 2 Гбайта (ра змери кластера становив 32 Кбайта): 32 Кб х 65536 = 2 Гб.

Операційні системи Windows 95 OSR 2 і старші підтримують 32-розрядну FAT з розміром кластера до 64 Кбайт. Таким чином, ця система підтримує томи розміром до 2 Тбайт. А застосовується вона в дисках об'ємом від 512 Мбайт.

Всього в кожному логічному диску існує 2 таблиці FAT. які слідують один за одним. При псуванні першого примірника, використовується другий, шляхом коригування першого. Але у цієї системи захисту є свої недоліки. По-перше, друга таблиця використовується тільки коли перша повністю зіпсована. По-друге, друга копія часто оновлюється за рахунок першої, так що в другій також можуть міститися помилки.

Залежно від розміру логічного диска змінюється і розмір кластера. Для FAT 16 томи до 260 Мбайт використовують кластери розміром 2 Кбайта, до 8 Гбайт - 32 Кбайта. Розміри кластерів і записів визначаються при форматуванні високо рівня. Для FAT 32 залежність розміру кластера від розміру тому приведена в таблиці.

4. Кореневий каталог (Rootdirectory). Так як розміри таблиці FAT не постійні, то Кореневий каталог не має чітко закріпленого місця, але слід відразу за другий таблицею FAT. Розміри цього каталогу чітко фіксовані, тому існує обмеження на кількість папок і файлів в корені диска. Під кореневої каталог зазвичай відводиться 32 сектора, саме тому кореневий каталог обмежений 512 записами. Підкаталог може зберігати будь-яку кількість записів.

Кожен запис в ту теку має розмір 32 байти. У записі міститься інформація практично вся інформація про фото, якою володіє DOS. ім'я, атрибути, час і дата створення і розмір на диску. Ця інформація пов'язана з FAT за допомогою одного з полів записи - номера першого займаного файлом кластера на диску.

Щоб відстежити розташування файлу, треба звернутися до каталогу і з'ясувати номер його першого сектора і довжину файлу, потім знайти в FAT цей кластер і простежити ланцюжок кластерів до кінця файлу.

5. І останнім розділом, про який мало хто знає, є циліндр діагностики. Це останній циліндр диска, операційна система і FAT його не бачать. Він відділяється програмою fdisk при створенні розділів. Використовується цей циліндр для форматування низького рівня і тестування даних вінчестера.

форматування

Отже, тепер ми можемо визначитися, що ж насправді відбувається під час форматування. В процесі низькорівневого форматування (заводського або спеціальними утилітами) доріжки розбиваються на сектори, формується міжсекторне простір, записуються префікси і суфікси секторів. У всіх сучасних накопичувачах застосовується зонная запис, при якій кількість секторів на доріжці є змінним. Доріжки, більш віддалені від центру, а значить, і більш довгі, містять більшу кількість секторів, і навпаки. Однак, BIOS «думає», що секторів на будь-який доріжці 63, перетворення здійснюється контролером вінчестера. При зонної записи циліндри розбиваються на групи, які називаються зонами, причому в кожній зоні на доріжках своє кількість секторів. Зон буває 10 і більше.

При форматуванні високого рівня в тому заноситься завантажувальний сектор томи (VBS - volume Boot Sector), записуються або переписуються таблиці FAT і кореневої каталог. Як видно, дані не видаляються, всього лише переписуються завантажувальні дані для роботи з операційною системою, і втрачається їх опис і каталог.

Установка декількох ОС на один вінчестер

Операційні системи, що використовують файлові системи FAT і NTFS повинні встановлюватися в Первинні розділи. При установці таких системи не будуть бачити інші Первинні розділи, в які встановлені інші ОС. Спільними для всіх операційних систем будуть логічні диски, що знаходяться в додатковому розділі. Варто відзначити, що файлова система NTFS дозволяє бачити диски FAT. але не навпаки. NTFS з DOS непомітний. Крім того, NTFS дозволяє більш раціонально використовувати дисковий простір.

Ось тепер, схоже, ми розібралися з усіма аспектами розміщення інформації на вінчестерах і можемо перейти до параметрів жорстких дисків, за якими слід вибирати той або інший пристрій, але про це в наступному номері ...

Alexis hardware - логічна структура накопичувачів
Alexis hardware - логічна структура накопичувачів
Alexis hardware - логічна структура накопичувачів