Статті Технології 04.07.2025 о 12:00 comment views icon

Файлові системи: цифрова магія від кавоварки до Тік-Току

author avatar

Владислав Василенко

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

Файлові системи: цифрова магія від кавоварки до Тік-Току
Розділ Технології виходить за підтримки

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

Що таке Файлові системи?

Для початку потрібно зрозуміти один факт. Коли користується застосунками Windows Explorer, Диспетчером файлів чи Finder — це лише вершина айсберга. Більшість не бачить невидимі «шестерні» роботи цих застосунків. Навіть більше, без файлових систем ОС просто б не існували, бо як не парадоксально, вони також складаються з файлів.

Файлова система (File System) — це спосіб організації даних, які застосовує операційна система для збереження інформації у вигляді файлів на різноманітних носіях інформації (HDD/SSD, дискети, флеш накопичувачі тощо). Потрібно розуміти, що ця технологія не складається з одного терміну, а це збірник інших важливих функцій. Тому існує багато додаткових понять, які повинні розкрити нашого «головного героя».

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

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

Для відстеження розміщення файлів у всередині кластерів застосовується метод під назвою Індексація. Необхідна для фізичного запамʼятовування розміщення файлу на диску та подальшого швидкого пошуку, відкриття, редагування чи видалення. Приклад з життя: бібліотека з книгою-довідником, в якій вказано шафа, полиця та відповідне місце книги. Зазвичай, у файлових системах застосовують таблиці, які зберігають різну інформацію про файл. У exFAT вона називається File Allocation Table, тоді як у NTFS — Master File Table. З часом зʼявилися складніші B-Tree/ B+Tree структури, що забезпечують кращу підтримку носіїв з великим обʼємом памʼяті.

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

Забезпечення Безпеки

Як вже згадували, у метаданих зберігаються права доступу до файлів завдяки механізму Контролю доступу. Створення, читання, перегляд, видалення являються звичайними властивостями файлів та папок. Тому необхідно чітко вказувати, якому з користувачів дозволено робити такі дії: локальний користувач, Адміністратор або певний застосунок (антивірус). Часто необхідно для захисту важливих системних даних від випадкового видалення, аудиту та логування доступу.

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

Збільшення продуктивності та стабільності

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

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

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

Приблизно так виглядає фрагментований диск у застосунках по дефрагментації ФС

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

Цікавим являється механізм Copy-on-Write (CoW) — це метод управління спільними ресурсами. Якщо кілька програм відкривають одні дані, для кожної з них не потрібно створювати власну копію «батьківського» файлу. Зате коли один із застосунків змінить щось у файлі, тоді гарантується створення окремої копії саме для неї.

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

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

Загалом, існує кілька основних файлових систем для звичайних користувачів компʼютерів та смартфонів. А саме: APFS, exFAT, NTFS, ext4 та F2FS.

Як можете здогадатися, бренд Apple завжди любить щось своє. Не стала виключенням APFS або Apple File System. Була представлена у 2017 році та використовується у всіх актуальних операційних системах та пристроях: iOS, macOS, tvOS та watchOS.

exFAT (Extended File Allocation Table) представлена у 2006 році як заміна для відверто застарілої FAT32, яка відома немолодим користувачам тим, що не підтримувала файли розміром більше 4 ГБ. Зараз exFAT застосовується як файлова система для переносних засобів даних (карти памʼяті, зовнішні диски, USB флеш накопичувач), бо підтримується більшістю операційних систем без особливих проблем.

NTFS (New Technology File System) була розроблена Microsoft на заміну FAT32 для власної операційної системи Windows ще у 1993 році. Повний перехід до неї тривав багато років, точніше, аж до виходу Windows XP у 2001р. Використовується й досі для створення та функціонування системних дисків у останній Windows 11.

У пристроях з операційною системою Linux (наприклад, у ArchLinux) зазвичай встановлено файлову систему ext4 (Fourth Extended File System). Представлена у 2006р. на заміну ext3. Вона також використовується в Android OС. Google на додачу застосовує F2FS (Flash-Friendly File System) розроблену компанією Samsung у 2012 році. Причиною створення являється краща підтримка NAND накопичувачів та оптимізація для збільшення швидкості читання/запису даних.

Фундаментальні одиниці зберігання даних

Переходимо з теоретичних до більш практичних термінів, які можна побачити на будь-якому компʼютері без особливого пошуку. Сектором називають найменшою фізичною (апаратною) одиницею зберігання даних на ваших HDD/SSD. Розмір сектору залишить від самих записуючих пристроїв: від 512 байт до 4096 байт (4 KБ) в сучасних системах.

Колегою сектора по роботі являється Кластер (Блок) — це найменша логічна одиниця у файловій системі для виділення простору для файлів з даними. Кластер зазвичай обʼєднує кілька секторів в один (8 секторів по 512 байт дорівнюють 1 кластеру на 4096 байт), але й можуть бути однаковими по розмірах. Далі йдуть Директорії (Папки), Томи (Диск). Це все теж логічні одиниці. Диск С, на якому стоїть ОС Windows, добрий візуальний приклад такої структури.

Особливістю обох одиниць збереження даних виступає використання всього обʼєму на маленький файл. На скриншотах нижче ви можете побачити простий приклад, де файл RDP важить 3 КБ. Ось тільки на одному диску з кластером на 4 КБ, що більше на 1 КБ. Віддавати 25% памʼяті не дуже хочеться. А ось з кластером на 32 МБ (32768 КБ) втрачається 99,99% потенційного місця на інший файл.

Однаковий файл на різних кластерах (1024 або 32768 КБ) займає різну кількість пам’яті на диску.

Логічно було вважати, що потрібно вибрати найменш кластер та форматувати диск. Іншою стороною медалі відкриває термін Внутрішня фрагментація. Наприклад, треба зберегти 50 МБ (51200 КБ) пісню. Кластери обʼємом по 4 КБ. В результаті отримаємо 51200/4 ‎ = 12 800 кластерів потрібно витратити. Тепер вмикаєте пісню і чуєте, що вона дещо «підлагує». Причиною цього величенька таблиця, яка зберігає дані переходів у пошуках кожного фрагмента. Тому менші кластери вимагають більшої кількості таблиць зберігання файлів.

Тести найкращого вибору кластерів

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

Звичайне вікно Форматування. Для його відкриття натискаємо правою клавішою миші на диск у Провіднику (не на диск С), вибираємо Форматувати.

Візьмемо файлову систему exFAT, яка найбільше сумісна серед інших та дозволяє користуватися диском на більшості пристроїв користувача: Windows, Linux, MacOS, Android чи iOS/iPadOS. Візьмемо такі розміри кластерів: 64 КБ, 128 КБ, 256 КБ, 512 КБ, 1024 КБ (1 МБ), 8192 КБ (8 МБ) та 32768 КБ (32 МБ). Відразу скажемо, що останні два значення краще не застосовувати не з причини швидкості, а виділенню великої кількості памʼяті на потенційні дрібні файли. Про це казали в попередньому розділі.

Тестувати будемо у застосунку Atto Disk Benchmark. В ній ми вказуємо швидкість Читання та Запису на диск з урахуванням різного обʼєму Буферу Вводу/Виводу. Таким чином побачимо потенційну різницю у передачі дрібних, середніх та великих файлів. Базовий розмір файлу встановлено на 16 ГБ, щоб імітувати великі файли ігор чи фільми/серіали гарної якості.

Форматування тестового SSD відбувається близько однієї години для кожного розміру кластеру.

Результати тестів перед вами у вигляді графіків. В деяких випадках фіксувались аномальні падіння продуктивності. Точну їхню природу не зафіксовано, проте навіть після повторного тестового кола результати могли як змінюватися, так і залишатися тими ж самим. Наприклад, у записі кластера на 256 КБ різке падіння при 24 МБ буфері. При повторному тестуванні результат змінився на кращий, проте відбулося падіння на подібних буферах, що для кластерів 128 КБ та 32768 КБ. Однак, залишити таке випадкове падіння вниз необхідно.

Розглянемо два загальні графіки тестування. Почнемо з Читання даних. Загалом, результати на графіку для всіх кластерів відрізняються не дуже сильно. Десь трішки краще, десь гірше. Різницю до 10 МБ/с важко помітити. Ось тільки добре видно, що для зчитування дрібних файлів краще підходять кластери на 64 та 128 КБ.

Перейдемо до Запису файлів. Тут все дещо складніше, оскільки деякі «гравці перегонів» показують падіння продуктивності на схожій «ділянці траси». А саме, на буфері 64 КБ – 1 МБ для кластера 32768 КБ, 32-512 КБ у 128 КБ та 256 КБ. Зниження продуктивності також фіксувалося на 48 МБ для кластерів 512, 1024, 8192 КБ. Тест в такому випадку робився повторно, падіння все ще було.

Після тестування можемо сказати, що явно фаворита немає. Читання даних не виявилося проблемою для них, а із записом — таки існують. На тестовому SSD стабільно добрі результати показати такі кластери на 512, 1024 та 8192 КБ. Подивимось на них детальніше:

  • Кластер на 8192 КБ показує менші швидкості (на 100 МБ/с), ніж «менші побратими».
  • Кластер 1024 КБ показує менші швидкісні показники, ніж на 512 КБ.

Тільки проблемою останніх трьох кандидатів про яку казали раніше — дрібні файли будуть займати весь обʼєм. А найбільшу швидкодію виконують 64 та 128 КБ кластери, особливо для маленьких файлів. Тоді для них існує інша згадана вище проблема — високий рівень фрагментації зменшує надійність та довготривалу роботу пристрою.

Видно, що переможцем для більшості покупців стане кластер на 256 КБ. Як не дивно, Windows за замовчуванням ставить саме це значення. Однак, абсолютно ніхто не забороняє встановлювати інший об’єм.

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

 

Розділ Технології виходить за підтримки

Favbet Tech – це ІТ-компанія зі 100% українською ДНК, що створює досконалі сервіси для iGaming і Betting з використанням передових технологій та надає доступ до них. Favbet Tech розробляє інноваційне програмне забезпечення через складну багатокомпонентну платформу, яка здатна витримувати величезні навантаження та створювати унікальний досвід для гравців.


Що думаєте про цю статтю?
Голосів:
Файно є
Файно є
Йой, най буде!
Йой, най буде!
Трясця!
Трясця!
Ну такої...
Ну такої...
Бісить, аж тіпає!
Бісить, аж тіпає!
Loading comments...

Повідомити про помилку

Текст, який буде надіслано нашим редакторам: