Лекція 4. Файлові системи. Загальний огляд. Файлові системи ОС Windows
2.5.1 Організація дискового простору. Фізична структура диска
Носії інформації в сучасних комп'ютерах - це найважливіша складова, яка дозволяє зберігати дані і переносити їх на безліч інших комп'ютерів. Носії даних в своєму розвитку пройшли великий шлях від гнучких дисків ємністю 360кБ до сучасних пристроїв Flash пам'яті, жорстких дисків і CD / CDRW / DVD дисків. Розвиток носіїв інформації направлено на підвищення їх надійності, об'єму даних, що зберігаються, швидкості доступу до даних, зниження габаритних розмірів і вартості. У перших персональних комп'ютерах встановлювалися жорсткі диски об'ємом 10 або 20 мегабайт, а в сучасних комп'ютерах жорсткий диск об'ємом в 40, 60, 80 або навіть 120 Гігабайт вже є цілком звичайним явищем. Перераховані пристрої зберігання інформації мають різне пристрій, проте всі вони мають свої файлові системи, що дозволяють організувати зберігання і доступ до записаної інформації. У цьому розділі будуть розглядатися файлові системи, підтримувані операційними системами сімейства Windows NT.
Структура диска може розглядатися на наступних рівнях її організації:
- фізична структура пристрою;
- логічна структура пристрою;
Фізична структура пристрою висуває свої вимоги до властивостей операційної системи. Наприклад, з появою жорстких дисків розміром 4 Гб операційні системи MS-DOS, Windows 95 не змогли підтримувати їх і довелося розробляти нову файлову систему для нових версій ОС. У той же час, організація пристроїв зберігання даних на фізичному рівні, в цілому, не залежить від того, яка операційна система працює з пристроєм. Розглянемо фізичну структуру дискових пристроїв, таких як жорсткі диски, дискети та CD-ROM, оскільки в даний час це найпоширеніші пристрої. Також відзначимо, що і інші пристрої такі як DVD диски, пристрої Flash пам'яті, магнітооптичні диски мають також схожу структуру і дозволяють розміщувати файлові системи, підтримувані різними ОС.
Фізична структура диска. Дискети включають єдиний диск або пластину, і використовують одну або дві сторони цієї пластини, а фіксовані диски використовують кілька пластин. Дискові системи, що використовують дві сторони диска, мають по одній голівці читання / запису для кожної сторони. Ці головки розташовуються над доріжкою для читання або запису інформації за допомогою механізму позиціонування.
Головки читання / запису читають і записують дані на вузьку смужку диска, звану доріжкою, яка розташована на диску у вигляді кола. Однаково пронумеровані доріжки на кожній стороні двостороннього диска розрізняються за номером головки читання / запису, який використовується для доступу до доріжці. Наприклад, доріжка 1 на верхній стороні диска позначається як головка 0, доріжка 1; доріжка 1 на нижньому боці диска позначається як головка 1, доріжка 1. Доріжки можуть являти собою спіралі або концентричні кола. У першому типі доріжок зберігається однакова кількість секторів на кожній доріжці, а обертання відбувається з постійною кутовою швидкістю. У другому типі доріжок забезпечується однакова щільність запису на всій поверхні диска і таким чином, розташовані у центру диска доріжки містять менше секторів, ніж доріжки, що знаходяться біля зовнішнього кордону диска. Цей тип диска обертається з різною швидкістю, щоб забезпечити необхідну швидкість для магнітної головки, що рухається з постійною лінійною швидкістю. Перший тип доріжок використовується на магнітних дисках, а другий - на CD RОM.
Циліндром називається безліч однаково пронумерованих доріжок на двох сторонах пластини або на всіх сторонах всіх пластин в системі, що використовує багато пластин.
Кожна доріжка розділяється на рівні частини, звані секторами. Розмір сектора дорівнює ступеню 2 і зазвичай перевищує 128 байт - найчастіше дорівнює 512 байт. Крім фіксованого числа байтів даних, сектор передбачає включення певної кількості додаткової інформації для кожного сектора, наприклад, відомостей про виправлення помилок і ідентифікації сектора. Структура кожного сектора визначається в процесі форматування. Нумерація секторів починається з одиниці. Кожен сектор ідентифікується унікальним чином за допомогою повної специфікації головки читання / запису, - номера циліндра і номера сектора. Для доступу до певного сектору контролер дискового пристрою переміщує всі головки до потрібного циліндра, а потім активізує відповідну головку для здійснення операції читання або запису.
Форматування жорстких дисків виконується в три етапи:
2.5.2. Логічна структура диска
Розглянуті нижче аспекти логічної структури диска в більшості своїй відносяться до файлової системи FAT32, крім тих випадків де є інші згадки. Великі фізичні диски пристрої часто логічно поділяються на логічні блокові пристрої меншого розміру. Такий поділ, наприклад, дозволяє ділити пристрій між різними операційними системами. Розділений на частини блоковий пристрій має таблицю опису розділів, що знаходиться в одному з секторів на початку диска. Ця таблиця показує на фізичне розташування логічних блокових пристроїв. На диску з єдиним розділом також є така таблиця. Таблиця опису розділів знаходиться в першому фізичному секторі фіксованого диска. Кожен запис в таблиці розділів (partition table) містить початкову позицію і розмір розділу на жорсткому диску, а також інформацію про те, перший сектор якого розділу містить завантажувальний сектор. Також в цьому секторі знаходиться програма початкового завантаження, призначена для перевірки таблиці опису розділів при початковому завантаженні розділів і передачі йому управління. Таблиця опису розділів, розташована в кінці першого фізичного сектора на диску, може містити максимум чотири входи. Формат таблиці опису розділів наведено в таблиці 2.1:
Таблиця 2.1. - Таблиця опису розділів жорсткого диска
Розмір (в байтах)
Розділи розташовані в зворотному порядку.
Сектор початкового завантаження для кожного розділу розташований на початку розділу, який визначається ознакою початку, номерами початкового сектора і початкового циліндра.
Головний завантажувальний запис (master boot record, MBR) - перша частина даних на жорсткому диску. Компоненти головного завантажувального запису наступні:
Invalid Partition Table (неправильна таблиця розділів);
Error loading operating system (помилка при завантаженні операційної системи);
Missing operating system (операційна система відсутня).
Таблиця 2.2 Опис формату 16-ти байтового входу таблиці опису розділів
Зсув від початку сектора
Кількість секторів в даному розділі
Для незагружаемую розділу індикатор початкового завантаження дорівнює нулю і 80H - для завантаженого (активного) розділу. Активним називається розділ, у якого виставлений відповідний атрибут. Зазвичай в цьому розділі встановлюється операційна система, звідки і здійснюється її завантаження. Однак активний розділ може і не містити операційної системи. Якщо ж необхідно забезпечити завантаження операційної системи з будь-якого розділу, то він обов'язково повинен бути встановлений як активний. При створенні розділів програми FDISK і PartitionMagic (і подібні до них) встановлюють індикатори початкового завантаження для всіх інших розділів в 0. Кожен запис визначає розділ. В FAT32 введено 2 нових типу розділів DOS32 (0В) і DOS32X (ОС).
доступ до фіксованих дискам - функції 4lh - 44h, 47h і 48h;
блокування і зміна носія - функції 41h, 45h, 46h, 48h і 49h;
підтримка розширених дисків - функції 41h і 48h;
для емуляції дисків на завантажуваних CD-ROM є розширені функції 4Ah - 4Dh.
При завантаженні з жорсткого диска програма завантаження зчитує і завантажує в пам'ять перший фізичний сектор на активному розділі диска, званий завантажувальним сектором (Boot Sector). Завантажувальний сектор (BOOT) створюється на етапі логічного форматування кожного розділу (логічного диска) створюються чотири логічних області:
завантажувальний сектор (boot sector);
таблиця розміщення файлів (FAT1 і FAT2);
Завантажувальний сектор на будь-якому логічному диску (розділі) розташовується першим. Його блок даних (512 байт) починається з команди JMP, яка передає управління на програму IPL2, містить ім'я операційної системи і її версію, містить блок параметрів BIOS диска (ВРВ), програму IPL 2, завантажує операційну систему і закінчується сигнатурою 55АА. У таблиці 2.3 пояснюються деякі з його найважливіших записів.
Таблиця 2.3. Найважливіші записи в завантажувальному секторі
Тип файлової системи (12- або 16-розрядна)
Блок параметрів BIOS.Ета частина завантажувального сектора відома як BIOS Parameter Block (BPB) (блок параметрів BIOS). Вона містить фізичні характеристики диска, які MS-DOS і Windows використовують при пошуку певної ділянки. Складаючи або перемножая значення цих параметрів, операційна система дізнається, де знаходиться таблиця FAT, кореневий каталог, де починається і закінчується область даних. Блок параметрів BIOS (BPB) в FАТ32 займає більше місця, ніж стандартний BIOS Parameter Block. Через це завантажувальний сектор тепер займає не один (як в FAT16), а три фізичних сектора, причому є ще додатковий і розміщується через три фізичних сектора в сьомому, восьмому і дев'ятому фізичному секторі. BF_BPB - це розширена версія ВРВ, який був присутній в 12- і 16-розрядної FAT. Він містить ті ж структури, що і стандартний BPB, але включає кілька додаткових полів, які потрібні для FAT32.
Поле кореневого каталогу. Цей елемент повідомляє кількість секторів в кореневому каталозі. Для жорстких дисків це значення завжди дорівнювало 512 (0200h) і означало кількість рядків каталогу, що розміщуються в тридцяти двох секторах. Тепер воно змінено на 0 (0000h) і на FAT32-дисках ігнорується.
Опис диска. Двухбайтовое поле, яке використовується як прапор, який вказує кількість таблиць FAT на диску - одна або дві. Якщо прапорець встановлений, на диску тільки одна FAT, якщо скинуто - дві. FAT32, створена командою Format, завжди формує 2 таблиці FAT.
Перший кластер кореневого каталогу. Максимальне число елементів в кореневому каталозі тепер розширено до 65535, а сам кореневої каталог може знаходитися в будь-якому місці. Дане значення вказує номер першого кластера, займаного кореневим каталогом на FАТ32-диску.
Сектор файлової інформаціі.Указивает на другий завантажувальний сектор. У ньому міститься інформація про те, скільки на диску всього кластерів, скільки з них вільно і який кластер був виділений найостаннішим. Таким чином, щоб отримати цю часто використовувану інформацію, тепер не потрібно зчитувати всю таблицю FAT.
Деякі з цих понять будуть розглянуті докладніше в наступному розділі.