різновиди файлів
Файлові системи підтримують кілька функціонально різних типів файлів, в число яких, як правило, входять
· Відображаються в пам'ять файли і інші.
Каталоги - це особливий тип файлів, які містять системну довідкову інформацію про набір файлів, згрупованих користувачами з якого-небудь неформальному ознакою, (наприклад, в одну групу об'єднуються файли, що містять документи одного договору, або файли, складові один програмний пакет). У багатьох операційних системах в каталог можуть входити файли будь-яких типів, в тому числі інші каталоги, за рахунок чого утворюється деревоподібна структура, зручна для пошуку. Каталоги встановлюють відповідність між іменами файлів і їх характеристиками, використовуваними файлової системою для управління файлами. У число таких характеристик входить, зокрема, інформація (або покажчик на іншу структуру, яка містить ці дані) про тип файлу і розташуванні його на диску, права доступу до файлу і датах його створення і модифікації. У всіх інших відносинах каталоги розглядаються файлової системою як звичайні файли.
Спеціальні файли - це фіктивні файли, асоційовані з пристроями введення-виведення, які використовуються для уніфікації механізму доступу до фай-лам і зовнішніх пристроїв. Спеціальні файли дозволяють користувачеві ви-конувати операції введення-виведення за допомогою звичайних команд записи в файл або читання з файлу. Ці команди обробляються спочатку програмами файлової системи, а потім на деякому етапі виконання запиту перетворюються опера-ційної системою в команди управління відповідним пристроєм.
Сучасні файлові системи підтримують і інші типи файлів, такі як символьні зв'язку, іменовані конвеєри, які відображаються в пам'ять файли.
Формат імен файлів
У різних ФС допустиме ім'я файлу може мати різну довжину, і в ньому можуть використовуватися різні набори символів. У СР / М і її нащадків МS DOS-DR DOS. а також в VМS імена файлів зберігаються в 8-бітної АSСII-кодуванні. Всі перераховані системи використовують нечутливий до регістру букв пошук в каталогах: імена file.с, File.С і FILE.С вважаються одним і тим же ім'ям.
Найбільшим лібералізмом в сенсі імен відрізняються ОС сімейства Unix в яких ім'я файлу може складатися з будь-яких символів кодування АSCII крім символів '\ 000' і '/', наприклад, з восьми символів переведення каретки. При цьому '\ 000' є обмежувачем імені, а '/' - роздільником між ім'ям каталогу та ім'ям файлу. Ніякого поділу на ім'я і розширення немає, і хоча імена файлів з програмою на мові С закінчуються ".с", а об'єк-проектних модулів - ".про", точка тут є частиною імені. Ви можете створити файл З ім'ям "gсс-2.5.8.tar.gz". У UNIХ SVRЗ довжина імені файлу обмежена 14 символами, а в ВSD UNIХ, Linuх і SVR4- тільки довжиною блоку на диску, т. Е. 512 байтами або більш. При цьому нульовий символ вважається кінцем імені в каталозі.
ВОстаннім часом ОС підтримують довгі імена файлів. Більшість ОС при пошуку файлу призводять до одного регістру все алфавітні символи в імені. З одного боку, це означає додаткову зручність для користувача - при наборі імені не потрібно піклуватися про регістрі букв, з іншого - користувач не може створити в одному каталозі файли "text.txt" "Теxt.txt". Головна ж проблема, що виникає при роботі з нечутливими до регістру іменами, - це перетворення регістра в іменах, які використовують національні алфавіти: український, грецький, японську складову азбуку і т.д. Файлова система, що підтримує такі імена, повинна враховувати мовні особливості ОС, що створює багато складнощів. У системах сімейства Win 32 ця проблема вирішена за рахунок зберігання імен в форматі Unicode. Деякі ОС підтримують також номер версії файлу. В каталозі може існувати кілька версій файлу з одним ім'ям; якщо номер версії при відкритті файлу не задається, то відкривається остання версія. Версії файлу дуже зручні при розробці будь-яких об'єктів, від програм або друкованих плат до книг: якщо вам не сподобалися зміни, внесені вами в останню версію, ви завжди можете відкотитися назад.
Поняття «файл» включає не тільки збережені їм дані і ім'я, але і Атрібі-ти. Атрибути - це інформація, яка описувала властивості файлу. Приклади віз-мужніх атрибутів файлу:
· Тип файлу (звичайний файл, каталог, спеціальний файл і т. П.);
· Власник файлу; - творець файлу;
· Пароль для доступу до файлу;
· Інформація про дозволені операціях доступу до файлу;
· Часи створення, останнього доступу і останньої зміни;
· Поточний розмір файлу; - максимальний розмір файлу;
· Ознака «тільки для читання»;
· Ознака «прихований файл»;
· Ознака «системний файл»; - ознака «архівний файл»; - ознака «двійковий / символьний»;
· Ознака «тимчасовий» (видалити після завершення процесу);
· Довжина запису у файлі;
· Покажчик на ключове поле в записі;
Набір атрибутів файлу визначається специфікою файлової системи: в фай-лових системах різного типу для характеристики файлів можуть використовуватися різні набори атрибутів. Наприклад, в файлових системах, що підтримують неструктуровані файли, немає необхідності використовувати три останніх атрибута в наведеному списку, пов'язаних зі структуризацією файлу. У наборі атрибутів одно-користувальницької ОС будуть відсутні характеристики, що мають відношення до користувачів і захисту, такі як власник файлу, творець файлу, пароль для доступу до файлу, інформація про дозволений доступ до файлу.
Значення атрибутів файлів можуть безпосередньо міститися в каталогах, як це зроблено в файлової системі MS-DOS. На малюнку представлена структура записи в каталозі, що містить просте символьне ім'я і атрибути файлу. Тут буквами позначені ознаки файлу: R - тільки для читання, А - архівний, Н - прихований, S - системний.

Мал. Структура каталогів: a - структура записи каталогу MS-DOS (32 байта),
б - структура записи каталогу ОС UNIX
Іншим варіантом є розміщення атрибутів в спеціальних таблицях, коли в каталогах містяться тільки посилання на ці таблиці. Такий підхід реалізований, наприклад, в файлової системі ufs ОС UNIX. У цій файлової системи структура каталогу дуже проста. Запис про кожен файл містить короткий символьне ім'я файлу і покажчик на індексний дескриптор файлу, так називається в ufs таблиця, в якій зосереджені значення атрибутів файлу. В тому і іншому випадках каталоги забезпечують зв'язок між іменами файлів і власне файлами. Однак підхід, коли ім'я файлу відокремлено від його атрибутів, робить систему більш гнучкою. Наприклад, файл може бути легко включений відразу в кілька каталогів. Записи про цей файл в різних каталогах можуть містити різні прості імена, але в поле посилання буде вказано один і той же номер індексного дескриптора.
У багатьох випадках бажано пов'язати з файлом - неважливо, структурований цей файл або потік бітів - якусь метаінформацію: в якому форматі зберігаються дані, які операції над ним допустимі, а іноді і відомості про те, кому і навіщо ці дані потрібні. Мабуть, найбільш загальним рішенням цієї проблеми був би об'єктно-орієнтований підхід, в якому файл даних розглядається як об'єкт, а доступні операції - як методи цього об'єкту. У жодній з відомих ОС ця ідея повною мірою не реалізована, але призначені для користувача інтерфейси багатьох сучасних ОС надають можливість асоціювати певні дії з файлами різних типів. Так, наприклад Explorer - призначена для користувача оболонка Windows дозволяє зв'язати ту чи іншу програму з файлами, що мають розширення DOC. Від ОС при цьому потрібно тільки дати можливість якимось чином розрізняти типи файлів. Перші спроби асоціювати з файлом ознака типу були зроблені ще в 60-і роки. При цьому ідентифікатор типу додається до імені файлу в вигляді короткої, але мнемонічною послідовності символів - розширення (extention). У більшості сучасних ОС розширення відокремлюються від імені символом ".", Але простежити витоки цієї традиції не вдалося. При цьому, наприклад, файли на мові С матимуть розширення «с», на С ++ - «С», а документи в форматі LATEX - «tex».