Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекції ОС.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.02 Mб
Скачать

3.8.2.2. Атрибути файлу

Кожен запис MFT містить набір атрибутів, який може відрізнятися для різних файлів і каталогів.

Атрибут в NTFS складається з заголовка і значення, а заголовок, в свою чергу, містить тип атрибуту, його ім'я, довжину і дані про розміщення атрибута. Ім'я атрибута може бути відсутнім, інші поля обов'язкові. Заголовок атрибута завжди зберігається в самій запису MFT, а значення - або теж в самій записи (при цьому атрибут називається резидентним), або в кластері області даних (нерезидентний атрибут). Деякі типи атрибутів зобов'язані бути резидентними, для інших типів вибір розміщення залежить від наявності достатнього вільного місця в запису MFT. Якщо атрибут нерезидентний, то в заголовку зазначаються відомості про розміщення його значення на диску.

Розглянемо найбільш важливі типи атрибутів, використовуваних у записі про файл.

· Ім'я файлу. Цей атрибут завжди резидентів. Допускається декілька атрибутів цього типу, наприклад, «довге» ім'я (до 255 символів, включаючи літери будь-якої мови) і ім'я «8 + 3» для того ж файлу.

· Стандартна інформація. Це приблизно та інформація про файл, яка зберігалася в записі каталогу FAT: розмір файлу, тимчасові штампи та бітові прапори.

· Дескриптор захисту. Він служить для завдання прав доступу до даного файлу для різних користувачів і груп, докладніше див п. 3.8.4.2. У нових версіях NTFS запис MFT містить не сам дескриптор, а посилання на його місце в системному файлі. Так виходить компактніше, оскільки зазвичай на диску є багато файлів з однаковими дескрипторами захисту і краще зберігати кожен дескриптор один раз, у спеціально відведеному для цього файлі метаданих.

· Дані. Це саме несподіване при першому знайомстві з NTFS: самі дані файла розглядаються як один з типів атрибутів цього файлу. Наступна несподіванка полягає в тому, що атрибут даних невеликого файлу може зберігатися резидентно в складі запису MFT. Нагадаємо, що розмір цього запису - від 1 Кб і більше, так що місце для даних маленького файлу може знайтися. Безумовно, резидентне зберігання даних дозволяє прискорити доступ до них, оскільки запис MFT так чи інакше завжди читається при відкритті файлу.

Ще одна цікава особливість NTFS полягає в тому, що один файл може мати декілька атрибутів даних, що визначають декілька потоків даних (streams). Один з потоків безіменний, інші повинні мати імена. Виходить як би цілий каталог файлів усередині одного файлу. Безумовно, для цієї можливості можна придумати цікаві застосування, однак ні в одній версії Windows, включаючи XP, поки не передбачені API-функції, що працюють з потоками даних.

Якщо запис MFT описує не файл, а каталог, то замість атрибуту даних в ній міститься інший атрибут, що містить або весь каталог, або його частину. Якщо каталог занадто великий, то інші його частини зберігаються в нерезидентних атрибутах ще одного типу. Тут ми не будемо розглядати це питання детально, проте слід зазначити, що атрибути, що описують великий каталог, утворюють структуру даних, відому як Б-дерево (B-tree). Ця структура дозволяє прискорити пошук файлу в каталозі.

Запис каталогу містить лише ім'я файлу, номер запису про цей файл у MFT і копію атрибуту «стандартна інформація». Ця копія дозволяє відображати вміст каталогу без читання записів MFT про кожен файл.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]