Файл

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

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

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

На практиці це іменований блок інформації, який зберігається на носії інформації.

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

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

Історія[ред.ред. код]

Двійка твердих дисків системи IBM 305

Слово "файл" вперше було публічно використане в контексті зберігання даних комп'ютером в лютому 1950-го. В рекламі RCA (Radio Corporation of America) у журналі Popular Science[1] описуючи нову "запам'ятовуючу" вакуумну трубку, RCA ствреджували:

"...the results of countless computations can be kept "on file" and taken out again. Such a "file" now exists in a "memory" tube developed at RCA Laboratories. Electronically it retains figures fed into calculating machines, holds them in storage while it memorizes new ones - speeds intelligent solutions through mazes of mathematics."

В 1952 "файл" використовували для означення інформації що зберігалась на перфокартах.[2] Спочатку люди розглядали як файл відповідну апаратуру (а не вміст). Наприклад тверді диски комп'ютера IBM 350 називались "disk files".[3] Такі системи як Compatible Time-Sharing System ввели ідею файлової системи, яка керувала кількома віртуальними "файлами" на одному пристрої зберігання, надаючи терміну його сучасне значення. Імена файлів в CTSS мали дві частини, прочитне для користувача "основне ім'я", і "вторинне ім'я" яке вказувало на тип файла.[4] [5] Такий підхід до сьогодні зберігся в кількох операційних системах, включаючи Microsoft Windows. Хоча сучасний термін "регістровий файл" ілюструє раннє поняття файла, це поняття загалом зникло.

Файли в Unix[ред.ред. код]

В Unix існує 6 типів файлів

  1. Звичайний (regular)
  2. Каталог (directory)
  3. Файл зовнішнього пристрою.
  4. Канал з іменем (FIFO)
  5. Зв'язок (link)
  6. Сокети (socket)

Звичайний файл зустрічається найчастіше. Для операційної системи такий файл виглядає як проста послідовність байтів.

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

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

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

Сокети використовуються для взаємодії між процесами. Інтерфейс socket використовується, наприклад, для доступу до мережі TCP/IP.

Див. також[ред.ред. код]

Посилання[ред.ред. код]

  1. Журнал Popular Science, лютий 1950, сторінка 96
  2. Robert S. Casey, et al. Punched Cards: Their Applications to Science and Industry, 1952.
  3. Martin H. Weik. Ballistic Research Laboratories Report #1115. March 1961. pp. 314-331.
  4. Fernando J. Corbató et al. "An Experimental Time-Sharing System." May 3, 1962.
  5. Jerome H. Saltzer CTSS Technical Notes. Project MIT-LCS-TR016