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

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

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

Друга причина зберігати дані на диску, це те, що оперативна пам`ять набагато дорожче ніж повільніші, але місткі жорсткі диски. Фактично 16 Гб оперативної пам`яті буде коштувати стільки ж, скільки жорсткий диск на 2 Тб. Таким чином, ми бачимо, що оперативна пам`ять в 71 рази дорожче ніж HDD.

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

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

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

  • Все структура каталогів Linux, починаючи з кореня (/);
  • Конкретний формат розділу зберігання даних, наприклад, Ext3, Ext4, Btrfs, XFS і так далі. Ядро Linux підтримує більше 100 типів файлових систем, в тому числі дуже старих і нових. Кожен тип файлової системи використовує свої структури метаданих щоб організувати роботу з даними на диску;
  • Розділ або логічний тому, відформатований в певний тип файлової системи, який можна примонтировать до певної точки монтування.

Далі розглянемо як виконана організація файлової системи Linux і її основні функції.

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

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

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

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

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




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

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

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

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

структура каталогів

Набагато простіше знайти файли, якщо вони зберігаються невеликими групами, кожен на своєму місці, а не все в одній купі. Структуру файлової системи Linux можна представити у вигляді простої ієрархії. Всі каталоги знаходяться в кореневому каталозі (/) тому кожен адреса файлу починається з нього. Наприклад, / var / log / dmesg, / usr / share /, / bin.




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

Каталоги / bin, / dev, / etc, / lib, / root, / sbin не можуть бути примонтировать і повинні бути доступні ще до завантаження, так як в них знаходяться всі необхідні файли. Що стосується каталогів / media та / mnt, то вони повинні бути порожніми, оскільки це точки монтування для інших файлових систем. Решта каталоги можна сміливо монтувати пізніше, вони ніяк не вплинуть на запуск.

У декого не Unix операційних системах розділах присвоюються окремі літери, наприклад, C: або D :. У них кожен розділ буде мати окрему файлову систему. Щоб знайти потрібний файл на диску C: вам необхідно спочатку виконати команду C :, а потім шукати шлях до файлу.

У Linux все фізичні диски і розділи, обгризені в одну файлову структуру. Вона починається з кореня (/) в якому розташовані всі інші каталоги. Це працює тому що файлові системи / var, / home, / boot, / tmp і т д можуть перебувати на інших фізичних дисках. Навіть знімні диски підключаються в основну файлову систему.

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

Типи файлових систем

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

Linux може монтувати і читати такі файлові системи:

Основна причина чому вони підтримуються - це спроба організувати максимальну сумісність з іншими операційними системами. А ось основні файлові системи linux, які можна створювати:

  • btrfs;
  • cramfs;
  • ext2;
  • ext3;
  • ext4;
  • fat;
  • gfs2;
  • hfsplus;
  • minix;
  • msdos;
  • ntfs;
  • reiserfs;
  • vfat;
  • xfs.

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

Монтування файлових систем

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

Точка монтування - це звичайний каталог, як будь-яка інша частина файлової системи. Наприклад, домашня папка змонтована в каталог / home. І так далі.

Коренева файлова система ос Linux / підключається на ранньому етапі завантаження. Інші файлові системи монтуються системою ініціалізації, наприклад, SysVinit або Systemd. Точки монтування налаштовуються за допомогою файлу / etc / fstab. Також можна виконувати ручне монтування в Linux за допомогою команди mount. Каталог для монтування необов`язково повинен бути порожнім, він може містити файли, але тоді вони будуть просто приховані.

висновки

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

Поділися в соціальних мережах:

Схожі
Файлова система btrfsФайлова система btrfs
Файлова система zfsФайлова система zfs
Оптимальний обсяг оперативної пам`ятіОптимальний обсяг оперативної пам`яті
Як вибрати схдЯк вибрати схд
Розбивка диска для установки linuxРозбивка диска для установки linux
Огляд ext4 vs btrfs vs xfsОгляд ext4 vs btrfs vs xfs
Автоматичне монтування fstab і systemdАвтоматичне монтування fstab і systemd
Файлова система raw або як повернути ntfs або fat32?Файлова система raw або як повернути ntfs або fat32?
Як відновити файлову систему в fsckЯк відновити файлову систему в fsck
Файлова система raw - що це?Файлова система raw - що це?
» » Файлова система linux