Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-90.101-109.111.118.127-128.doc
Скачиваний:
5
Добавлен:
17.09.2019
Размер:
866.3 Кб
Скачать

42. Типи файлів: звичайні файли, спеціальні файли, каталоги.

Звичайні файли

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

Спеціальні файли

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

При цьому імена спеціальних файлів можна використовувати практично всюди, де можна використовувати імена звичайних файлів. Наприклад, команда cp myfile / tmp / kuz перепише файл з ім'ям myfile до підкаталогу kuz робочого каталогу. У той же час, команда cp myfile / dev / console видасть вміст файлу myfile на системну консоль вашої установки.

Розрізняються два типи спеціальних файлів - блочні та символьних. Блочні спеціальні файли асоціюються з такими зовнішніми пристроями, обмін з якими проводиться блоками байтів даних, розміром 512, 1024, 4096 або 8192 байтів. Типовим прикладом подібних пристроїв є магнітні диски.

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

Каталог

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

Структура файлу-каталогу дуже проста. Фактично, каталог - це таблиця, кожен елемент якої складається з двох полів: номери i-вузла даного файлу в його файловій системі та імені файлу, яке пов'язане з цим номером (звичайно, цей файл може бути і каталогом). В будь-якому каталозі містяться два стандартних імені - "." і "..". Імені "." зіставляється i-вузол, який відповідає самому цього каталогу, а імені ".." - I-вузол, який відповідає "Батьківське" каталогу даного каталогу. "Батьківське" (parent) каталогом називається каталог, в якому міститься назва даного каталогу. Файли з іменами "first_file" і "second_file" - це різні файли з номерами i-вузлів 54 і 65 відповідно. Файл "second_again" представляє приклад так званої жорсткої посилання: він має іншу назву, але реально описується тим же i-вузлом, що й файл "second_file". Нарешті, останній елемент каталогу описує деякий інший каталог з ім'ям "dir2".

Цей останній файл, як і будь-який звичайний файл, зберігається у файловій системі як набір блоків запам'ятовуючого пристрою. Однак файлова система знає, що насправді це каталог зі структурою, контрольованої файловою системою. Тому файлів-каталогах відповідає особливий тип файлу (позначений в їх i-вузлах), по відношенню до якого можливе виконання тільки спеціального набору системних викликів: mkdir, яке виробляє новий каталог; rmdir, щоб віддалитися порожній (незаповнений) каталог; getdents, що дозволяє прочитати вміст зазначеного каталогу.

Запис у файли-каталоги здійснюється неявно при створенні і знищенні файлів і каталогів, однак читати з файлу-каталогу при наявності відповідних прав можна (приклад - стандартна утиліта ls, яка як раз і користується системним викликом getdents).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]