- •Кафедра комп'ютерної інженерії опорний конспект лекцій до дисципліни "Системне програмне забезпечення "
- •Тема1. Загальне уявлення про операційну систему
- •Першою системою, побудованою таким чином була проста пакетна система the, яку побудував Дейкстра і його студенти в 1968 році.
- •Модель клієнт-сервер і мікроядра
- •Об'єктно-орієнтований підхід
- •Класифікація ос
- •Тема 2. Файлова система fat
- •Файлова система типа fat
- •7 Головка0
- •Структура логічних дисків
- •Алгоритм визначення ланцюжка кластерів
- •Функції створення і доступу до об'єктів файлової системи
- •Порушення структури файлової системи
- •Тема 3. Файлова система ntfs
- •Базові поняття в ntfs
- •Характеристики ntfs
- •Додаткові можливості ntfs
- •Фізична організація файлової системи ntfs
- •Mft і його структура
- •Метафайли
- •Файли і потоки
- •Каталоги
- •Атрибути файлів і каталогів
- •Короткі імена
- •Алгоритм визначення номера запису mft відповідною файлу із заданим ім'ям
- •Алгоритм пошуку номера запису mft для поточного елементу шляху по каталогу, який описаний записом mft з заданим номером
- •Каталогу із заданим номером запису mft
- •Алгоритм визначення повного списку елементів в каталозі за вказаним шляхом
- •Алгоритм отримання списку файлів в заданому індексному записі
- •Заголовок індексного запису для атрибуту index_root
- •Заголовок індексного запису для атрибуту index_allocation
- •Тема 4 . Організація пам'яті реального режиму
- •Організація пам'яті реального режиму
- •Звільнення і виділення блоків
- •Тема 5. Організація доступу до пам'яті в захищеному режимі
- •Сегмент
- •Структура дескриптора сегменту
- •Атрибут 2
- •Розподіл пам'яті в Windows
Файли і потоки
Поняття файлу включає:
Обов'язковий елемент - запис в MFT. Тут зберігається вся інформація про файл, за винятком власних даних. Ім'я файлу, розмір, положення на диску окремих фрагментів, і так далі Якщо для інформації не вистачає одного запису MFT, то використовуються декілька, причому не обов'язково підряд.
Опційний елемент - потоки даних файлу. Файл може не мати даних - у такому разі на нього не витрачається вільне місце самого диску. Файл може мати не дуже великий розмір(не більше розміру запису MFT) і в цьому випадку він розташовується в самому запису MFT, т.ч. файли, що займають сотні байт, зазвичай не мають свого "фізичного" втілення в основній файловій області - всі дані такого файлу зберігаються в одному місці - в MFT.
Кожен файл на NTFS, загалом, має декілька абстрактну будову - у нього немає як таких даних, а є потоки (streams). Один з потоків і має звичний сенс - дані файлу. Але більшість атрибутів файлу - теж потоки. Таким чином, виходить, що базова суть у файлу лише одна - номер в MFT, а все інше - опціонально. Дана абстракція може використовуватися для створення досить зручних речей - наприклад, файлу можна "приліпити" ще один потік, записавши в нього будь-які дані - наприклад, інформацію про автора і вміст файлу. Ці додаткові потоки не видно стандартними засобами: спостережуваний розмір файлу - це лише розмір основного потоку, який містить традиційні дані. Можна, наприклад, мати файл нульової довжини, при стиранні якого визволиться 1 Гбайт вільного місця - просто тому, що яка-небудь хитра програма або технологія приліпила в йому додатковий потік (альтернативні дані) гігабайтного розміру. Ім'я файлу може містити будь-які символи, включаючи набір національних алфавітів, оскільки дані представлені в Unicode ,що дає 65535 різних символів. Максимальна довжина імені файлу - 255 символів.
Каталоги
Каталог на NTFS є специфічним файлом, що зберігає посилання на інші файли і каталоги, створюючи ієрархічну будову даних на диску. Файл каталогу поділений на блоки, кожен з яких містить ім'я файлу, базові атрибути і послання на елемент MFT, який вже надає повну інформацію про елемент каталогу. Внутрішня структура каталогу є бінарним деревом. Кожний каталог NTFS представляє один вхід в таблицю MFT, який містить список файлів спеціальної форми, званий індексом (index). Індекси дозволяють сортувати файли для прискорення пошуку, заснованого на значенні певного атрибуту. Зазвичай у файлових системах FAT використовується сортування файлів по імені. NTFS дозволяє використовувати для сортування будь-який атрибут, якщо він зберігається в резидентній формі.
Існує дві форми списку файлів. Невеликі списки файлів (small indexes). Якщо кількість файлів в каталозі невелика, то список файлів може бути резидентним в записі MFT, що є каталогом (рис 3.1). В цьому випадку він називається невеликим каталогом. Невеликий список файлів містить значення атрибутів файлу. За умовчанням це ім'я файлу, а також номер запису MTF, що містить початковий запис файлу.
Рис.3.1 Невеликі каталоги
Великі списки файлів (large index). У міру того, як каталог зростає, список файлів може зажадати нерезидентної форми зберігання. Проте початкова частина списку завжди залишається резидентною в кореневому записі каталогу таблиці MFT (рис. 3.2). Імена файлів резидентної частини списку файлів є вузлами B-дерева. Останні частини списку файлів розміщуються зовні MFT. Для їх пошуку використовується спеціальний атрибут "розміщення списку" (Index Allocation - IA), що є набором номерів кластерів, які вказують на останні частини списку. Одні частини списків є листям дерева, а інші є проміжними вузлами, тобто містять поряд з іменами файлів атрибут Index Allocation, вказуючий на списки файлів нижчих рівнів.
Рис. 3.2. Великі каталоги