Ієрархічна структура файлової системи 1

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

Мал. 19. Ієрархія файлових систем:

а - однорівнева організація; б - дерево; в - мережа

Граф, що описує ієрархію каталогів, може бути деревом або мережею. Ката-логи утворюють дерево, якщо файлу дозволено входити тільки в один каталог (рис. 19, б), і мережа - якщо файл може входити відразу в декілька каталогів (рис. 19, в). Наприклад, в MS-DOS і Windows каталоги утворюють деревовидну структуру, а в UNIX - мережеву. У структурі дерева кожен файл являє-ся листом. Каталог самого верхнього рівня називається кореневим каталогом. або коренем (root).

Окремим випадком ієрархічної структури є однорівнева організа-ція, коли всі файли входять в один каталог (рис. 19, а).

Всі типи файлів мають символьні імена. В ієрархічно організованих файлових системах зазвичай використовуються три типи імен файлів: прості, склад-ні та відносні.

Просте. або короткий. символьне ім'я ідентифікує файл в межах одного каталогу. Прості імена привласнюють файлам користувачі і програмісти, при цьому вони повинні враховувати обмеження ОС як на номенклатуру символів, так і на довжину імені. До порівняно недавнього часу ці межі були досить вузькими. Так, в файлової системі FAT довжина імен ограничи-валися схемою 8.3 (8 символів - власне ім'я, 3 символу - розширення імені), а в файлової системі s5, підтримуваної багатьма версіями ОС UNIX, просте символьне ім'я не могло містити більше 14 символів. Однак користувачеві набагато зручніше працювати з довгими іменами, оскільки вони дозволяють дати файлів легко запам'ятовуються назви, ясно говорять про те, що міститься в цьому файлі. Тому сучасні файлові системи, а також вдосконалять-ванні варіанти вже існуючих файлових систем, як правило, підтрим-жива довгі прості символьні імена файлів. Наприклад, в файлових сис-темах NTFS і FAT32, що входять до складу операційної системи Windows NT, ім'я файлу може містити до 255 символів.

Приклади простих імен файлів і каталогів:

додаток до CD 254L російською язике.doc

installable filesystem manager.doc

В ієрархічних файлових системах різних файлах дозволено мати однаковий-ші прості символьні імена за умови, що вони належать різним ката-логам. Тобто тут працює схема "багато файлів - одне просте ім'я". Для однозначної ідентифікації файлу в таких системах використовується так зване повне ім'я.

Повне ім'я являє собою ланцюжок простих символьних імен всіх катало-гов, через які проходить шлях від кореня до даного файлу. Таким чином, повне ім'я є складовим, в якому прості імена відокремлені один від одного прийнятим в ОС роздільником. Часто як роздільник використовується прямий або зворотний слеш, при цьому прийнято не вказувати ім'я кореневого ката-логу. На рис. 19, б два файли мають просте ім'я main.exe, проте їх складові імена /depart/main.exe і / user / anna / main exe розрізняються.

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

Файл може бути ідентифікований також відносним ім'ям. Відноси-вування ім'я файлу визначається через поняття "поточний каталог". Для кожного користувача в кожний момент часу один з каталогів файлової системи є поточним, причому цей каталог вибирається самим користувачем за ко-манде ОС. Файлова система фіксує ім'я поточного каталогу, щоб потім використовувати його як додаток до відносних імен для освіти пів-ного імені файлу. При використанні відносних імен користувач іден-тіфіцірует файл ланцюжком імен каталогів, через які проходить маршрут від поточного каталогу до даного файлу. Наприклад, якщо поточним каталогом є каталог / user, то відносне ім'я файлу /user/anna/main.exe виглядає наступним чином: anna / main.exe.

У деяких операційних системах дозволено привласнювати одному і тому ж файлу кілька простих імен, які можна інтерпретувати як псевдо-Німи. В цьому випадку, так само як в системі з мережевою структурою, встановлюється відповідність "один файл - багато повних імен", так як кожному простому име-ні файлу відповідає принаймні одне повне ім'я.

І хоча повне ім'я однозначно визначає файл, операційній системі простіше працювати з файлом, якщо між файлами і їх іменами є взаємно одне-значне відповідність. З цією метою вона привласнює файлу унікальне ім'я, так що справедливе співвідношення "один файл - одне унікальне ім'я". Унікальне ім'я існує поряд з одним або декількома символьними іменами, при-привласнювати файлу користувачами або додатками. Унікальне ім'я пред-ставлять собою числовий ідентифікатор і призначене тільки для опера-ційної системи. Прикладом такого унікального імені файлу є номер індексного дескриптора в системі UNIX.

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

Перше рішення полягає в тому, що на кожному з пристроїв розміщується авто-автономних файлова система, т. Е. Файли, що знаходяться на цьому пристрої, описи-ються деревом каталогів, ніяк не пов'язаним з деревами каталогів на інших пристроях. У такому випадку для однозначної ідентифікації файлу користування земельними діл-тель поряд з складовим символьним ім'ям файлу повинен вказувати иденти-фікатор логічного пристрою. Прикладом такого автономного існування файлових систем є операційна система MS-DOS, в якій повне ім'я файлу включає буквений ідентифікатор логічного диска. Так, при про-рощення до файлу, розташованому на диску А, користувач повинен вказати ім'я цього диска: A: \ privat \ letter \ uni \ let1.doc.

Іншим варіантом є така організація зберігання файлів, при якій користувачеві надається можливість об'єднувати файлові системи, на-ходячи на різних пристроях, в єдину файлову систему, описувану єдиним деревом каталогів. Така операція називається монтуванням. Рассмот-рим, як здійснюється ця операція на прикладі ОС UNIX.

Серед усіх наявних в системі логічних дискових пристроїв операційна система виділяє один пристрій, зване системним. Нехай є дві файлові системи, розташовані на різних логічних дисках (рис. 20), при-ніж один з дисків є системним.

Файлова система, розташована на системному диску, призначається кореневої. Для зв'язку ієрархій файлів в кореневій файловій системі вибирається Незнач-рий існуючий каталог, в даному прикладі - каталог man. Після виконан-ня монтування обраний каталог man стає кореневим каталогом вто-рій файлової системи. Через цей каталог вмонтовується файлова система під'єднується як поддерево до загального дереву (рис. 21).

Мал. 20. Дві файлові системи до монтування

Мал. 21. Загальна файлова система після монтування

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

Поняття "файл" включає не тільки збережені їм дані і ім'я, але і Атрібі-ти. Атрибути файлу - це інформація, яка описувала властивості файлу. Приклади віз-мужніх атрибутів файлу:

# 61623; тип файлу (звичайний файл, каталог, спеціальний файл і т. п.);

# 61623; власник файлу;

# 61623; творець файлу;

# 61623; пароль для доступу до файлу;

# 61623; інформація про дозволені операціях доступу до файлу;

# 61623; часи створення, останнього доступу і останньої зміни;

# 61623; поточний розмір файлу;

# 61623; максимальний розмір файлу;

# 61623; ознака "тільки для читання";

# 61623; ознака "прихований файл";

# 61623; ознака "системний файл";

# 61623; ознака "архівний файл";

# 61623; ознака "двійковий / символьний";

# 61623; ознака "тимчасовий" (видалити після завершення процесу);

# 61623; ознака блокування;

# 61623; довжина запису у файлі;

# 61623; покажчик на ключове поле в записі;

# 61623; довжина ключа.

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

Значення атрибутів файлів можуть безпосередньо міститися в каталогах, як це зроблено в файлової системі MS-DOS (рис. 22, а). На малюнку представлена ​​структура записи в каталозі, що містить просте символьне ім'я і атрибути файлу. Тут буквами позначені ознаки файлу: R - тільки для читання, А - архівний, Н - прихований, S - системний.

Мал. 22. Структура каталогів:

а - структура записи каталогу MS-DOS (32 байта); б - структура записи каталогу ОС UNIX

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

В тому і іншому випадках каталоги забезпечують зв'язок між іменами файлів і власне файлами. Однак підхід, коли ім'я файлу відокремлено від його Атрібі-тов, робить систему більш гнучкою. Наприклад, файл може бути легко включений відразу в кілька каталогів. Записи про цей файл в різних каталогах можуть со-тримати різні прості імена, але в поле посилання буде вказано один і той же но-заходів індексного дескриптора.