Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСКМ лекції.docx
Скачиваний:
0
Добавлен:
13.08.2024
Размер:
7.28 Mб
Скачать
      • Звичайні файли

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

      • Каталоги

Каталоги – це файли, що містять імена звичайних файлів та підкаталогів, а також вказівники на ці файли та підкаталоги. Каталоги – це єдине місце у системі, де зафіксовані назви файлів. При використанні команди ls, яка відображає зміст каталогу, просто виводиться зміст файлу каталогу. Будь-якого звертання до самих файлів не відбувається. Якщо назву файлу змінюють (командою mv) так що файл залишається у тому ж каталозі, система змінює відповідний запис у файлі каталогу. Якщо файл переміщується в інший каталог того ж диску, то запис про файл переміщується у файл каталогу призначення. Якщо ж файл переміщується на інший диск, то система фізично переміщує сам файл на цей диск, та відображає ці зміни у відповідних файлах каталогів.

      • Каталоги та фізичні диски

Кожному файлу в Linux присвоюють унікальний номер, який називають індексом файлу (inode). Індекс зберігають у таблиці індексів (inode table), яка створюється при форматуванні диску. Кожен фізичний та логічний диск мають свою таблицю індексів. Індекс містить всю інформацію про файл, таку як тип файлу та розташування даних на диску. Тип прописаний в індексі може приймати три значення - звичайний файл, каталог, спеціальний файл.

Індекс з номером 1 присвоюється кореневому (root) каталогу і дає системі адресу розташування кореневого каталогу на диску. Кореневий каталог містить список файлів, назві каталогів та відповідних індексів.

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

1 .

1 ..

45 etc

230 dev

420 home

123 .profile

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

Зміст каталогу /home виглядає так:

420 .

1 ..

643 minny

Індекс біжучого каталогу (.) співпадає з індексом, вказаним для /home у кореневому каталогу. Індекс батьківського каталогу відповідає індексу кореневого каталогу.

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

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