ЗМІСТ:
Файлова система – порядок, що визначає спосіб організації, зберігання та найменування даних на носіях інформації. Файлова система визначає формат вмісту та фізичного зберігання інформації, яку прийнято групувати у вигляді файлів. Конкретна файлова система визначає розмір імені файлу (теки), максимальний можливий розмір файлу і розділу, набір атрибутів файлу. Деякі файлові системи надають сервісні можливості, наприклад, розмежування доступу або шифрування файлів.
Коли прикладна програма звертається до файлу, вона не має жодного уявлення про те, яким чином розташована інформація в конкретному файлі, так само, як і те, на якому фізичному типі носія він записаний. Все, що знає програма – це ім’я файлу, його розмір і атрибути. Ці дані вона отримує від драйвера файлової системи. Саме файлова система встановлює, де і як буде записаний файл на фізичному носії.
З точки зору операційної системи весь диск являє собою набір кластерів. Драйвери файлової системи організовують кластери в файли і теки (які насправді є файлами, що містять список файлів у цій теці). Ці ж драйвери відстежують, які з кластерів у даний час використовуються, які вільні, а які позначені як несправні.
Рис. 1 Схема розміщення кластерів на носії інформації
Кластер – логічна одиниця зберігання даних в таблиці розміщення файлів, що об’єднує групу секторів. Як правило, це найменше місце на диску, яке може бути виділено для зберігання файлу.
Проте файлова система не обов’язково безпосередньо пов’язана з фізичним носієм інформації. Існують віртуальні файлові системи, а також мережеві файлові системи, які є лише способом доступу до файлів, що знаходяться на віддаленому комп’ютері.
Файл – це впорядкована сукупність даних, що зберігається на диску і займає іменовану область зовнішньої пам’яті.
Файл обов’язково має ім’я і може мати будь-який розмір інформації (максимальна довжина імені та розміру файлу обмежується властивостями конкретної файлової системи). Файл також має набір атрибутів.
Розширення імені файлу – послідовність символів, що додаються до імені файлу і призначені для ідентифікації типу (формату) файлу. Це один з найпоширеніших способів, за допомогою яких користувач або програмне забезпечення комп’ютера може визначити тип даних, що зберігаються у файлі.
У деяких файлових системах, таких як NTFS, передбачені атрибути (зазвичай це бінарні значення «так»/«ні», які кодуються одним бітом). Практично атрибути не впливають на можливість доступу до файлів, для цього у файлових системах існує поняття «права доступу».
Рис.2 Атрибути файлу в Windows 7 (NTFS)
У різних операційних та/або файлових системах можуть бути реалізовані різні типи файлів. Крім того, реалізація різних типів може відрізнятися.
Звичайний файл – файл, що дозволяє операції читання, запису, переміщення всередині файлу.
Каталог або директорія – файл, що містить записи про файли, що до нього входять. Каталоги можуть містити записи про інші каталоги, утворюючи деревоподібну структуру.
Жорстке посилання – в загальному випадку, одна і та ж область інформації може мати кілька імен. Такі імена називають жорсткими посиланнями (хардлінками). Після створення хардлінка сказати де «справжній» файл, а де хардлінк неможливо, тому що імена рівноправні. Сама область даних існує до тих пір, поки існує хоча б одне з імен. Хардлінки можливі тільки на одному фізичному носії.
Символьне посилання – файл, що містить в собі посилання на інший файл або директорію. Може посилатися на будь-який елемент файлової системи, у тому числі, і розташований на іншому фізичному носії.
Практично завжди файли на дисках об’єднуються в каталоги.
У найпростішому випадку всі файли на диску зберігаються в одному каталозі. Така однорівнева схема використовувалася в першій версії MS-DOS 1.0. Ієрархічна файлова система із вкладеними один в одного каталогами вперше з’явилася в Multics, потім в UNIX.
Каталоги на різних дисках можуть утворювати кілька окремих дерев, як в DOS/Windows, або ж об’єднуватися в одне дерево, спільне для всіх дисків, як в UNIX-подібних системах. Слід звернути увагу на використання слешів у файлових системах Windows, UNIX і UNIX-подібних операційних системах (У Windows використовується зворотний слеш «\», а в UNIX і UNIX-подібних операційних системах простий слеш «/»).
Рис.3 Структура каталогів Windows XP та Mac OS X
За призначенням файлові системи можна класифікувати на нижче наведені категорії:
для носіїв з довільним доступом (наприклад, жорсткий диск): FAT, NTFS, HPFS, ext2, ext3, HFS, HFS+, XFS;
для носіїв з послідовним доступом (наприклад, магнітні стрічки): QIC;
для оптичних носіїв – CD і DVD: ISO9660, HFS, UDF;
віртуальні файлові системи: AEFS;
мережеві файлові системи: NFS, CIFS, SSHFS, GmailFS та ін.;
для флеш-пам’яті: YAFFS, ExtremeFFS, exFAT.
Основні функції будь-якої файлової системи націлені на вирішення наступних завдань:
найменування файлів;
програмний інтерфейс роботи з файлами для програм;
відображення логічної моделі файлової системи на фізичну організацію сховища даних;
організація файлової системи щодо збоїв живлення, помилок апаратних і програмних засобів;
вміст параметрів файлу, необхідних для правильної його взаємодії з іншими об’єктами системи (ядро, програми та ін.).
У багатокористувацьких системах з’являється ще одне завдання: захист файлів одного користувача від несанкціонованого доступу іншого користувача, а також забезпечення спільної роботи з файлами, наприклад, при відкритті файлу одним з користувачів, для інших цей же файл тимчасово буде доступний в режимі "тільки читання".
FAT (File Allocation Table – таблиця розміщення файлів) – класична архітектура файлової системи, яка через свою простоту все ще широко використовується для карт пам’яті.
Існує три версії FAT – FAT12, FAT16 і FAT32. Вони відрізняються розрядністю записів в дискову структуру, тобто кількістю біт, відведених для зберігання номера кластера. FAT12 застосовувалась для дискет, FAT16 – для дисків малого обсягу. На основі FAT була розроблена нова файлова система exFAT (extended FAT), яка використовується переважно для флеш-накопичувачів.
У файловій системі FAT суміжні сектори диска об’єднуються в одиниці, які називаються кластерами. Кількість секторів в кластері може дорівнювати 1 або ступеню двійки. Для зберігання даних файлу відводиться ціле число кластерів (мінімум один). Наприклад, якщо розмір файлу складає 40 байт, а розмір кластера 4 кБайт, то реально зайнятий інформацією файлу буде лише 1% відведеного для нього місця. Для уникнення подібних ситуацій доцільно зменшувати розмір кластерів, а для скорочення обсягу адресної інформації та підвищення швидкості файлових операцій – навпаки.
Рис.4 Запис файлів на FAT16 та FAT32
Простір FAT32 логічно поділений на три суміжні області:
зарезервована область. Містить службові структури, які належать завантажувальному запису розділу (Partition Boot Record – PBR, на відміну від Master Boot Record – головного запису завантаження диску; тож PBR часто некоректно називається завантажувальним сектором) і використовуються при ініціалізації тому;
область таблиці FAT, що містить масив індексних покажчиків (осередків), що відповідають кластерам області даних. Зазвичай на диску представлено дві копії таблиці FAT з метою підвищення надійності;
область даних, де власне записано вміст файлів, а також так звані метадані – інформація щодо імен файлів і папок, їх атрибутів, часу створення і зміни, розмірів і розміщення на диску.
Головний завантажувальний запис (master boot record, MBR) – код і дані, необхідні для подальшого завантаження операційної системи і розташований в першому фізичну секторі жорсткого диску або іншому пристрої зберігання інформації.
MBR містить невеликий фрагмент виконуваного коду, таблицю розділів (partition table) і спеціальну сигнатуру. Функцією MBR є переведення на той розділ жорсткого диска, з якого потрібно виконувати подальший код (зазвичай – завантажувати ОС).
GUID Partition Table (GPT) є стандартним форматом розміщення таблиць розділів на фізичному жорсткому диску. Він є частиною EFI – стандарту, запропонованого Intel на зміну BIOS. EFI використовує GPT там, де BIOS використовує MBR.
FAT32 – остання версія файлової системи FAT та поліпшення попередньої версії, відомої як FAT16. Вона була створена, щоб подолати обмеження на розмір тому в FAT16, дозволяючи при цьому використовувати MS-DOS і зберігши формат. FAT32 використовує 32-розрядну адресацію кластерів.
Максимально можливе число кластерів в FAT32 рівне 268 435 445, що дозволяє використовувати томи (логічні диски) обсягом до 8 ТБ.
Максимально можливий розмір файлу для тому FAT32 ~ 4 ГБ – це дуже важливий фактор для зміни файлової системи. FAT32 не підтримує встановлення дозволів на доступ до файлів і папок і деякі інших функцій сучасних файлових систем. Всі ці причини призвели до того, що зараз спостерігається тенденція відмови від FAT32 на користь більш сучасних файлових систем, таких як NTFS, Ext2/Ext3.
Перешкодою на шляху відмови від FAT32 і переходу на інші файлові системи на флеш-накопичувачах є продуктивність. У FAT32 є ряд переваг (принаймні над NTFS) у швидкості запису та читання/копіювання даних.
exFAT (Extended FAT – «розширена FAT») – файлова система, призначена головним чином для флеш-накопичувачів.
Основними перевагами exFAT перед попередніми версіями FAT є:
зменшення кількості перезаписів одного і того ж сектора, що дуже важливо для флеш-накопичувачів, у яких комірки пам’яті необоротно зношуються після певної кількості операцій запису. Це була основна причина розробки ExFAT;
теоретичний ліміт на розмір файлу (16 ексбібайт);
максимальний розмір кластера збільшено до 225 байт;
поліпшення розподілу вільного місця за рахунок введення біт-карти вільного місця, що може зменшувати фрагментацію диска;
відсутність ліміту на кількість файлів в одній директорії;
введена підтримка списку прав доступу.
NTFS (New Technology File System) – стандартна файлова система для сімейства операційних систем Microsoft Windows.
NTFS підтримує систему метаданих і використовує спеціалізовані структури даних для зберігання інформації про файли для поліпшення продуктивності, надійності та ефективності використання дискового простору.
NTFS має вбудовані можливості розмежовувати доступ до даних для різних користувачів і груп користувачів, а також призначати квоти (обмеження на максимальний обсяг дискового простору). NTFS використовує систему протоколювання для підвищення надійності файлової системи.
Протокольована файлова система – файлова система (ФС), у якій ведеться журнал, що зберігає список змін і в певній мірі допомагає зберегти цілісність файлової системи при збоях.
HFS (Hierarchical File System) – файлова система, розроблена Apple Computer для комп’ютерів зі встановленою операційною системою Mac OS.
HFS + є покращеною версією HFS, з підтримкою файлів великого розміру (32-бітна адресація замість старої 16-бітної) і використовує кодування Unicode для імен файлів і каталогів. HFS + підтримує імена довжиною до 255 символів формату UTF-16 і багатопотокові файли подібно NTFS.
Third Extended File System (ext3 або ext3fs) – протокольована файлова система, яка використовується в операційних системах на ядрі Linux, є файловою системою за замовчуванням у багатьох дистрибутивах. Файлова система ext3 може підтримувати файли розміром до 1 ТБ.
Віртуальна файлова система (VFS) – рівень абстракції поверх конкретної реалізації файлової системи. Метою VFS є забезпечення однакового доступу клієнтським додаткам до різних типів файлових систем.
Наприклад,VFS може бути використана для відкритого доступу до локальних і мережевих пристроїв зберігання даних без використання спеціального клієнтського додатку. Вона може бути використана для усунення відмінностей між файловими системами Windows, Mac OS і Unix так, що додатки можуть отримати доступ до файлів на локальних файлових системах, не знаючи тип файлової системи, до якої вони отримують доступ. VFS визначає інтерфейс між ядром і конкретною файлової системою. Таким чином, можна легко додавати підтримку нових типів файлових систем для ядра.
Рис.5 Схема роботи віртуальної файлової системи
Форматування диска – процес розмітки пристроїв зберігання. Існують різні способи цього процесу.
Саме форматування полягає в створенні (формуванні) структур доступу до даних, наприклад структур файлової системи. При цьому, вся інформація, що знаходиться на носії втрачається або знищується. У процесі форматування також може перевірятися цілісність носія.
Форматування жорсткого диска включає в себе три етапи:
Форматування диска на низькому рівні (низькорівневе форматування). При цьому процесі на жорсткому диску створюються фізичні структури: доріжки, сектори, керуюча інформація. Цей процес виконується заводом-виробником на пластинах, які не містять інформації.
Розбиття на розділи. Цей процес розбиває обсяг вінчестера на логічні диски (C, D, і т. д.). Цей етап виконується засобами операційної системи і метод розбиття залежить від операційної системи.
Високорівневе форматування. Цей процес також контролюється операційною системою і залежить як від типу операційної системи, так і від утиліти, яка використовується для форматування. Процес записує логічні структури, відповідальні за правильне зберігання файлів, а також системні завантажувальні файли на початок диску. Це форматування можна розділити на два види: швидке і повне. При швидкому форматуванні перезаписується лише таблиця файлової системи, при повному – спочатку здійснюється верифікація (перевірка) поверхні накопичувача, а вже потім проводиться запис таблиці файлової системи.
Рис.6 Утиліта для форматування від Windows
Дефрагментація – процес оновлення і оптимізації логічної структури розділу диска з метою упорядкування послідовності кластерів. Після дефрагментації прискорюється читання і запис файлів, а отже і робота програм.
Довгі файли займають декілька кластерів. Якщо запис проводиться на незаповнений диск, то кластери, що належать одному файлу, записуються підряд. Якщо диск переповнений, на ньому може не бути цілісної області, достатньої для розміщення файлу. Проте, файл все-таки запишеться, якщо на диску багато дрібних областей, сумарний розмір яких достатній для запису. У цьому випадку файл записується у вигляді декількох фрагментів.
Рис.7 Схематичне зображення фрагментації диску
Питання для перевірки:
Яким чином організовується збереження даних на носії інформації?
Назвіть функції файлової системи.
Що таке «кластер»?
Охарактеризуйте поняття «файл».
Які існують вимоги до назви файлу?
Що характеризує «розширення файлу»?
Перерахуйте сучасні файлові системи.
Назвіть основні відмінності файлової системи Fat від NTFS.
Охарактеризуйте віртуальну файлову систему.
Які операції можна виконувати над файловою системою?
Охарактеризуйте процес дефрагментації диску. З якою метою виконують дефрагментацію?
Охарактеризуйте процес форматування диску. Назвіть етапи форматування.
Баглай Р.Є. Обчислювальна техніка та програмування [фондові лекції] / Баглай Р.Є. (електронний підручник у форматі pdf).
Войтюшенко Н. М., Інформатика і комп’ютерна техніка: навч. пос. [для сутд. вищ. навч. закл.]/ Н.М. Войтюшенко, А.І.Остапець. – К.: Центр учбової літератури, 2009. – 564 с. (електронний підручник у форматі pdf).
Маценко В.Г. Обчислювальна техніка та програмування [навчальний посібник] / Маценко В.Г. – Чернівці:ЧНУ, 2010. – 112 с. (електронний варіант, формат djv)
Співаковський О.В. Інформаційні технології в юридичній діяльності: базовий курс: [навчальний посібник]. / О.В.Співаковський, М.І. Шерман, В.М. Стратонов, В.В. Лапінський – Херсон: ХДУ, 2012. – 220 с.