Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PR_СП_лекции_укр.doc
Скачиваний:
6
Добавлен:
22.04.2019
Размер:
697.34 Кб
Скачать

2 Використання файлової системи unix

2.1 Основні поняття

2.1.1 Типи та іменування файлів

Файлами є області пам'яті на зовнішньому носієві (як правило магнітному диску), призначені для зберігання даних.

Файли відрізняються від звичайних масивів тим, що

  • вони можуть змінювати свій розмір;

  • звернення до елементів цих масивів проводиться не за допомогою операції індексації [], а за допомогою спеціальних системних викликів і функцій;

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

Файли мають імена і організовані в ієрархічну деревовидну структуру з каталогів і простих файлів.

Усередині UNIX'а розрізняються разные типу файлів. Така відмінність пов'язана із способами управління структурою файлів і контролем за передачею в нього даних.

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

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

Спеціальні файли пристроїв - це файли, що забезпечують передачу даних відповідним пристроям. Типів таких пристроїв в UNIX чотири: познаковой передачі, передачі по блоках, raw blocks (що не буферизують) і терміналів введення/виводу. По спеціальному дозволу користувач може дістати доступ на запис або читання в спеціальні файли за допомогою інструкцій оболонки або через системні виклики з програми.

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

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

Символічне посилання (symbolic link) - це спеціальний файл, який містить шлях до іншого файлу.

У ОС UNIX підтримується три способи вказівки імен файлів:

Коротке ім'я. Ім'я, що не містить спеціальних метасимволів коса межа (/), є коротким ім'ям файлу. По короткому імені можна послатися на файли поточного каталога.

Відносне ім'я. Ім'я, що не починається з символу косої межі (/), але що включає такі символи. Воно посилається на файл щодо поточного каталога.

Абсолютне (повне) ім'я. Ім'я, що починається з символу косої межі (/). Воно посилається на файл щодо кореневого каталога.

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

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

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

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