Файл


Файл (англ. file) — именованная область данных на носителе информации, используемая как базовый объект взаимодействия с данными в операционных системах.

Работа с файлами реализуется как правило с применением файловых систем, обеспечивающих организацию работы с файлами и абстракцию над носителями информации. Обычно выделяют исполняемые файлы (программы) и собственно файлы данных (например, текстовые файлы или медиаконтейнеры). Формат файла — способ организации данных внутри файла, позволяющий записывать в него информацию в соответствии с её смыслом и интерпретировать записанное. Многие операционные системы приравнивают к файлам и обрабатывают сходным образом и другие ресурсы; наиболее широкое использование понятия файла характерно для Unix-подобных операционных систем, реализующих концепцию «всё есть файл» (англ. everything is a file). В них файлами считаются не только области данных на томе, но и, в частности, физические устройства (порты или принтеры), виртуальные устройства (/dev/null, /dev/random, /dev/urandom и другие), потоки данных (например, именованные каналы), сетевые ресурсы, сокеты.

Слово англ. file происходит от лат. filum («нить, струна»).[1]Слово англ. file впервые применено к компьютерной системе хранения в 1950 году. Реклама памяти на запоминающих ЭЛТ фирмы RCA в журнале Popular Science[2] гласила:

…результаты бесчисленных вычислений можно держать «в картотеке» (англ. on file) и получать снова. Эта «картотека» теперь существует в запоминающей трубке, разработанной в лабораториях RCA. Она электрически сохраняет цифры, отправленные в вычислительную машину, и держит их в хранилище, заодно запоминая новые — ускоряя интеллектуальные решения в лабиринтах математики.

В 1952 году слово file отнесли к колоде перфокарт.[3] Поначалу словом file называли само устройство памяти, а не его содержимое (регистровый файл). Например, диски IBM 350, использовавшиеся, например, в машине IBM 305, назывались disk files[4]. Системы наподобие Compatible Time-Sharing System ввели концепцию файловой системы, когда на одном запоминающем устройстве существует несколько виртуальных «устройств памяти», что и дало слову «файл» современное значение. Имена файлов в CTSS состояли из двух частей, «основного имени» и «дополнительного имени» (последнее существует и поныне как расширение имени файла)[5][6].

По мере развития вычислительной техники, файлов в системах становилось всё больше. Для удобства работы с ними, их, как и другие данные, стали организовывать в структуры (тогда же появились символьные имена). Вначале это был простой массив, «привязанный» к конкретному носителю информации. В настоящее время наибольшее распространение получила древовидная организация с возможностью монтирования и вставки дополнительных связей (то есть ссылок). Соответственно, имя файла приобрело характер пути к файлу: перечисление узлов дерева файловой системы, которые нужно пройти, чтобы до него добраться.