Характеристики файлів та архітектура файлових систем

З кожним файлом пов'язаний набір атрибутів (характеристик), тобто набір відомостей про файл. Склад атрибутів може сильно відрізнятися для різних файлових систем. Наведемо приблизний список можливих атрибутів, не прив'язуючись до якої-небудь конкретної системі.

· Ім'я файлу. У старих ОС довжина імені була жорстко обмежена 6 - 8 символами з метою економії місця для зберігання імені та прискорення роботи. В даний час максимальна довжина імені становить зазвичай близько 250 символів, що дозволяє при бажанні включити в ім'я файлу докладний опис його вмісту.

· Розширення імені. За традицією, так прийнято називати праву частину імені, відокремлену точкою. У MS-DOS, як і в деяких більш ранніх системах, цей атрибут не є частиною імені, він зберігається окремо і обмежується по довжині 3 символами. Однак зараз запанував підхід, прийнятий в UNIX, де розширення - це чисто умовно виділяється частина імені після останньої крапки. Розширення зазвичай вказує тип даних у файлі.

· Тип файлу. Деякі ОС виділяють декілька істотно різних типів файлів, наприклад, символьні і двійкові, файли даних і файли програм і т.п. Нижче будуть розглянуті типи файлів, розрізняє UNIX.

· Розмір файлу. Зазвичай вказується в байтах, хоча раніше часто задавався в блоках.

· Тимчасові штампи. Під цим терміном розуміються різні позначки дати і, може бути, часу дня. Найважливішим із тимчасових штампів є час останньої модифікації, що дозволяє визначити найбільш свіжу версію файлу. Корисними можуть бути також час останнього доступу (тобто відкриття файлу), час останньої модифікації атрибутів.

· Номер версії. У деяких ОС при всякому редагування файлу створювалася його нова версія, причому система могла зберігати або всі версії, або тільки кілька останніх. Це давало важлива перевага - можливість повернутися до старої версії файлу, якщо зміни виявилися невдалими. Тим не менш, цей атрибут не прищепився через велику надлишкової витрати дискової пам'яті. При необхідності розробники можуть використовувати спеціальні програмні системи управління проектами, що забезпечують в тому числі і зберігання старих версій файлів.

· Власник файлу. Цей атрибут необхідний в багатокористувацьких системах для організації захисту даних. Як правило, власником є ​​користувач, який створив файл. Іноді, крім індивідуального власника, вказується ще й група користувачів як колективний власник файлу.

· Атрибути захисту. Вони вказують, які саме права доступу до файлу мають різні користувачі, у тому числі і власник файлу.

· Тип доступу. У деяких ОС (наприклад, в OS/360) для кожного файлу повинен був зберігатися допустимий тип доступу: послідовний, довільний або один з індексних типів, що забезпечують швидкий пошук даних у файлі. В даний час більш поширений підхід, при якому для всіх файлів

підтримуються одні й ті ж типи доступу (послідовний і довільний), а прискорення пошуку повинне забезпечуватися, наприклад, системою управління базами даних.

· Розмір запису. Якщо ця величина вказана, то адресація потрібних даних виконується за допомогою номера запису. Інший підхід полягає в тому, що дані адресуються їх зміщенням (в байтах) від початку файлу, а розбиття файлу на записи покладається на прикладні програми, що працюють з файлом.

· Прапори (бітові атрибути). Їх різноманітність обмежується лише фантазією розробників системи, але найбільш поширеним і важливим є прапор «тільки для читання» (read only), що захищає файл від випадкового видалення або редагування. Залежно від можливостей конкретної файлової системи, файл може бути відзначений як «стислий», «шифрований» і т.п.

· Дані про розміщення файлу на диску. Користувач, як правило, не знає і не хоче нічого знати про розміщення файлу (саме для цього і існує поняття файлу). Для системи ці дані необхідні, щоб знайти файл.

Записи, в яких містяться атрибути кожного файлу, зібрані в каталоги (вони ж папки, директорії). У ранніх ОС (і навіть в першій версії MS-DOS) на кожному дисковому томі мався єдиний каталог, який містить повний список всіх файлів цього тому. Таке рішення було цілком природним, поки кількість файлів не перевищувала двох - трьох десятків. Однак при збільшенні обсягу дисків і, як наслідок, числа файлів на них такий однорівневий каталог ставав все менш зручним. У деяких ОС використовувалася дворівнева організація каталогів. При цьому головний каталог містив список каталогів другого рівня, закріплених за окремими користувачами або проектами. Однак пізніше стала загальноприйнятою ієрархічна структура каталогів, при якій кожен каталог може, крім файлів, містити вкладені підкаталоги, причому глибина вкладення не обмежується.

Все що зберігаються у файловій системі службові дані, що описують атрибути та розміщення файлів, структуру каталогів, загальну структуру дискового тому і т.п., прийнято називати метаданими, на відміну від «просто даних», що зберігаються в файлах.

Крім пристроїв довільного доступу (дисків), файли можуть зберігатися і на таких пристроях послідовного доступу, як магнітні стрічки. Однак для стрічок ведення каталогів скрутно і користь від них невелика. Як правило, ім'я та інші атрибути файлу записуються на стрічку безпосередньо перед даними цього файлу.