- •Передумови виникнення файлових систем
- •Імена файлів
- •Внутрішня структура файлів
- •Типи файлів
- •Атрибути файлів
- •Операції з файлами
- •Каталоги
- •Системи з однорівневими каталогами
- •Ієрархічні системи каталогів
- •Імена файлів
- •Операції з каталогами
- •Реалізація файлової системи Структура файлової системи
- •Реалізація файлів Неперервне розміщення
- •Реалізація каталогів
- •Типи файлових систем
- •Файлові системи з журнальною структурою
- •Журнальовані файлові системи
- •Віртуальні файлові системи
- •Керування файловою системою
- •Керування дисковим простором
- •Розмір блоку
- •Відслідковування вільних блоків
- •Дискові квоти
- •Резервне копіювання файлової системи
- •Несуперечливість (Однозначність)файлової системи
- •Продуктивність файлової системи Кешування
- •Випереджаюче читання блоку
- •Скорочення обсягу переміщень блоку головок диска
Імена файлів
Файли є механізмом абстрагування. Вони надають спосіб збереження інформації на диску і подальшого її зчитування, який повинен захистити користувача від подробиць способу і місця зберігання інформації та деталей фактичної роботи дискових пристроїв. Напевно, найбільш важливою характеристикою будь-якого механізму абстрагування є спосіб управління об'єктами і їх іменування, тому дослідження файлової системи почнемо з питання, що стосується імен файлів. Коли процес створює файл, він надає йому ім'я. Коли процес завершується, файл продовжує існувати, і до нього по цьому імені можуть звертатися інші процеси.
Конкретні правила надання імен файлам варіюються від системи до системи. Найчастіше допускається використання цифр та спеціальних символів, допустимі такі імена, як 2, urgent!, і Fig.2-14. Багато файлових систем підтримують імена довжиною до 255 символів.
Деякі файлові системи розрізняють літери верхнього та нижнього регістрів, а деякі не роблять таких відмінностей. Система UNIX належить до першої категорії, a MS-DOS - до другої. Тому система UNIX може розглядати наступні поєднання символів як імена трьох різних файлів: maria, Maria і MARIA. В MS-DOS всі ці імена відносяться до одного і того ж файлу.
Багато операційні системи підтримують імена файлів, що складаються з двох частин, розділених крапкою, як в імені prog.с. Та частина імені, яка іде після крапки, називається розширенням імені файлу і, як правило, несе в собі деяку інформацію про файл. Наприклад, в MS-DOS імена файлів складаються з 1-8 символів, плюс до цього необов'язкове розширення, яке складається з 1-3 символів. В UNIX розмір розширення, якщо таке є, вибирає сам користувач, і ім'я файлу може мати навіть два і більше розширень, як в імені homepage.html.zip, де .html вказує на наявність веб-сторінки з HTML кодом, a .zip - на те, що цей файл (homepage.html) був стиснутий програмою zip. Деякі широко поширені розширення та їх значення показані в табл. 4.1.
Деякі типові розширення імен файлів
У деяких системах (наприклад, в UNIX) розширення імен файлів використовуються відповідно до угод і не нав'язуються операційною системою. Файл file.txt може бути текстовим файлом, але це скоріше нагадування його власнику, ніж передача якоїсь значущої інформації комп'ютеру. З іншого боку, компілятор мови С може висунути вимогу, щоб файли, які він компілює мали розширення .с, і відмовиться проводити компіляцію, якщо вони не мають такого розширення.
Подібні угоди особливо корисні, коли одна і та ж програма повинна керувати різними типами файлів. Наприклад, компілятору мови С може бути наданий список файлів, які він повинен відкомпілювати і скомпонувати, причому деякі з цих файлів можуть містити програми мовою С, тоді як інші - бути асемблерними файлами. У такому випадку компілятор зможе відрізнити одні файли від інших саме по їх розширенню. Система Windows, навпаки, знає про розширення імен файлів і призначає кожному розширенню конкретне значення. Користувачі (або процеси) можуть реєструвати розширення в операційній системі, вказуючи програму, яка стане їх «власником». Наприклад, подвійний клік миші на імені file.doc запускає Microsoft Word, який відкриває файл file.doc в якості вихідного файлу для редагування.