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

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

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

У Linux кореневий каталог називається дуже лаконічно - "/". Повні імена (шляхи) решти каталогів виходять з «/», якого дописуються праворуч імена послідовно вкладених друг в друга каталогів. Імена каталогів у дорозі також поділяються символом "/" ("слеш"). Наприклад, запис /home означає каталог «home» у кореневому каталозі («/»), а /home/user — каталог «user» у каталозі «home» (який, своєю чергою, у кореневому каталозі) 3 . Перелічені таким чином каталоги, що завершуються ім'ям файлу, становлятьповний шлях до файлу.

Відносний шлях будується так само, як і повний — перерахуванням через «/» всіх назв каталогів, що зустрілися під час руху до шуканого каталогу або файлу. Між повним шляхом і відносним є лише одне істотне відмінність: відносний шлях починається від поточного каталогу, тоді як повний шлях завжди починається від кореневого каталогу. Відносний шлях будь-якого файлу або каталогу у файловій системі може мати будь-яку конфігурацію: щоб дістатися до шуканого файлу можна рухатися як до кореневого каталогу, так і від нього. Linux розрізняє повний та відноснийшляхи дуже просто: якщо ім'я об'єкта починається на "/" - це повний шлях, у будь-якому іншому випадку - відносний.

Монтування

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

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

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

Для Linux найважливішою є коренева файлова система (root filesystem). Саме до неї потімбудуть підключатися (монтуватися) всі інші файлові системи інших пристроях. Зверніть увагу, що коренева файлова система теж монтується, але тільки не до іншої файлової системи, а до "самої Linux", причому точкою монтування служить "/" (кореневий каталог). Тому при завантаженні системи перш за все монтується коренева файлова система, а при зупинці вона розмонтується (в останню чергу).

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

Стандартні каталоги

У кореневому каталозі Linux-системи зазвичай перебувають лише підкаталоги зі стандартними іменами. Більше того, не тільки імена, а й тип даних, які можуть потрапити до того чи іншого каталогу, також регламентовані стандартом 5 . Цей стандарт досить послідовно дотримується у всіх Linux-системах: так, у будь-якій Linux ви завжди знайдете каталоги /etc, /home, /usr/bin і т. п. і зможете досить точно передбачити, що саме в них знаходиться.

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

Параметри монтування

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

1Файл - область даних, що має власне ім'я.

2Такий каталог називаютькореневим каталогом, оскільки він служить коренем дерева файловій системі (в математичному сенсі слів «дерево» та «корінь»).

3Дуже схожий спосіб запису повного шляху використовується в системах DOS і Windows, з тією різницею, що кореневий каталог позначається літерою пристрою з наступним двокрапкою, а в якості роздільника використовується символ "\" ("зворотний слеш").

4Це відрізняється від технології, що використовується в Windows або Amiga, де для кожного пристрою, на якому є файлова система, використовується свій кореневий каталог, позначений літерою, наприклад, «a», «c», «d» і т.д.