Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

Файл



План:


Введення

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

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

В інформатики використовують наступне визначення: файл - пойменована послідовність байтів.

Робота з файлами реалізується засобами операційних систем.

Імена як у файлів мають і обробляються схожим чином:

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

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


1. Файлова система

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


2. Файл як об'єкт API операційної системи

Операційна система надає додаткам набір функцій і структур для роботи з файлами. Можливості операційної системи накладають додаткові обмеження на обмеження файлової системи. Подробиці не є предметом даної статті, зверніться до джерел, розробникам операційних систем, спеціалізованих сайтів. Наприклад [ [1] ]

3. Властивості файлу

В залежності від файлової системи, файл може володіти різним набором властивостей.

3.1. Файл

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

  • В FAT16 і FAT12 розмір імені файлу обмежений 8 символами (плюс 1 (крапка) плюс 3 символи розширення).
  • В VFAT обмеження 255 байт.
  • В FAT32, HPFS ім'я файлу обмежено 255 символами
  • В NTFS ім'я обмежена в деяких ОС 255 символів Unicode, по специфікації 32768 символів
  • В ext2 / ext3 обмеження 255 байт.

Крім обмежень файлової системи, інтерфейси операційної системи додатково обмежують набір символів, який допустимо при роботі з файлами.

  • Для MS-DOS в імені файлу допустимі тільки великі латинські букви, цифри. Неприпустимі пробіл, знак питання, зірочка, символи більше / менше, символ вертикальної риси. [1] При виклику системних функцій іменами файлів в нижньому або змішаному регістрі, вони приводяться до верхнього регістру.
  • Для Microsoft Windows в імені файлу дозволені великі і малі літери, цифри, деякі знаки пунктуації, пробіл. Заборонені символи > < | ? * / \ : " > < | ? * / \ : ".
  • Для GNU / Linux (з урахуванням можливості маскування) дозволені всі символи, крім / і байти, значення якого дорівнює нулю, тобто 0x00.

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


3.2. Розширення імені файлу

Розширення імені файлу (часто розширення файлу або розширення) як самостійний атрибут файлу існує в файлових системах FAT16, FAT32, NTFS, що використовуються операційними системами MS-DOS, DR-DOS, PC DOS, MS Windows і використовується для визначення типу файлу. Воно дозволяє системі визначити, яким додатком слід відкривати даний файл. За замовчуванням в операційній системі Windows розширення приховано від користувача.

В інших файлових системах розширення - умовність, частина імені, відокремлена найправішій точкою в імені.


3.3. Атрибути

В деяких файлових системах, таких як NTFS, передбачені атрибути (звичайно це бінарне значення "так" / "ні", які кодуються одним бітом). Практично атрибути не впливають на можливість доступу до файлів, для цього в деяких файлових системах існують права доступу.

Назва атрибуту переклад значення файлові системи операційні системи
READ ONLY тільки для читання в файл заборонено писати FAT32, FAT12, FAT16, NTFS, HPFS, VFAT DOS, OS / 2, Windows
SYSTEM системний критичний для роботи операційної системи файл FAT32, FAT12, FAT16, NTFS, HPFS, VFAT DOS, OS / 2, Windows
HIDDEN прихований файл ховається від показу, поки явно не сказано протилежне FAT32, FAT12, FAT16, NTFS, HPFS, VFAT DOS, OS / 2, Windows
ARCHIVE архівний (вимагає архівації) файл змінено після резервного копіювання або не був скопійований програмами резервного копіювання FAT32, FAT12, FAT16, NTFS, HPFS, VFAT DOS, OS / 2, Windows
SUID Установка користувацького ID виконання програми від імені власника ext2 Unix-like
SGID Установка групового ID виконання програми від імені групи (для каталогів: будь-який файл створений в каталозі з установленим SGID, отримає задану групу-власника) ext2 Unix-like
Sticky Bit липкий біт спочатку наказував ядру не вивантажувати завершився програму з пам'яті відразу, а лише через деякий час, щоб уникнути постійного завантаження з диска найбільш часто використовуваних програм, в даний час в різних ОС використовується по різному ext2 Unix-like

3.4. Час

Для файлу можуть бути визначені такі тимчасові мітки:

  • Час створення
  • Час модифікації
  • Час останнього доступу

3.5. Власник і група файлу

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

3.6. Права доступу

В деяких файлових системах передбачена можливість для обмеження доступу користувачів до вмісту файлу

У UNIX-подібних операційних системах для файлів зазвичай виділяють три типи прав:

  • Право на запис
  • Право на читання
  • Право на виконання

Кожне право задається окремо для власника, для групи і для всіх інших. ACL дозволяють розширити цей список.

В операційних системах Windows NT при роботі з файловою системою NTFS права доступу задаються явно для користувачів або груп (або успадковуються від вищих об'єктів). Права в себе включають:

  • Право на читання
  • Право на запис
  • Право на виконання
  • Право на видалення
  • Право на зміну атрибутів та власника
  • Право на створення, видалення підпапок (для папок)
  • Право на читання прав доступу

Кожне право може бути задано як дозволом, так і забороною, заборона має більший пріоритет, ніж дозвіл.


4. Операції з файлом

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

4.1. Операції, пов'язані з відкриттям файлу

Залежно від операційної системи ті чи інші операції можуть бути відсутні.

Зазвичай виділяють додаткові суті, пов'язані з роботою з файлом:

  • хендлер файлу, або дескриптор (описувач). При відкритті файлу (у випадку, якщо це можливо), операційна система повертає число (або покажчик на структуру), за допомогою якого виконуються всі інші файлові операції. За їхніми завершенню файл закривається, а хендлер втрачає сенс.
  • файловий покажчик. Число, яке є зміщенням відносно нульового байта у файлі. Зазвичай за цією адресою здійснюється читання / запис, у випадку, якщо виклик операції читання / запису не передбачає зазначення адреси. При виконанні операцій читання / запису файловий вказівник зміщується на число прочитаних (записаних) байт. Послідовний виклик операцій читання таким чином дозволяє прочитати весь файл не піклуючись про його розмір.
  • файловий буфер. Операційна система (і / або бібліотека мови програмування) здійснює кешування файлових операцій у спеціальному буфері (ділянці пам'яті). При закритті файлу буфера скидається.
  • режим доступу. Залежно від потреб програми, файл може бути відкритий на читання та / або запис. Крім того, деякі операційні системи (та / або бібліотеки) передбачають режим роботи з текстовими файлами. Режим зазвичай вказується при відкритті файлу.
  • режим загального доступу. У разі многозадачной операційної системи можлива ситуація, коли кілька програм одночасно хочуть відкрити файл на запис та / або читання. Для регулювання цього існують режими загального доступу, що вказують на можливість здійснення спільного доступу до файлу (наприклад, файл в який проводиться запис може бути відкритий для читання іншими програмами - це стандартний режим роботи log-файлів).
Операції
  • Відкриття файлу (звичайно в якості параметрів передається ім'я файлу, режим доступу та режим спільного доступу, а як значення виступає файловий хендлер або дескриптор), крім того зазвичай є можливість у разі відкриття на запис вказати на те, чи повинен розмір файлу змінюватися на нульовій .
  • Закриття файлу. Як аргумент виступає значення, отримане при відкритті файлу. При закритті все файловий буфер скидаються.
  • Запис - в файл поміщаються дані.
  • Читання - дані з файлу поміщаються в область пам'яті.
  • Переміщення покажчика - покажчик переміщається на вказане число байт вперед / назад або переміщається за вказаною зміщення відносно початку / кінця. Не всі файли дозволяють виконання цієї операції (наприклад, файл на стрічковому накопичувачі може не "вміти" перемотувати назад).
  • Скидання буферів - вміст файлових буферів з незаписаних в файл інформацією записується. Використовується зазвичай для вказівки на завершення запису логічного блоку (для збереження даних у файлі на випадок збою).
  • Отримання поточного значення файлового покажчика.

4.2. Операції, не пов'язані з відкриттям файлу

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

В залежності від файлової системи, носія інформації, операційною системою частина операцій може бути недоступна.

Список операцій з файлами
  • Відкриття для зміни файлу
  • Видалення файлу
  • Перейменування файлу
  • Копіювання файлу
  • Перенесення файлу на іншу файлову систему / носій інформації
  • Створення сімлінка або хардлінка
  • Отримання або зміна атрибутів файлу

5. Типи файлів

В різних операційних та / або файлових системах можуть бути реалізовані різні типи файлів; крім того, реалізація різних типів може відрізнятися.

  • "Звичайний файл" - файл, що дозволяє операції читання, записи, переміщення всередині файлу
  • Каталог ( англ. directory - Алфавітний довідник) або директорія - файл, що містить записи про вхідні в нього файлах. Каталоги можуть містити записи про інші каталогах, утворюючи деревоподібну структуру.
  • Жорстка посилання ( англ. hardlink , Часто використовується калька "хардлінк") - в загальному випадку, одна і та ж область інформації може мати кілька імен. Такі імена називають жорсткими посиланнями (хардлінкамі). Після створення хардлінка сказати де "справжній" файл, а де хардлінк неможливо, тому що імена рівноправні. Сама область даних існує до тих пір, поки існує хоча б одне з імен. Хардлінкі можливі тільки на одному фізичному носії.
  • Символьна посилання (сімлінк, софтлінк) - файл, що містить в собі посилання на інший файл або директорію. Може посилатися на будь-який елемент файлової системи, у тому числі, і розташований на іншому фізичному носії.

6. Особливості реалізації

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

В деяких файлових системах (наприклад, у файловій системі OS VAX VMS) файли мають версію, що дозволяє відкривати старіші варіанти даного файлу. У файловій системі Mac OS ( HFS) у файлів є два "потоку": потік даних (де зберігається вміст файлу) і потік ресурсів, який зберігає інформацію про програму, призначеної для відкривання цього файлу і, можливо, деяку інформацію для цієї програми. В NTFS файл може містити, крім основного, скільки завгодно іменованих потоків.


7. Проблема точного визначення поняття файл

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

Питання "Що таке файл?" неодноразово викликав в луна-конференції ru.os.cmp війни флейму, через що потрапив в FAQ конференції з формулюванням [2] : "Q48: що таке файл? A48: ЗНОВУ?"

Примітки

  1. Огляд файлових систем FAT, HPFS і NTFS - support.microsoft.com/kb/100108/ru /
  2. FAQ конференції ru.os.cmp - groups.google.ru/group/fido7.ru.os.cmp/msg/d0392be2b9267405

Цей текст може містити помилки.

Схожі роботи | скачати

Схожі роботи:
Фіанна Файл
Текстовий файл
Двійковий файл
Заголовний файл
Регістровий файл
Файл реєстрації
© Усі права захищені
написати до нас
Рейтинг@Mail.ru