Що таке файлова система? Файлова система NTFS, FAT, RAW, UDF. Розміщення файлів у дисковій пам'яті. Опис загальних характеристик файлової системи

Структура файлової системи

Структура файлової системи залежить від операційної системи. Однією з перших комп'ютерах застосовувалася файлова система FAT (File Allocation Table), яка використовувалася в операційній системі MS DOS.

FAT була призначена для роботи з гнучкими дискамирозміром менше 1 Мбайта, і спочатку не передбачала підтримки жорстких дисків. Надалі FAT стала підтримувати файли та розділи розмірів до 2 Гбайт.

У FAT застосовуються такі угоди щодо імен файлів:
Ім'я має починатися з літери або цифри і може містити будь-який символ ASCII, за винятком пробілу та символів "/\: ; | = , ^ * ?
Довжина імені не перевищує 8 символів, за ним слідує точка та необов'язкове розширення довжиною до 3 символів.
регістр символів в іменах файлів не розрізняється та не зберігається.

Файлова система FAT не може контролювати окремо кожен сектор, тому вона об'єднує суміжні сектори кластери. Таким чином, зменшується загальна кількість одиниць зберігання, за якими має стежити файлова система. Розмір кластера FAT є ступенем двох і визначається розміром тома при форматуванні диска. Кластер є мінімальним простором, який може займати файл. Це призводить до того, що частина дискового простору витрачається марно.

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

Доступ - процедура встановлення зв'язку з пам'яттю та розміщеним у ній файлом для запису та читання даних.

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

c:\Papka1\papka2\uchebnik.doc

Такий запис називається маршрут або шлях.

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

Каталог-довідник файлів із зазначенням розташування на диску.

В операційній системі WINDOWS поняттякаталог відповідає поняттю папка.

Розрізняють два стани каталогу - поточний (активний) та пасивний.

Поточний (активний) каталог-каталог, в якому в даний момент часу працює користувач.

Пасивний каталог-каталог, з яким в даний момент часу немає зв'язку .

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

Батьківський каталог - каталог, що має підкаталоги .

Підкаталог - каталог, який входить до іншого каталогу .

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

У структурі каталогів можуть бути каталоги, які містять жодного файлу чи подкаталога. Такі підкаталоги називаються порожніми .

Правила найменування підкаталогів такі самі, як і правила найменування файлів. Для формального відмінності від файлів зазвичай підкаталогам надають лише імена, хоча можна додати і тип за тими самими правилами, як і для файлів.

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

Файлова система FAT має суттєве обмеження щодо підтримки великих обсягівдискового простору, межа дорівнює 2 Гб.

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

Операційна система Windows містить файлову систему FAT32, яка підтримує жорсткі диски обсягом до двох терабайт.
У FAT32 були розширені атрибути файлів, що дозволяють зберігати час і дату створення, модифікації та останнього доступудо файлу чи каталогу.
Система дозволяє довгі імена файлів та пробіли в іменах.
Файлова система FAT32 підтримується в операційних системах Windows XP та Windows Vista.

Для названих операційних систем було розроблено ще одну файлову систему: NTFS (New Technology File System)

У NTFS значно розширено можливості управління доступом до окремих файлів і каталогів, введено велике числоатрибутів, реалізована стійкість до відмов, засоби динамічного стиснення файлів. NTFS дозволяє використовувати імена файлів завдовжки до 255 символів

NTFS має можливість самостійного відновлення у разі збою ОС або обладнання, так що дисковий том залишається доступним, а структура каталогів не порушується.

Кожен файл на томі NTFS представлений записом у спеціальному файлі – головної файлової таблиці MFT (Master File Table). NTFS резервує перші 16 записів таблиці розміром близько 1 Мб спеціальної інформації. Записи забезпечують резервування головної файлової таблиці, відновлення файлів, контролюють стан кластерів, визначають атрибути файлів.

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



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

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

Запитання для самоперевірки.

1. Що таке файлова система?

2. Що таке "файл"?

3. Основні складові файлової структури.

4. Що таке кластер?

5.Назвіть основні параметри, що характеризують файл.

6.Як утворюється ім'я файлу?

7. Правила надання імен файлам у системі FAT.

8.Чому виникає потреба дефрагментації диска?

9. Що таке каталог?

10. Поясніть поняття "маршрут", "шлях".

11.Для чого в іменах файлів застосовується розширення?

12. Основне призначення файлової системи.

13.Які файлові системи підтримуються операційними системами Windows XP, Windows Vista?

Файлова система. Типи файлових систем. Операції із файлами. Каталоги. Операції із каталогами.

Файл - це іменована область зовнішньої пам'яті, яку можна записувати і з якої можна зчитувати дані.

Основні цілі використання файлу.

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

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

Файлова система (ФС) - Це частина операційної системи, що включає:

    сукупність всіх файлів на диску;

    набори структур даних, що використовуються для керування файлами, такі, наприклад, як каталоги файлів, дескриптори файлів, таблиці розподілу вільного та зайнятого простору на диску;

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

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

Широко відомі такі файлові системи:

    файлова система операційної системи MS - DOS , в основу якої покладено таблиця розміщення файлів - FAT ( File Allocation Table ).

Таблиця містить відомості про розташування всіх файлів (кожен файл поділяється на кластеривідповідно до наявності вільного місця на диску, кластери одного файлу не обов'язково розташовані поруч). Файлова система MS-DOS має значні обмеження та недоліки, наприклад, під ім'яфайлу приділяється 12 байт, робота з жорстким диском великого об'єму призводить до значної фрагментації файлів;

Основні функції у такій ФС націлені на вирішення наступних завдань:

    найменування файлів;

    програмний інтерфейс для програм;

    відображення логічної моделі файлової системи на фізичну організацію сховища даних;

    стійкість файлової системи до збоїв живлення, помилок апаратних та програмних засобів.

    OS /2 , звана HPFS ( High - Performance File System - Швидкодіюча файлова система).

Забезпечує можливість ім'я файлу до 254 символів. Файли, записані на диск, мають мінімальну фрагментацію. Може працювати з файлами, записаними у MS DOS;

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

У розрахованих на багато користувачів системах з'являється ще одне завдання: захист файлів одного користувача від несанкціонованого доступу іншого користувача.

    файлова система операційної системи Windows 95

Має рівневу структуру, що дозволяє одночасно підтримувати кілька файлових систем. Стара файлова система MS-DOS підтримується безпосередньо, а файлові системи, розроблені не фірмою Microsoft, підтримуються за допомогою спеціальних модулів. Можна використовувати довгі (до 254 символів) імена файлів.

    файлові системи операційної системи Unix

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

Права доступу до файлу фактично визначають права доступу до системи (власник файлу – юзер, який його створив).

Типи файлів

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

Звичайні файли , або просто файли, містять інформацію довільного характеру, яку заносить в них користувач або яка утворюється в результаті роботи системних та програм користувача. Більшість сучасних операційних систем (наприклад, UNIX, Windows, OS/2) не обмежує і контролює вміст і структуру звичайного файла. Зміст звичайного файлу визначається програмою, яка з ним працює. Наприклад, текстовий редакторстворює текстові файли, що складаються з рядків символів, представлених у якомусь коді. Це можуть бути документи, вихідні тексти програм тощо. Текстові файли можна прочитати на екрані та роздрукувати на принтері. Двійкові файли не використовують коди символів, часто мають складну внутрішню структуру, наприклад виконуваний код програми або архівний файл. Всі операційні системи повинні вміти розпізнавати хоча б один тип файлів - їх власні файли, що виконуються.

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

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

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

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

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

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

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

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

Імена файлів

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

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

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

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

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

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

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

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

Атрибути файлів

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

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

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

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

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

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

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

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

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

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

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

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

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

    ознака «двійковий/символьний»;

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

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

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

    покажчик на ключове поле запису;

    Довжина ключа.

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

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

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

Мал. 7.6.Структура каталогів: а - структура запису каталогу MS-DOS (32 байти), б - структура запису каталогу ОС UNIX

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

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

Операції над файлами

Більшість сучасних ОС розглядають файл як неструктуровану послідовність байт змінної довжини. У стандарті POSIX над файлом визначено такі операції:

    int open ( char * fname , int flags , mode _ t mode )

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

Параметр char * fname задає ім'я файлу. int flags - це бітова маска, що визначає режим відкриття файлу. крім того, можна відкривати існуючий файл, а можна намагатися створити новий файлнульової довжини. Необов'язковий третій параметр mode використовується тільки при створенні файлу і задає атрибути цього файлу.

    off _ t lseek ( int handle , off _ t offset , int whence )

Ця операція переміщує покажчик читання/запису у файлі. Параметр offset задає кількість байт, на яку потрібно змістити покажчик, а параметр whence - звідки відраховувати зміщення. поточного положення покажчика (SEEK_CUR). Операція повертає положення вказівника, що відраховується від початку файлу. Таким чином, викликlseek(handle, 0, SEEK_CUR) поверне поточний станпокажчика, не пересуваючи його.

    int read(int handle, char * where, size_t how_much)

Операція читання із файлу. Покажчик where задає буфер, куди потрібно помістити прочитані дані; Третій параметр вказує, скільки даних треба рахувати. Якщо файл закінчився раніше, зчитується стільки даних, скільки залишалося до кінця. Операція повертає кількість лічених байт. Якщо файл відкривався лише для запису, виклик read поверне помилку.

    int write(int handle, char * what, size_t how_much)

Операція запису у файл. Покажчик what задає початок буфера даних; третій параметр вказує, скільки даних треба записати. Система записує необхідне число байт у файл, починаючи з покажчика читання / запису в цьому файлі, замінюючи дані, що зберігалися на цьому місці, і переміщає покажчик до кінця записаного блоку. Якщо файл закінчився раніше, його довжина збільшується. Операція повертає кількість записаних байт.

Якщо файл відкривається лише для читання, виклик write поверне помилку.

    int ioctl(int handle, int cmd, ...) ; int fcntl ( int handle , int cmd , ...)

Додаткові операції над файлом. Спочатку, мабуть, передбачалося, що ioctl - це операції над самим файлом, а fcntl - це операції над дескриптором відкритого файлу, але потім історичний розвиток дещо перемішав функції цих системних викликів. Стандарт POSIXвизначає деякі операції як наддескриптором, наприклад дублювання (в результаті цієї операції ми отримуємо два дескриптори, пов'язані з одним і тим же файлом), так і над самим файлом, наприклад, операцію truncate - обрізати файл до заданої довжини. У більшості версій Unixоперацію truncate можна використовувати і для вирізання даних із середини файлу. При зчитуванні даних з такої вирізаної області зчитуються нулі, а сама ця область не займає фізичного місцяна диску.

Важливою операцією є блокування ділянок файлу. POSIXпропонує для цієї мети бібліотечну функцію, але в системах сімейства Unixця функція реалізована через виклик fcntl.

Більшість реалізацій стандарту POSIXпропонує свої додаткові операції. Так, у Unix SVR4 цими операціями можна встановлювати синхронний або відкладений запис і т.д.

    caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int handle, off_t offset)

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

Ще дві операції виконуються вже не над файлом, а над його ім'ям: це операції перейменування та видалення файлу. У деяких системах, наприклад, у системах сімейства Unix, файл може мати кілька імен, і існує лише системний виклик для видалення імені. Файл видаляється при видаленні останнього імені.

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

Приблизно та ж модель роботи з файлами прийнята в CP/ M,а набір файлових системних викликів MS DOSфактично скопійований з викликів Unix v7 . В свою чергу, OS/2 і Windows NTуспадкували принципи роботи з файлами безпосередньо від MS DOS.

Навпаки, у системах, які не мають Unixв родоводі, може використовуватися дещо інше трактування поняття файлу. Найчастіше файл сприймається як набір записів. Зазвичай система підтримує записи як постійної довжини, і змінної. Наприклад, текстовий файл інтерпретується як файл із записами змінної довжини, а кожному рядку тексту відповідає один запис. Така модель роботи з файлами VMSта в ОС лінії OS/360 -MVSфірми IBM.

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

Перед форматуванням операційна система Windows пропонує вибрати вид файлової системи на носії, розмір кластера, спосіб форматування (швидке або повне). Давайте розберемося, що таке файлова система і навіщо вона потрібна?

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

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

Для кращого розуміння уявіть бібліотекаря, який видає клієнту книгу за назвою. Або у зворотному порядку: клієнт здає прочитану книгу бібліотекарю, який розміщує її на зберігання. Клієнту зовсім не потрібно знати, де і як зберігається книга, це обов'язок службовця закладу. Бібліотекар знає правила каталогізації бібліотеки і за цими правилами розшукує видання чи розміщує його назад, тобто. виконує свої службові функції. У даному прикладібібліотека – це носій інформації, бібліотекар – файлова система, клієнт – програма.

Основні функції файлової системи

Основними функціями файлової системи є:

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

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

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

Види файлових систем

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

  1. FAT32
  2. ISO9660

Останні дві системи призначені для роботи з компакт-дисками. Файлові системи Ext3 і Ext4 працюють з операційними системами основі Linux. NFS Plus – це ФС для операційних систем OS X, які у комп'ютерах фірми Apple.

Найбільшого поширення набули файлові системи NTFS і FAT32 і це дивно, т.к. вони призначені для операційних систем Windows, під керуванням яких працює переважна більшість комп'ютерів у світі.

Зараз FAT32 активно витісняється більш просунутою системою NTFS через її більшу надійність до збереження та захисту даних. До того ж, останні версії ОС Windows просто не дадуть себе встановити, якщо розділ жорсткого дискабуде відформатовано у FAT32. Програма установки вимагає відформатувати розділ у NTFS.

Файлова система NTFSпідтримує роботу з дисками об'ємом у сотні терабайт та розміром одного файлу до 16 терабайт.

Файлова система FAT32 підтримує диски до 8 терабайт та розмір одного файлу до 4Гб. Найчастіше цю ФС використовують на флешках та картах пам'яті. Саме у FAT32 форматують зовнішні накопичувачі на заводі.

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

Поділитись.

Матеріал до оглядової лекції №33

для студентів спеціальності

"Програмне забезпечення інформаційних технологій"

доцента кафедри ІВТ, к.т.н. Лівак О.М.

СИСТЕМИ УПРАВЛІННЯ ФАЙЛАМИ

Основні поняття, факти

Призначення. Особливості файлових системFAT,VFAT,FAT 32,HPFS,NTFS. Файлові системи ОС UNIX (s5, ufs), ОС Linux Ext2FS. Системні області диска (розділу, томи). Принципи розміщення файлів та зберігання інформації про розташування файлів. Організація каталогів. Обмеження доступу до файлів та каталогів.

Навички та вміння

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

Файлова система. Структура файлової системи

Дані на диску зберігаються як файли. Файл - це частина диска.

Для керування файлами призначені системи керування файлами.

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

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

Система управління файлами є основною підсистемою абсолютної більшості сучасних ОС.

За допомогою системи керування файлами

· Зв'язуються за даними всі системні обробні програми;

· Вирішуються проблеми централізованого розподілу дискового простору та управління даними;

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

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

Постараємося розрізняти файлову систему та систему керування файлами.

Термін "файлова система" визначає принципи доступу до даних, організованих у файли.

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

Отже, для роботи з файлами, організованими відповідно до деякої файлової системи, для кожної ОС має бути розроблена відповідна система керування файлами. Ця система УФ працюватиме лише у тій ОС, на яку вона створена.

Для сімейства ОС Windows в основному використовуються файлові системи: VFAT, FAT 32, NTFS.

Розглянемо структуру цих файлових систем.

У файловій системі FAT дисковий простір будь-якого логічного диска поділяється на дві області:

· Системну область та

· Область даних.

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

Системна область складається з наступних компонентів:

· Завантажувального сектора, що містить завантажувальний запис (boot record);

· Зарезервованих секторів (їх може і не бути);

· Таблиці розміщення файлів (FAT, File Allocation Table);

· Кореневого каталогу (Root directory, ROOT).

Ці компоненти розташовані на диску один за одним.

Область даних містить файли та каталоги, підпорядковані кореневому.

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

Розбиття області даних на кластери замість використання секторів дозволяє:

· Зменшити розмір таблиці FAT;

· Зменшити фрагментацію файлів;

· скорочується довжина ланцюжків файлу Þ пришвидшується доступ до файлу.

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

У сучасних файлових системах (FAT 32, HPFS, NTFS) ця проблема вирішується за рахунок обмеження розміру кластера (максимум 4 Кбайта)

Картою області даних є Т абліця розміщення файлів (File Allocation Table - FAT) Кожен елемент таблиці FAT (12, 16 чи 32 біт) відповідає одному кластеру диска і характеризує його стан: вільний, зайнятий чи є збійним кластером (bad cluster).

· Якщо кластер розподілений будь-якому файлу (тобто, зайнятий), то відповідний елемент FAT містить номер наступного кластера файлу;

· Останній кластер файлу відзначається числом у діапазоні FF8h – FFFh (FFF8h – FFFFh);

· Якщо кластер є вільним, він містить нульове значення 000h (0000h);

· Кластер, непридатний для використання (збійний), відзначається числом FF7h (FFF7h).

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

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

Вона зберігається у двох ідентичних примірниках, які йдуть один за одним. У разі руйнування першої копії таблиці використовується друга.

У зв'язку з тим, що FAT використовується дуже інтенсивно при доступі до диска, вона зазвичай завантажується в ОП (буфера вводу/виводу або кеш) і залишається там настільки довго, наскільки це можливо.

Основний недолік FAT – повільна робота з файлами. Під час створення файлу працює правило - виділяється перший вільний кластер. Це веде до фрагментації диска та складних ланцюжків файлів. Звідси випливає уповільнення роботи з файлами.

Для перегляду та редагування таблиці FAT можна використовувати утилітуDiskEditor.

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

Кореневий каталог описує файли та інші каталоги. Елементом каталогу є дескриптор (описувач) файлу.

Дескриптор кожного файлу та каталогу включає його

· ім'я

· Розширення

· дату створення або останньої модифікації

· час створення або останньої модифікації

· атрибути (архівний, атрибут каталогу, атрибут тома, системний, прихований, тільки для читання)

· Довжину файлу (для каталогу - 0)

· Зарезервоване поле, яке не використовується

· Номер першого кластера в ланцюжку кластерів, відведених файлу чи каталогу; отримавши цей номер, операційна система, звертаючись до таблиці FAT, дізнається й інші номери кластерів файла.

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

Для перегляду та редагування кореневого каталогу ROOT також можна використовувати утилітуDiskEditor.

Файлова система VFAT

Файлова система VFAT (віртуальна FAT) вперше з'явилася у Windows for Workgroups 3.11 і була призначена для файлового вводу/виводу у захищеному режимі.

Використовується ця файлова система Windows 95.

Підтримується вона також у Windows NT 4.

VFAT - це "рідна" 32-розрядна файлова система Windows 95. Її контролює драйвер VFAT. VXD.

VFAT використовує 32-розрядний код для всіх файлових операцій, може використовувати 32-розрядні драйвери захищеного режиму.

АЛЕ, елементи таблиці розміщення файлів залишаються 12- або 16-розрядними, тому на диску використовується та ж структура даних (FAT). Тобто. ф ормат таблиціVFAT такий же, як і формат FAT.

VFAT поряд з іменами "8.3" підтримує довгі імена файлів. (Часто говорять, що VFAT – це FAT з підтримкою довгих імен).

Основний недолік VFAT - великі втрати на кластеризацію при великих розмірах логічного диска та обмеження на розмір логічного диска.

Файлова система FAT 32

Це нова реалізація ідеї використання таблиці FAT.

FAT 32 – це повністю самостійна 32-розрядна файлова система.

Вперше використовувалася у Windows OSR 2 (OEM Service Release 2).

В даний час FAT 32 використовується в Windows 98 та Windows ME.

Вона містить численні вдосконалення та доповнення порівняно з попередніми реалізаціями FAT.

1. Набагато ефективніше витрачає дискове простір з допомогою те, що використовує кластери меншого розміру (4 Кб) - підраховано, що економиться до 15%.

2. Має розширений завантажувальний запис, який дозволяє створювати копії критичних структур даних Þ підвищує стійкість диска до порушень структур диска

3. Може використовувати резервну копію FAT замість стандартної.

4. Може переміщувати кореневий каталог, тобто кореневий каталог може перебувати в довільному місці Þ знімає обмеження розмір кореневого каталогу (512 елементів, т.к. ROOT мав займати один кластер).

5. Удосконалено структуру кореневого каталогу

З'явилися додаткові поля, наприклад, час створення, дата створення, дата останнього доступу, контрольна сума

Як і раніше, для довгого імені файлу використовується кілька дескрипторів.

Файлова система HPFS

HPFS (High Performance File System) - високопродуктивна файлова система.

HPFS вперше з'явилася в OS/2 1.2 та LAN Manager.

Перерахуємо Основні особливості HPFS.

· Головна відмінність - базові принципи розміщення файлів на диску та принципи зберігання інформації про місцезнаходження файлів. Завдяки цим принципам HPFS має високу продуктивність та відмовостійкість, є надійноюфайлової системи.

· Дисковий простір у HPFS виділяється не кластерами (як у FAT), а блоками.У сучасній реалізації розмір блоку взятий рівним одному сектору, але в принципі він міг би бути й іншого розміру. (По суті, блок - це і є кластер, тільки кластер завжди дорівнює одному сектору). Розміщення файлів у таких невеликих блоках дозволяє більш ефективно використовувати простір диска, так як непродуктивні втрати вільного місця становлять в середньому всього (півсектора) 256 байт на кожен файл. Згадаймо, що чим більший розмір кластера, тим більше місця на диску витрачається марно.

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

Екстенти(extent ) - Фрагменти файлу, що розташовуються в суміжних секторах диска. Файл має принаймні один екстент, якщо він не фрагментований, а в іншому випадку - кілька екстентів.

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

· У HPFS передбачені спеціальні розширені атрибути файлів, що дозволяють керувати доступом до файлів та каталогів.

Розширені атрибути (Extended attributes, EAs ) дозволяють зберігати додаткову інформаціюпро файл. Наприклад, кожному файлу може бути зіставлено його унікальне графічне зображення (значок), опис файлу, коментар, відомості про власника файлу і т.д.

C труктура розділу HPFS


На початку розділу із встановленою HPFS розташовано три керуючих блоку:

· Завантажувальний блок (boot block),

· Додатковий блок (super block) і

· запасний (резервний) блок (spare block).

Вони займають 18 секторів.

Решта дискового простору в HPFS розбита на частини з суміжних секторів - смуги(Band - смуга, стрічка). Кожна смуга займає на диску 8 Мб.

Кожна смуга має свою власну бітову карту розподілу секторів.Битовая карта показує, які сектори цієї лінії зайняті, які - вільні. Кожному сектору смуги даних відповідає один біт у її бітовій карті. Якщо біт = 1, то сектор зайнятий, якщо 0 – вільний.

Бітові карти двох смуг розташовуються на диску поруч, так само розташовуються самі смуги. Тобто послідовність смуг та карт виглядає як на рис.

Порівняємо зFAT. Там на весь диск лише одна "бітова карта" (таблиця FAT). І до роботи з нею доводиться переміщати головки читання/записи загалом через половину диска.

Саме для того, щоб скоротити час позиціонування головок читання/запису жорсткого диска, HPFS диск розбитий на смуги.

Розглянемо керуючі блоки.

Завантажувальний блок (bootblock)

Містить ім'я тома, його серійний номер, блок параметрів BIOS та програму початкового завантаження.

Програма початкового завантаження знаходить файл OS 2 LDR , зчитує його на згадку і передає управління цій програмі завантаження ОС, яка, своєю чергою, завантажує з диска на згадку ядро ​​OS/2 - OS 2 KRNL. І вже OS 2 KRIML за допомогою відомостей із файлу CONFIG. SYS завантажує на згадку про всі інші необхідні програмні модулі і блоки даних.

Завантажувальний блок розташований у секторах з 0 по 15.

СуперБлок(super block)

Містить

· Покажчик на список бітових карт (bitmap block list). У цьому списку перераховані всі блоки на диску, в яких розташовані бітові картки, які використовуються для виявлення вільних секторів;

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

· покажчик на групу каталогів (directory band),

· покажчик на файловий вузол (F-node) кореневого каталогу,

· дату останньої перевірки розділу програмою CHKDSK;

· Інформація про розмір смуги (у поточній реалізації HPFS - 8 Мбайт).

Super block розміщується у 16 ​​секторі.

Резервнийблок(spare block)

Містить

· покажчик на карту аварійного заміщення (hotfix map або hotfix-areas);

· покажчик на список вільних запасних блоків (directory emergency free block list);

· ряд системних прапорів та дескрипторів.

Цей блок розміщується у 17 секторі диска.

Резервний блок забезпечує високу стійкість до відхилення файлової системи HPFS і дозволяє відновлювати пошкоджені дані на диску.

Принцип розміщення файлів

Екстенти(extent ) - Фрагменти файлу, що розташовуються в суміжних секторах диска. Файл має принаймні один екстент, якщо він не фрагментований, а в іншому випадку - кілька екстентів.

Для скорочення часу позиціонування головок читання/запису жорсткого диска HPFS прагне

1) розташувати файл у суміжних блоках;

2) якщо такої можливості немає, то розмістити екстенти фрагментованого файлу якомога ближче один до одного,

Для цього HPFS використовує статистику, а також намагається умовно резервувати хоча б 4 кілобайти місця в кінці зростаючих файлів.

Принципи зберігання інформації про розташування файлів

Кожен файл та каталог диска має свій файловий вузол F-Node. Це структура, в якій міститься інформація про розташування файлу та про його розширені атрибути.

Кожен F-Node займає один секторі завжди розміщується поблизу свого файлу або каталогу (зазвичай - безпосередньо перед файлом або каталогом). Об'єкт F-Node містить

· Довжину,

· Перші 15 символів імені файлу,

· Спеціальну службову інформацію,

· Статистику з доступу до файлу,

· Розширені атрибути файлу,

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

· Асоціативну інформацію про розташування та підпорядкування файлу і т.д.

Якщо файл безперервний, його розміщення на диску описується двома 32-битными числами. Перше число є покажчиком на перший блок файлу, а друге - довжину екстенту (число наступних один за одним блоків, що належать файлу).

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

У файловому вузлі можна розмістити інформацію максимум про вісім екстентів файлу. Якщо файл має більше екстентів, то його файловий вузол записується покажчик на блок розміщення (allocation block ), який може містити до 40 покажчиків на екстенти або, за аналогією з блоком дерева каталогів, на інші блоки розміщення.

Структура та розміщення каталогів

Для зберігання каталогів використовується смуга, що знаходиться в центрі диска.

Ця смуга називається directoryband.

Якщо вона повністю заповнена, HPFS починає розміщувати каталоги файлів в інших шпальтах.

Розташування цієї інформаційної структури всередині диска значно скорочує середній час позиціонування головок читання/запису.

Однак істотно більший (порівняно з розміщенням Directory Band у середині логічного диска) внесок у продуктивність HPFS дає використання методузбалансованих двійкових дерев для зберігання та пошуку інформації про місцезнаходження файлів.

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

У HPFS структура каталогу є збалансоване дерево із записами, розташованими в алфавітному порядку.

Кожен запис, що входить до складу дерева, містить

· атрибути файлу,

· покажчик на відповідний файловий вузол,

· інформацію про час і дату створення файлу, час і дату останнього оновлення та звернення,

· Довжині даних, що містять розширені атрибути,

· Лічильник звернень до файлу,

· Довжині імені файлу

· саме ім'я,

· та іншу інформацію.

Файлова система HPFS під час пошуку файлу в каталозі переглядає лише необхідні гілки двійкового дерева. Такий метод набагато ефективніший, ніж послідовне читання всіх записів у каталозі, що має місце в системі FAT .

Розмір кожного з блоків, у термінах яких виділяються каталоги у поточній реалізації HPFS, дорівнює 2 Кбайт. Розмір запису, який описує файл, залежить від розміру імені файлу. Якщо ім'я займає 13 байтів (для формату 8.3), то блок із 2 Кбайт вміщує до 40 описників файлів. Блоки пов'язані один з одним у вигляді списку.

Проблеми

При перейменуванні файлів може виникнути так зване перебалансування дерева. Створення файлу, перейменування або стирання може призвести до каскадування блоків каталогів. Фактично, перейменування може зазнати невдачі через брак дискового простору, навіть якщо файл у розмірах не збільшився. Щоб уникнути цього «лиха», HPFS підтримує невеликий пул вільних блоків, які можуть використовуватися при «аварії». Ця операція може зажадати виділення додаткових блоків на заповненому диску. Вказівник на цей пул вільних блоків зберігається в SpareBlock,

Принципи розміщення файлів та каталогів на дискуHPFS:

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

· Каталоги розміщуються в середині дискового простору;

· каталоги зберігаються у вигляді бінарного збалансованого дерева із записами, розташованими в алфавітному порядку.

Надійність зберігання даних у HPFS

Будь-яка файлова система повинна мати засоби виправлення помилок, що виникають при записі інформації на диск. Система HPFS для цього використовує механізм аварійного заміщення ( hotfix).

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

Ця карта є просто парою подвійних слів, кожне з яких є 32-бітовим номером сектора.

Перший номер вказує на дефектний сектор, а другий на той сектор серед наявних запасних секторів, який був обраний для його заміни.

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

Слід зазначити, що це перетворення номерів суттєво не впливає на продуктивність системи, оскільки воно виконується лише за фізичного звернення до диска, але не при читанні даних із дискового кешу.

Файлова система NTFS

Файлова система NTFS (New Technology File System) містить низку значних удосконалень та змін, які суттєво відрізняють її від інших файлових систем.

Зауважимо, що за рідкісними винятками, з розділами NTFS можна працювати безпосередньо тільки зWindowsNT,хоч і є ряду ОС відповідні реалізації систем управління файлами для читання файлів з томів NTFS.

Однак повноцінних реалізацій для роботи з NTFS поза системою Windows NT поки що немає.

NTFS не підтримується в поширених ОС Windows 98 і Windows Millennium Edition.

Основні особливостіNT FS

· робота на дисках великого обсягу відбувається ефективно (набагато ефективніше, ніж у FAT);

· є засоби для обмеження доступу до файлів та каталогів Þ розділи NTFS забезпечують локальну безпеку як файлів, і каталогів;

· Введено механізм транзакцій, при якому здійснюється журналуванняфайлових операцій Þ суттєве збільшення надійності;

· знято багато обмежень на максимальну кількість дискових секторів та/або кластерів;

· Ім'я файлу в NTFS, на відміну від файлових систем FATі HPFS може містити будь-які символи, включаючи повний набірнаціональних алфавітів, так як дані представлені в Unicode - 16-бітному уявленні, яке дає 65535 різних символів. Максимальна довжина імені файлу в NTFS – 255 символів.

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

Структура тома із файловою системою NTFS

Розділ NTFS називається томом (volume). Максимально можливі розміри тома (і розміри файлу) становлять 16 ебайт (екзабайт 2**64).

Як і інші системи, NTFS ділить дискове простір тому на кластери - блоки даних, адресовані як одиниці даних. NTFS підтримує розміри кластерів від 512 байт до 64 Кбайт; стандартом вважається кластер розміром 2 або 4 Кбайт.

Весь дисковий простір у NTFS поділяється на дві нерівні частини.


Перші 12% диска відводяться під так звану MFT-зону - простір, який може займати, збільшуючись у розмірі, головний службовий метафайл MFT.

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

Інші 88% тому є звичайним простір для зберігання файлів.

MFT (masterfiletable -загальна таблиця файлів) по суті - це каталог решти файлів диска, у тому числі і себе самого. Він призначений визначення розташування файлів.

MFT складається із записів фіксованого розміру. Розмір запису MFT (мінімум 1 Кб та максимум 4 Кб) визначається під час форматування тома.

Кожен запис відповідає будь-якому файлу.

Перші 16 записів мають службовий характер і недоступні операційній системі - вони називаються метафайлами,причому перший метафайл - сам MFT.

Ці перші 16 елементів MFT - єдина частина диска, має суворо фіксоване положення. Копія цих 16 записів зберігається в середині тома для надійності.

Інші частини MFT-файлу можуть розташовуватись, як і будь-який інший файл, у довільних місцях диска.

Метафайли носять службовий характер - кожен із них відповідає за будь-який аспект роботи системи. Метафайли знаходяться у кореневому каталозі NTFS-тому. Усі вони починаються із символу імені «$», хоча отримати будь-яку інформацію про них стандартними засобами складно. У табл. наведено основні метафайли та їх призначення.

Ім'я метафайлу

Призначення метафайлу

$MFT

Сам Master File Table

$MFTmirr

Копія перших 16 записів MFT, розміщена посередині тома

$LogFile

Файл підтримки операцій журналування

$Volume

Службова інформація - мітка тому, версія файлової системи і т.д.

$AttrDef

Список стандартних атрибутів файлів на томі

Кореневий каталог

$Bitmap

Карта вільного місцятоми

$Boot

Завантажувальний сектор (якщо розділ завантажувальний)

$Quota

Файл, у якому записані права користувачів використання дискового простору (цей файл почав працювати лише у Windows 2000 із системою NTFS 5.0)

$Upcase

Файл - таблиця відповідності великих та великих літер в іменах файлів. У NTFS імена файлів записуються в Unicode (що складає 65 тисяч різних символів) і шукати великі та малі еквіваленти в даному випадку – нетривіальне завдання

У відповідному записі MFT зберігається вся інформація про файл:

· ім'я файлу,

· Розмір;

· Атрибути файлу;

· Положення на диску окремих фрагментів і т. д.

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

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

Файл у томі з NTFS ідентифікується так званою файловим посиланням(File Reference), яка представляється як 64-розрядне число.

· Номери файлу, який відповідає номеру запису в MFT,

· І номери послідовності. Цей номер збільшується щоразу, коли даний номер MFT використовується повторно, що дозволяє файловій системі NTFS виконувати внутрішні перевірки цілісності.

Кожен файл у NTFS представлений за допомогою потоків(streams), тобто у нього немає як таких «просто даних», а є потоки.

Один із потоків - це і є дані файлу.

Більшість атрибутів файлу - це також потоки.

Таким чином, виходить, що базова сутність файлу тільки одна - номер в MFT, а все інше, включаючи і його потоки, - опціонально.

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

Стандартні атрибути для файлів та каталогів у томі NTFS мають фіксовані імена та коди типу.

Каталогв NTFS є спеціальний файл, що зберігає посилання на інші файли та каталоги.

Файл каталогу поділено на блоки, кожен із яких містить

· ім'я файлу,

· Базові атрибути та

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

Внутрішня структура каталогу є бінарним деревом, як у HPFS.

Кількість файлів у кореневому та некореневому каталогах не обмежена.

Файлова система NTFS підтримує об'єктну модель безпеки NT : NTFS розглядає каталоги і файли як різнотипні об'єкти і веде окремі (хоч і перекриваються) списки прав доступу кожного типу.

NTFS забезпечує безпеку лише на рівні файлів; Це означає, що права доступу до томів, каталогів і файлів можуть залежати від облікового запису користувача та груп, до яких він належить. Щоразу, коли користувач звертається до об'єкта файлової системи, його права доступу перевіряються за списком дозволів цього об'єкта. Якщо користувач має достатній рівень прав, його запит задовольняється; інакше запит відхиляється. Ця модель безпеки застосовується як для локальної реєстрації користувачів на комп'ютерах з NT , так і при віддалених мережевих запитах.

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

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

Основний недолік файлової системиNTFS- службові дані займають багато місця (наприклад, кожен елемент каталогу займає 2 Кбайт); - для малих розділів службові дані можуть займати до 25% обсягу носія.

Þ Система NTFS не може використовуватись для форматування флоппі-дисків. Не варто використовувати її для форматування розділів об'ємом менше 100 Мбайт.

Файлова система ОС UNIX

У світі UNIX існує кілька різних видів файлових систем зі своєю структурою зовнішньої пам'яті. Найбільш відомі традиційна файлова система UNIX System V (s5) та файлова система сімейства UNIX BSD (UFS).

Розглянемо 5.

Файл у системі UNIX є безліч символів з довільним доступом.

Файл має таку структуру, яку накладає користувач.

Файлова система Unix, це ієрархічна, розрахована на багато користувачів файлова система.

Файлова система має деревоподібну структуру. Вершинами ( проміжними вузлами) Дерева є каталоги з посиланнями на інші каталоги або файли. Листя дерева відповідає файлам або порожнім каталогам.

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

Структура диска

Диск поділено на блоки. Розмір блоку даних визначається при форматуванні файлової системи командою mkfs і може бути встановлений 512, 1024, 2048, 4096 або 8192 байт.

Вважаємо по 512 байт (розмір сектора).

Дисковий простір поділяється на такі області (див. рис.):

· Завантажувальний блок;

· Керуючий суперблок;

· Масив i-вузлів;

· Область для зберігання вмісту (даних) файлів;

· Сукупність вільних блоків (пов'язаних до списку);

Блок початкового завантаження

Суперблок

i - вузол

. . .

i - вузол

Зауваження.Для файлової системи UFS - все це для групи циліндрів повторюється (крім Boot-блоку) + виділено спеціальну область для опису групи циліндрів

Блок початкового завантаження

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

Boot-блок містить програму розкручування, яка служить для початкового запуску ОС UNIX. У файлових системах s 5 реально використовується boot-блок лише кореневої файлової системи. У додаткових файлових системах ця область є, але не використовується.

Суперблок

Він містить оперативну інформацію про стан файлової системи та дані про параметри налаштування файлової системи.

Зокрема суперблок містить наступну інформацію

· Кількість i-вузлів (індексних дескрипторів);

· Розмір розділу???;

· Список вільних блоків;

· Список вільних i-вузлів;

· та інше.

Звернімо увагу! Вільний простір на диску утворює пов'язаний список вільних блоків. Цей список зберігається у суперблоці.

Елементами списку є масиви з 50 елементів (якщо блок = 512 байт, то елемент = 16 біт):

· В елементах масиву №№1-48 записані номери вільних блоків простору блоків файлів з 2 до 49.

· У №0 елементі міститься покажчик на продовження списку, а

· В останньому елементі (№ 49) міститься покажчик на вільний елемент у масиві.

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

Оскільки розмір масиву - 50 елементів, то можливі дві критичні ситуації:

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

2. Коли вміст елементів масиву вільних блоків вичерпався (у разі нульовий елемент масиву дорівнює нулю) Якщо цей елемент нулю не дорівнює, це означає, що є продовження масиву. Це продовження зчитується у копію суперблоку в оперативній пам'яті.

Список вільнихi-вузлів. Це буфер, що складається із 100 елементів. У ньому знаходиться інформація про 100 номерів i-вузлів, які вільні на даний момент.

Суперблок завжди знаходиться у ОЗУ

Þ всі операції (звільнення та заняття блоків та i-вузлів відбуваються в ОЗУ Þ мінімізація обмінів із диском.

Але!Якщо вміст суперблоку не буде записано на диск і вимкнено живлення, то виникнуть проблеми (невідповідність реального стану файлової системи та вмісту суперблоку). Але це вже вимога до надійності апаратури системи.

Зауваження. У файлових системах UFS для підвищення стійкості підтримується кілька копій суперблоку (по одній копії на групу циліндрів)

Область індексних дескрипторів

Це масив описів файлів, званих i -вузлами (i -node ). (64-х байтні?)

Кожен індексний описник (i -вузол) файлу містить:

· Тип файлу (файл/каталог/спеціальний файл/fifo/socket)

· Атрибути (права доступу) – 10

· Ідентифікатор власника файлу

· Ідентифікатор групи-власника файлу

· Час створення файлу

· Час модифікації файлу

· Час останнього доступу до файлу

· Довжина файлу

· Кількість посилань до даного i-вузла з різних каталогів

· Адреси блоків файлу

!Зверніть увагу. Тут немає імені файлу

Розглянемо докладніше як організована адресація блоків, у яких розміщено файл. Отже, у полі з адресами знаходяться номери перших десяти блоків файлу.

Якщо файл перевищує десять блоків, починає працювати наступний механізм: 11-й елемент поля містить номер блоку, в якому розміщені 128(256) посилань на блоки даного файлу. У тому випадку, якщо файл ще більше - то використовується 12й елемент поля - він містить номер блоку, в якому міститься 128 (256) номерів блоків, де кожен блок містить 128 (256) номерів блоків файлової системи. А якщо файл ще більший, то використовується 13 елемент – де глибина вкладеності списку збільшена ще на одиницю.

Таким чином, ми можемо отримати файл розміром (10+128+128 2 +128 3)*512.

Це можна уявити в наступному вигляді:

Адреса 1-го блоку файлу

Адреса 2-го блоку файлу

Адреса 10-го блоку файлу

Адреса блоку непрямої адресації (блоку з 256 адресами блоків)

Адреса блоку 2-ї непрямої адресації (блоку з 256 адресами блоків з адресами)

Адреса блоку 3-ї непрямої адресації (блоки з адресами блоків з адресами блоків з адресами)

Захист файлу

Тепер звернемо увагу на ідентифікатори власника та групи та біти захисту.

В ОС Unix використовується трирівнева ієрархія користувачів:

Перший рівень – всі користувачі.

Другий рівень – групи користувачів. (Всі користувачі поділені на групи.

Третій рівень – конкретний користувач (Групи складаються з реальних користувачів). У зв'язку з цією трирівневою організацією користувачів кожен файл має три атрибути:

1) Власник файлу. Цей атрибут пов'язаний з одним користувачем, який автоматично призначається системою власником файлу. Власником можна стати за промовчанням, створивши файл, а також є команда, яка дозволяє міняти власника файлу.

2) Захист доступу до файлу. Доступ до кожного файлу обмежується за трьома категоріями:

· Права власника (що може робити власник з цим файлом, у загальному випадку - не обов'язково все, що завгодно);

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

· Решта користувачів системи;

За цими трьома категоріями регламентуються три дії: читання з файлу, запис у файл і виконання файлу (у мнемоніці системи R,W,Xвідповідно). У кожному файлі за цими трьома категоріями визначено - який користувач може читати, який писати, а хто може запускати його як процес.

Організація каталогів

Каталог з погляду ОС - це звичайний файл, в якому розміщені дані про всі файли, що належать каталогу.

Елемент каталогу складається з двох полів:

1) номер i-вузла (порядковий номер у масиві i-вузлів) і

2) ім'я файлу:

Кожен каталог містить два спеціальні імені: '.' - сам каталог; '..' - батьківський каталог.

(Для кореневого каталогу батько посилається на нього самого.)

У загальному випадку, в каталозі можуть неодноразово зустрічатися записи, що посилаються на той самий i -вузол, але в каталозі не можуть зустрічатися записи з однаковими іменами. Тобто із вмістом файлу може бути пов'язана довільна кількість імен. Це називається зв'язуванням. Елемент каталогу, що відноситься до одного файлу називається зв'язком.

Файли існують незалежно від елементів каталогів, а зв'язки в каталогах дійсно вказують на фізичні файли. Файл "зникає" коли видаляється останній зв'язок, що вказує на нього.

Отже, щоб отримати доступ до файлу на ім'я,операційна система

1. знаходить це ім'я в каталозі, що містить файл,

2. отримує номер i-вузла файлу,

3. за номером знаходить i- вузол в області i-вузлів,

4. з i-вузла отримує адреси блоків, в яких розташовані дані файлу,

5. за адресами блоків зчитує блоки з даних.

Структура дискового розділу в EXT2 FS

Весь простір розділу поділяється на блоки. Блок може мати розмір від 1, 2 або 4 кілобайти. Блок є адресованою одиницею дискового простору.

Блоки в свою область об'єднуються в групи блоків. Групи блоків у файловій системі та блоки всередині групи нумеруються послідовно, починаючи з 1. Перший блок на диску має номер 1 і належить групі з номером 1. Загальна кількість блоків на диску (розділ диска) є дільником об'єму диска, вираженого в секторах. А число груп блоків має ділити число блоків, оскільки остання групаблоків може бути повною. Початок кожної групи блоків має адресу, яка може бути отримана як ((номер групи - 1)* (число блоків у групі)).

Кожна група блоків має однакову будову. Її структура представлена ​​у таблиці.

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

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

Після суперблоком розташовано опис групи блоків (Group Descriptors). Цей опис містить:

Адреса блоку, що містить бітову карту блоків (block bitmap) цієї групи;

Адреса блоку, що містить бітову карту індексних дескрипторів (inode bitmap) цієї групи;

Адреса блоку, що містить таблицю індексних дескрипторів (inode table) цієї групи;

Лічильник числа вільних блоків у цій групі;

Число вільних індексних дескрипторів у цій групі;

Число індексних дескрипторів у цій групі, які є каталогами

та інші дані.

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

Файлова система Ext 2 характеризується:

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

Внутрішнє представлення файлів

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

Індексні дескриптори файлів

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

Індексний дескриптор файлу містить таку інформацію:

- Тип і права доступу до файлу.

Ідентифікатор власника файлу (Owner Uid).

Розмір файлу у байтах.

Час останнього звернення файлу (Access time).

Час створення файлу.

Час останньої модифікації файлу.

Час видалення файлу.

Ідентифікатор групи (GID).

Лічильник числа зв'язків (Links count).

Число блоків, які займає файл.

Флагіфайла (File flags)

Зарезервовано для ОС

Вказівники на блоки, в яких записані дані файлу (приклад прямої та непрямої адресації на рис.1)

Версія файлу (для NFS)

ACL файлу

ACL каталогу

Адреса фрагмента (Fragment address)

Номер фрагменту (Fragment number)

Розмір фрагмента (Fragment size)

Каталоги

Каталоги є файлами.

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

Коли який-небудь процес використовує шлях до файлу, ядро ​​шукає в каталогах відповідний номер індексного дескриптора. Після того, як ім'я файлу було перетворено в номер індексного дескриптора, цей дескриптор поміщається в пам'ять і потім використовується в наступних запитах.

Додаткові можливості EXT2 FS

На додаток до стандартних можливостей Unix, EXT2fs надає деякі додаткові можливості, зазвичай не підтримуються файловими системами Unix.

Файлові атрибути дозволяють змінювати реакцію ядра при роботі з наборами файлів. Можна встановити атрибути на файл або каталог. У другому випадку, файли, створювані в цьому каталозі, успадковують ці атрибути.

Під час монтування системи можуть бути встановлені деякі особливості, пов'язані з файловими атрибутами. Опція mount дозволяє адміністратору вибрати особливості створення файлів. У файловій системі з особливостями BSD, файли створюються з тим же ідентифікатором групи, як і у батьківського каталогу. Особливості System V дещо складніші. Якщо у каталогу біт setgid встановлений, то створювані файли насідають ідентифікатор групи цього каталогу, а підкаталоги успадковують ідентифікатор групи і біт setgid. У протилежному випадку, файли і каталоги створюються з основним ідентифікатором групи викликаючого процесу.

У системі EXT2fs може використовуватися синхронна модифікація даних, подібна системі BSD. Опція mount дозволяє адміністратору вказувати щоб всі дані (індексні дескриптори, блоки бітів, непрямі блоки і блоки каталогів) записувалися на диск синхронно при їх модифікації. Це може бути використане для досягнення високої потності запису інформації, але також призводить до погіршення продуктивності. Насправді, ця функція зазвичай не використовується, так як крім погіршення продуктивності, це може призвести до втрати даних користувачів, які не позначаються при перевірці файлової системи.

EXT2fs дозволяє при створенні файлової системи вибрати розмір логічного блоку. Він може бути розміром 1024, 2048 або 4096 байт. Використання блоків великого об'єму призводить до прискорення операцій введення/виводу (оскільки зменшується кількість запитів до диска), і, отже, до меншого переміщення головок. З іншого боку, використання блоків великого об'єму призводить до втрати дискового простору. Зазвичай останній блок файлу використовується не повністю для зберігання інформації, тому зі збільшенням обсягу блоку, підвищується обсяг теряного дискового простору.

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

EXT2fs слідкує за станом файлової системи. Ядро використовує окреме поле в суперблокі для індикації стану файлової системи. Якщо файлова система змонтована в режимі read/write, її стан встановлюється як "Not Clean". Якщо ж вона демонтована або змонтована заново в режимі read-only, її стан встановлюється в "Clean". Під час завантаження системи і перевірці стану файлової системи, ця інформація використовується для визначення необхідності перевірки файлової системи. Ядро також поміщає в це поле деякі помилки. При визначенні ядром невідповідності, файлова система позначається як "Erroneous". Програма перевірки файлової системи тестує цю інформацію для перевірки системи, навіть якщо її стан є насправді "Clean".

Тривале ігнорування тестування файлової системи іноді може призвести до деяких труднощів, тому EXT2fs включає два методи для регулярної перевірки системи. У суперблоку міститься лічильник монтування системи. Цей лічильник збільшується кожен раз, коли система монтується в режимі read/write. Якщо його значення досягає максимального (воно також зберігається в суперблоку), то програма тестування файлової системи запускає її перевірку, навіть якщо її стан є "Clean". Останній час перевірки і максимальний інтервал між перевірками також зберігається в суперблоку. Коли ж досягається максимальний інтервал між перевірками, то стан файлової системи ігнорується і запускається її перевірка.

Оптимізація продуктивності

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

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

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

При записі даних у файл, EXT2fs заздалегідь розміщує до 8 суміжних блоків при розміщенні нового блоку. Такий метод дозволяє досягти високої продуктивності при сильній завантаженості системи. Це також дозволяє розміщувати суміжні блоки для файлів, що вкорочує їхнє подальше читання.

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

Файлові системи: визначення

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

Яким чином використовувалися комп'ютери до того, як було винайдено файлову систему? Інформатика - як наукова дисципліна - зафіксувала той факт, що довгий час управління даними здійснювалося за допомогою структурування у рамках алгоритмів, закладених у конкретних програмах. Таким чином, один із критеріїв файлової системи – це наявність стандартів, однакових для більшості програм, що використовують доступ до даних.

Принципи роботи файлових систем

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

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

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

Файлові системи працюють не без помилок. Можливі деякі збої у створенні роботи з блоками даних. Але вони здебільшого не критичні. Як правило, немає проблем з тим, як виправити файлову систему, усунути помилки. У Windows для цього, зокрема, передбачені вбудовані програмні рішення, доступні для будь-якого користувача. Наприклад, програма "Перевірка диска".

Різновиди

Які види файлових систем можна назвати найпоширенішими? Ймовірно, насамперед ті, що використовуються найпопулярнішою ОС для ПК у світі – Windows. Основні файлові системи Windows – це FAT, FAT32, NTFS та їх різні модифікації. Поряд із комп'ютерами популярність набули смартфони та планшети. Більшість із них, якщо говорити про глобальний ринок і не розглядати відмінності в технологічних платформах, керується ОС Android та iOS. Ці ОС використовують свої алгоритми роботи з даними, відмінні від тих, якими характеризуються файлові системи Windows.

Стандарти відкриті для всіх

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

Структура файлової системи

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

Один із ключових - Він являє собою ізольовану область даних, в якій можуть розміщуватись файли. Структура каталогів – ієрархічна. Що це означає? Один або кілька каталогів можуть розміщуватись в іншому. Який, у свою чергу, входить до складу "вищого". Найголовнішим вважається кореневий каталог. Якщо говорити про принципи, на базі яких працює файлова система Windows - 7, 8, XP або іншої версії, - кореневим каталогом вважається логічний диск, що позначається буквою - як правило, C, D, E (але можна налаштувати будь-яку, що є в англійському алфавіті). Що ж до, наприклад, ОС Linux, то там кореневим каталогом виступає магнітний носій загалом. У цій та інших ОС, заснованих на її принципах – до таких відноситься Android – логічні диски не використовуються. Чи можна зберігати файли без каталогів? Так. Але це дуже зручно. Власне, комфорт у користуванні ПК – одна з причин впровадження у файлових системах принципу розподілу даних за каталогами. Називатися вони можуть по-різному. У Windows каталоги називаються папками, в Linux - переважно так само. Але традиційна назва каталогів, що використовується протягом багатьох років, в цій ОС - "директорії". Як і попередніх Windows і Linux ОС - DOS, Unix.

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

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

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

Імена файлів та каталогів у різних системах

Якщо домовитися, що файли - це все-таки складові елементивідповідних їм систем, то варто розглянути їхню базову структуру. Що можна відзначити насамперед? Для зручності організації доступу до них переважно сучасних системуправління даними передбачена дворівнева структура іменування файлів. Перший рівень – це назва. Другий – розширення. Візьмемо для прикладу музичний файл Dance.mp3. Dance – це назва. Mp3 – розширення. Перше покликане розкривати для користувача зміст файлу (а для програми бути орієнтиром для швидкого доступу). Друге означає тип файлу. Якщо він MP3, то неважко здогадатися, що йдеться про музику. Файли з розширенням Doc – це, як правило, документи, Jpg – картинки, Html – веб-сторінки.

Каталоги, своєю чергою, мають однорівневу структуру. Вони мають тільки назву, розширення немає. Якщо говорити про відмінності між різними видамисистем управління даними, то перше, потім слід звернути увагу - це реалізовані в них принципи іменування файлів і каталогів. Щодо ОС Windows специфіка така. У найпопулярнішій у світі операційній системі файли можуть мати назву будь-якою мовою. Максимальна довжина, щоправда, у своїй обмежена. Конкретний її інтервал залежить від системи управління даними, що використовується. Зазвичай, це значення в межах 200-260 символів.

Загальне правило всім ОС і відповідних їм систем управління даними - у одному каталозі що неспроможні перебувати файли з однаковими найменуваннями. У Linux при цьому є якась "лібералізація" цього правила. В одному каталозі можуть бути файли з однаковими літерами, але у різному регістрі. Наприклад, Dance.mp3 та DANCE.mp3. У Windows це неможливо. Ці ж правила встановлені також і в аспекті розміщення каталогів усередині інших.

Адресація файлів та каталогів

Адресація файлів та каталогів - найважливіший елементвідповідної системи. У ОС Windows її формат користувача може виглядати так: C:/Documents/Music/ - це доступ до каталогу Music. Якщо нас цікавить якийсь конкретний файл, то адреса може мати такий вигляд: C:/Documents/Music/Dance.mp3. Чому "користувацький"? Справа в тому, що на рівні програмно-апаратної взаємодії компонентів комп'ютера структура доступу до файлів набагато складніша. Файлова система визначає розташування файлових блоків і взаємодіє з ОС здебільшого в рамках прихованих від користувача операцій. Однак у користувача ПК дуже рідко виникає потреба користуватися іншими форматами "адрес". Практично завжди доступ до файлів здійснюється у зазначеному стандарті.

Порівняння файлових систем для Windows

Ми вивчили загальні принципифункціонування файлових систем Розглянемо тепер особливості найпоширеніших їх видів. У Windows найчастіше використовують такі файлові системи, як FAT, FAT32, NTFS, і навіть exFAT. Перша в цьому ряду вважається застарілою. Вона, разом з тим, довгий час була певним флагманом індустрії, але зі зростанням технологічності ПК її можливості перестали задовольняти запити користувачів та потреби в ресурсах з боку програмного забезпечення.

Покликана замінити FAT файлова система – це FAT32. Як вважають багато IT-експертів, зараз вона найпопулярніша, якщо говорити про ринок ПК під керуванням Windows. Вона найчастіше використовується при зберіганні файлів на жорстких дисках та флешках. Також можна відзначити, що ця система керування даними досить регулярно використовується в модулях пам'яті різних цифрових пристроїв- Телефони, фотоапарати. Основна перевага FAT32, яку виділяють IT-експерти, таким чином, Незважаючи на те, що створена була дана файлова система компанією Microsoft, працювати з даними в рамках закладених у ній алгоритмів можуть більшість сучасних ОС, включаючи ті, що інстальовані на зазначені типи цифрової техніки.

Є система FAT32 і ряд недоліків. Насамперед можна відзначити обмеження на розмір одного взятого файлу - він не може бути більшим за 4 Гб. Також у системі FAT32 не можна вбудованими засобами Windows задати логічний диск, розмір якого був би більшим за 32 Гб. Але це можна зробити, встановивши додаткове спеціалізоване програмне забезпечення.

Інша популярна системаУправління файлами, розроблене Microsoft - це NTFS. Як вважають деякі IT-експерти, за більшістю параметрів вона перевершує FAT32. Але ця теза справедлива, якщо йдеться про роботу комп'ютера під керуванням Windows. Система NTFS не настільки універсальна як FAT32. Особливості її функціонування роблять використання файлової системи не завжди комфортним, зокрема, в мобільних пристроях. Одна з ключових переваг NFTS – надійність. Наприклад, у випадках, коли у жорсткого диска раптово відключається живлення, ймовірність того, що файли пошкодяться, зводиться до мінімуму завдяки передбаченим у NTFS алгоритмам дублювання доступу до даних.

Одна з нових файлових систем від Microsoft - exFAT. Найкращим чиномвона адаптована для флешок. Базові принципи роботи в ній ті ж, що й у FAT32, але є також і значна модернізація в деяких аспектах: наприклад, немає жодних обмежень за розміром одиничного файлу. Разом з тим система exFATЯк відзначають багато IT-експертів, серед тих, що мають низьку універсальність. На комп'ютерах під керуванням ОС, відмінних від Windows, працювати з файлами під час використання exFAT може бути утруднена. Більш того, навіть у деяких версіях Windows, таких як XP, дані на дисках, відформатованих за алгоритмами exFAT, можуть не читатися. Потрібно встановити додатковий драйвер.

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

Як визначити, яка саме файлова система – exFAT або NTFS, а може бути, FAT32 – оптимальна для використання у конкретних випадках? Рекомендації IT-фахівців загалом такі. Можна задіяти два основні підходи. Відповідно до першого слід розмежовувати типові файлові системи жорсткихдисків, а також ті, що краще адаптовані до флеш-накопичувачів. FAT і FAT32, як вважають багато фахівців, краще підходять для "флешок", NTFS - для вінчестерів (в силу технологічних особливостейроботи з даними).

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

Файлові системи для Mac

Інша популярна програмно-апаратна платформа на світовому ринку комп'ютерної техніки – Macintosh від Apple. ПК цієї лінійки працюють під керуванням операційної системи Mac OS. Які особливості організації роботи з файлами в комп'ютерах Mac? У найсучасніших ПК від Apple використовується файлова система Mac OS Extended. Раніше у комп'ютерах Mac роботаз даними керувалася відповідно до стандартів HFS.

Головне, що можна відзначити в аспекті її характеристик: на диску, яким керує файлова система Mac OS Extended, можуть розміщуватися файли дуже великого обсягу - може йтися про кілька мільйонів терабайт.

Файлова система в Android-пристроях

Найпопулярніша ОС для мобільних пристроїв - вигляді електронної техніки, яка не поступається за популярністю ПК, - це Android. Як здійснюється управління файлами на девайсах відповідного типу? Зазначимо перш за все, що дана операційна система - фактично "мобільна" адаптація ОС Linux, яка завдяки відкритому програмного коду, може бути модифікована з перспективою використання найширшого спектру пристроїв. Тому керування файлами в мобільних девайсахпід керуванням Android здійснюється в цілому за тими ж принципами, що й у Linux. Деякі з них ми відзначили вище. Зокрема, керування файлами в Linux здійснюється без поділу носія на логічні диски, як це відбувається у Windows. Що ще цікавого містить у собі файлова система Android?

Кореневим каталогом в Android, як правило, виступає область даних, що називається /mnt. Відповідно, адреса потрібного файлуможе виглядати приблизно так: /mnt/sd/photo.jpg. Крім того, є ще одна особливість системи управління даними, що реалізована в цій мобільній ОС. Справа в тому, що флеш-пам'ять девайса, як правило, класифікована на кілька розділів, таких як, наприклад, System або Data. При цьому спочатку заданий розмір кожного з них змінити не можна. Приблизну аналогію щодо даного технологічного аспекту можна виявити, згадавши, що не можна (якщо не використовувати спеціальне ПЗ) змінювати розмір логічних дисків у Windows. Він має бути фіксованим.

Ще одна цікава особливістьОрганізація роботи з файлами в Android - відповідна операційна система, як правило, записує нові дані в конкретну область диска - Data. Робота, наприклад, із розділом System у своїй не здійснюється. Тому, коли користувач задіє функцію скидання програмних налаштуваньсмартфона або планшета до рівня "заводських", то на практиці це означає, що файли, що записані в область Data, просто стираються. Розділ System ж, як правило, залишається незмінним. Більше того, будь-які коригування вмісту в System користувач, не маючи спеціалізованого ПЗ, здійснювати не може. Процедура, пов'язана з оновленням системної області носія в Android-пристрої, називається перепрошивкою. Не форматування, хоча обидві операції часто здійснюються одночасно. Як правило, перепрошивка застосовується з метою встановлення на мобільний пристрій новішої версії ОС Android.

Таким чином, ключові принципи, на базі яких працює файлова система Android - відсутність логічних дисків, а також жорстке розмежування доступу до системних і даних користувача. Не можна сказати, що цей підхід принципово відрізняється від того, що реалізований у Windows, проте, як вважають багато IT-експертів, в ОС від Microsoft для користувачів є дещо більша свобода в роботі з файлами. Втім, як вважають деякі фахівці, це не можна вважати однозначною перевагою Windows. "Ліберальний" режим в аспекті керування файлами задіяють, звичайно ж, не тільки користувачі, а й комп'ютерні віруси, До яких Windows дуже сприйнятлива (на відміну від Linux та її "мобільної" реалізації у вигляді Android). У цьому, як вважають експерти, полягає одна з причин того, що вірусів для Android-пристроїв настільки небагато - суто з технологічної точки зору вони не можуть повною мірою функціонувати в операційному середовищі, що працює за принципами суворого контролю доступу до файлів.