Структура тому з файловою системою NTFS
Одним з основних понять, використовуваних при роботі з NTFS, є поняття тому (volume). Можливе також створення відмовостійкого тому, що займає кілька розділів, тобто використання RAID-технології. Як і багато інших систем, NTFS поділяє весь корисний дисковий простір тому на кластери - блоки даних, які адресуються як одиниці даних. NTFS підтримує розміри кластерів від 512 байт до 64 Кбайт; стандартом же вважається кластер розміром 2 або 4 Кбайт.
Весь дисковий простір у NTFS поділяється на дві нерівні частини (рис.6). Перші 12 % диска виділяються під так звану MFT-зону - простір, що може займати, збільшуючись у розмірі, головний службовий метафайл MFT.(MFT -master file table - це спеціальний файл, головна системна структура даних, що дозволяє визначати місцезнаходження всіх інших файлів).
Запис будь-яких даних у цю область неможливий. MFT-зона завжди утримується порожньою - це робиться для того, щоб головний, службовий файл (MFT) по можливості не фрагментувався при своєму рості. Інші 88 % тому являють собою звичайний простір для збереження файлів.
MFT | Зона MFT | Зона для розміщення файлів і каталогів | Копія перших 16 записів MFT | Зона для розміщення файлів і каталогів |
Рис.6. Структура тому NTFS
MFT (master file table, загальна таблиця файлів) являє собою централізований каталог всіх інших файлів диска, у тому числі і себе самого. MFT поділений на записи фіксованого розміру в 1 Кбайт, і кожний запис відповідає якому-небудь файлу (у загальному значенні цього слова). Перші 16 файлів носять службовий характер і недоступні операційній системі - вони називаються метафайлами, причому найперший метафайл - сам MFT. Ці перші 16 елементів MFT - єдина частина диска, що має строго фіксоване положення. Копія цих же 16 записів зберігається в середині тому для надійності, оскільки вони дуже важливі. Інші частини MFT-файлу можуть розташовуватися, як і будь-який інший файл, у довільних місцях диска - відновити його положення можна за допомогою його самого, "зачепивши" за саму основу - за перший елемент MFT.
Перші 16 файлів NTFS (метафайли) носять службовий характер; кожний з них відповідає за певний аспект роботи системи. Метафайли знаходяться в кореневому каталозі NTFS-тому. Всі вони починаються із символу імені “$”, хоча одержати яку-небудь інформацію про них стандартними засобами складно. У табл. 8 наведені основні метафайли та їх призначення.
Таблиця 8. Метафайли NTFS
Ім'я метафайл а | Призначення метафайла |
$MFT | Сам Master File Table |
$MFTmirr | Копія перших 16 записів MFT, розміщена посередині тому |
$LogFile | Файл підтримки операцій журналювання |
$Volume | Службова інформація - мітка тому, версія файлової системи і т.д. |
$AttrDef | Список стандартних атрибутів файлів на томі |
$ | Кореневий каталог |
$Bitmap | Карта вільного місця тому |
$Boot | Завантажувальний сектор (якщо розділ завантажувальний) |
$Quota | Файл, у якому записані права користувачів на використання дискового простору (цей файл почав працювати лише в Windows 2000 із системою NTFS 5.0) |
Таблиця 8.(продовження) | |
$Upcase | Файл - таблиця відповідності великих і малих букв в іменах файлів. У NTFS імена файлів записуються в Unicode (що складає 65 тисяч різних символів) і шукати великі і малі еквіваленти в даному випадку - непроста задача |
Всі файли тому згадуються в MFT. У цій структурі зберігається вся інформація про файли, за винятком власне даних. Ім'я файлу, розмір, положення на диску окремих фрагментів і т.д. - все це зберігається у відповідному записі. Якщо для інформації не вистачає одного запису MFT, то використовується кілька записів, причому що не обов'язково йдуть підряд. Файли можуть мати не дуже великий розмір. Тоді застосовується досить вдале рішення: дані файлу зберігаються прямо в MFT, у місці, що залишилося від основних даних, у межах одного запису MFT. Файли, що займають сотні байт, звичайно не мають свого "фізичного" втілення в основній файловій області - всі дані такого файлу зберігаються в одному місці, у MFT.
Файл у томі з NTFS ідентифікується так званим файловим посиланням (File Reference), що представляється як 64-розрядне число. Файлове посилання складається з номера файлу, що відповідає позиції його файлового запису в MFT, і номера послідовності. Останній збільшується кожного разу, коли дана позиція в MFT використовується повторно, що дозволяє файловій системі NTFS виконувати внутрішні перевірки цілісності.
Кожний файл у NTFS представлений за допомогою потоків (streams), тобто в нього немає як таких "просто даних", а є "потоки". Для правильного розуміння потоку досить вказати, що один з потоків і носить звичний нам зміст - дані файлу. Але більшість атрибутів файлу - це також потоки. Таким чином, виходить, що базова сутність у файлу тільки одна - номер у MFT, а все інше, включаючи і його потоки, - опціонально. Даний підхід може ефективно використовуватися - наприклад, файлу можна "прикріпити" ще один потік, записавши в нього будь-які дані. У Windows 2000 у такий спосіб записана інформація про автора і зміст файлу (одна з закладок у властивостях файлу, що переглядаються, наприклад, із Проводника). Ці додаткові потоки не видні стандартними засобами роботи з файлами: розмір файлу, що спостерігається - це лише розмір основного потоку, що вміщує традиційні дані. Можна, приміром, мати файл нульової довжини, при стиранні якого звільниться 1 Гбайт вільного місця - тому, що яка-небудь програма або технологія "прикріпила" до нього додатковий потік (альтернативні дані) такого великого розміру. Але насправді в даний час потоки практично не використовуються, так що побоюватися подібних ситуацій не слід, хоча гіпотетично вони можливі. Просто необхідно мати на увазі, що файл у NTFS - це більш глибоке поняття, ніж можна собі уявити, переглядаючи каталоги диска.
Стандартні ж атрибути для файлів і каталогів у томі NTFS мають фіксовані імена і коди типу, вони перераховані в табл.9.
Таблиця 9. Атрибути файлів у системі NTFS
Системний атрибут | Опис атрибута |
Стандартна інформація про файл | Традиційні атрибути Read Only, Hidden, Archive, System, оцінки часу, включаючи час створення або останньої модифікації, число каталогів, що посилаються на файл |
Список атрибутів | Список атрибутів, з яких складається файл, і файлове посилання на файловий запис в MFT, у якій розташований кожний з атрибутів. Останній використовується, якщо файлу необхідно більше одного запису в MFT |
Ім’я файлу | Ім’я файлу в символах Unicode. Файл може мати декілька атрибутів – імен файлу, схоже до того, як це є в UNIX-системах. Це трапляється, коли є зв’язок POSIX з даним файлом або якщо у файла є автоматично згенероване ім’я у форматі 8.3 |
Таблиця 9.(продовження) | |
Дескриптор захисту | Структура данихзахисти (ACL), що захищає файл від несанкціонованого доступу. Атрибут “дескриптор захисту” визначає, хто власник файлу і хто має доступ до нього |
Дані | Власне дані файлу, його вміст. В NTFS у файла за замовчуванням є один безіменний атрибут даних, і він може мати додаткові іменовані атрибути даних. У каталогу немає атрибута даних за замовчуванням, але він може мати необов'язкові іменовані атрибути даних |
Корінь індексу, розміщення індексу, бітова карта (тільки для каталогів) | Атрибути, що використовуються для індексів імен файлів у великих каталогах |
Розширені атрибути HPFS | Атрибути, що використовуються для реалізації розширених атрибутів HPFS для підсистеми OS/2 і OS/2-клієнтів файлів-серверів Windows NT |
Атрибути файлу в записах MFT розташовані в порядку зростання числових значень кодів типу, причому деякі типи атрибутів можуть зустрічатися в записі більше одного разу: наприклад, якщо у файлу є декілька атрибутів даних або декілька імен. Обов'язковими для кожного файлу в томі NTFS є атрибут стандартної інформації, атрибут імені файлу, атрибут дескриптора захисту та атрибут даних. Інші атрибути можуть зустрічатися при необхідності.
Ім'я файлу в NTFS, на відміну від файлових систем FAT і HPFS, може вміщувати будь-які символи, включаючи повний набір національних алфавітів, тому що дані представлені в Unicode 16-бітному представленні, що дає 65 535 різних символів. Максимальна довжина імені файлу в NTFS - 255 символів.
Значний внесок в ефективність файлової системи вносить організація каталогу. Каталог у NTFS являє собою спеціальний файл, що зберігає посилання на інші файли і каталоги, створюючи ієрархічну будову даних на диску. Файл каталогу поділений на блоки, кожний з який вміщувати ім'я файлу, базові атрибути і посилання на елемент MFT, що вже надає повну інформацію про елемент каталогу. Головний каталог диска - кореневий - нічим не відрізняється від звичайних каталогів, крім спеціального посилання на нього з початку метафайла MFT.
Внутрішня структура каталогу являє собою бінарне дерево.
Бінарне дерево каталогу розташовує імена файлів таким чином, щоб пошук файлу здійснювався за допомогою отримання двохзначних відповідей на питання про положення файлу. Бінарне дерево здатне дати відповідь на питання: у якій групі, відносно даного елемента, знаходиться розшукуване ім'я - вище або нижче? Починається з цього питання до середнього елемента, і кожна відповідь звужує зону пошуку в середньому в два рази. Якщо представити, що файли відсортовані за алфавітом, то відповідь на питання здійснюється очевидним способом - порівнянням початкових букв. Область пошуку, звужена в два рази, починає досліджуватися аналогічним образом, починаючи знову ж із середнього елемента.
Додавати файл у каталог у виді дерева не набагато складніше, ніж у лінійний каталог системи FAT. Це порівнювані за часом операції. Для того щоб додати новий файл у каталог, потрібно спочатку переконатися, що файла з таким іменем там ще немає. Тому в системі FAT з лінійною організацією записів каталогу з'являються труднощі не тільки з пошуком файлу. І це компенсує простоту додавання файлу в каталог.
Дата добавления: 2016-07-27; просмотров: 1906;