Файлова система 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. Якщо у вас є питання, питайте в коментарях!
- Який ssd краще вибрати 2017
- Огляд ext4 vs btrfs vs xfs
- Як відновити файлову систему в fsck
- Файлова система raw - що це?
- Як вибрати схд
- Файлова система raw або як повернути ntfs або fat32?
- Як примонтировать флешку в linux
- Типи файлових систем для linux
- Шифрування дисків в linux
- Розбивка диска для установки linux
- Автоматичне монтування fstab і systemd
- Cтруктура файлової системи linux
- Робота з файловою системою linux
- Відмінність fat32 від ntfs
- Оптимальний обсяг оперативної пам`яті
- Файлова система btrfs
- Перевірка диска на биті сектори в linux
- Установка bodhi linux
- Файлова система xfs
- Форматування диска linux
- Файлова система zfs