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