Файл


Файл

Файл (англ. file) — блок информации на внешнем запоминающем устройстве компьютера, имеющий определённое логическое представление (начиная от простой последовательности битов или байтов и заканчивая объектом сложной СУБД), соответствующие ему операции чтения-записи (см. ниже) и, как правило, фиксированное имя (символьное или числовое), позволяющее получить доступ к этому файлу и отличить его от других файлов (см. ниже).

Работа с файлами реализуется средствами операционных систем. Многие операционные системы приравнивают к файлам и обрабатывают сходным образом и другие ресурсы:

Содержание

История

Файл перфокарт
Два жёстких диска машины IBM 305

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

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

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

Файловая система

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

Файл как объект API операционной системы

Операционная система предоставляет приложениям набор функций и структур для работы с файлами. Возможности операционной системы накладывают дополнительные ограничения на ограничения файловой системы. С точки зрения API файл — объект, по отношению к которому могут быть применены функции этого API. На уровне API уже не существенно, существует ли файл как объект файловой системы или является, например, устройством ввода/вывода.

Свойства файла

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

Имя файла

В большинстве файловых систем имя файла используется для указания, к какому именно файлу производится обращение. В различных файловых системах ограничения на имя файла сильно различаются: в FAT16 и FAT12 размер имени файла ограничен 8.3 знаками (8 на имя и 3 на расширение); в других системах имя файла ограничено обычно в 255 байт; в NTFS имя ограничено в некоторых ОС 255 символами Unicode (по спецификации — 32 768 символов).

Помимо ограничений файловой системы, интерфейсы операционной системы дополнительно ограничивают набор символов, который допустим при работе с файлами.

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

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

Расширение имени файла

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

В остальных файловых системах расширение — условность, часть имени, отделённая самой правой точкой в имени.

Атрибуты

В некоторых файловых системах, таких как 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

Время

Для файла могут быть определены временные метки создания, модификации и последнего доступа.

Владелец и группа файла

В некоторых файловых системах предусмотрено указание на владельца файла и группу-владельца.

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

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

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

Каждое право задаётся раздельно для владельца, для группы и для всех остальных. ACL позволяют расширить этот список.

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

Каждое право может быть задано как разрешением, так и запретом, запрет имеет больший приоритет, чем разрешение.

Операции с файлом

Условно можно выделить два типа операций с файлом — связанные с его открытием, и выполняющиеся без его открытия. Операции первого типа обычно служат для чтения/записи информации или подготовки к записи/чтению. Операции второго типа выполняются с файлом как с «объектом» файловой системы, в котором файл является мельчайшей единицей структурирования.

Операции, связанные с открытием файла

В зависимости от операционной системы те или иные операции могут отсутствовать.

Обычно выделяют дополнительные сущности, связанные с работой с файлом:

  • хэндлер файла, или дескриптор (описатель). При открытии файла (в случае, если это возможно), операционная система возвращает число (или указатель на структуру), с помощью которого выполняются все остальные файловые операции. По их завершению файл закрывается, а хэндлер теряет смысл.
  • файловый указатель. Число, являющееся смещением относительно нулевого байта в файле. Обычно по этому адресу осуществляется чтение/запись, в случае, если вызов операции чтения/записи не предусматривает указание адреса. При выполнении операций чтения/записи файловый указатель смещается на число прочитанных (записанных) байт. Последовательный вызов операций чтения таким образом позволяет прочитать весь файл не заботясь о его размере.
  • файловый буфер. Операционная система (и/или библиотека языка программирования) осуществляет кэширование файловых операций в специальном буфере (участке памяти). При закрытии файла буфер сбрасывается.
  • режим доступа. В зависимости от потребностей программы, файл может быть открыт на чтение и/или запись. Кроме того, некоторые операционные системы (и/или библиотеки) предусматривают режим работы с текстовыми файлами. Режим обычно указывается при открытии файла.
  • режим общего доступа. В случае многозадачной операционной системы возможна ситуация, когда несколько программ одновременно хотят открыть файл на запись и/или чтение. Для регуляции этого существуют режимы общего доступа, указывающие на возможность осуществления совместного доступа к файлу (например, файл в который производится запись может быть открыт для чтения другими программами — это стандартный режим работы log-файлов).
Операции
  • Открытие файла (обычно в качестве параметров передается имя файла, режим доступа и режим совместного доступа, а в качестве значения выступает файловый хэндлер или дескриптор), кроме того обычно имеется возможность в случае открытия на запись указать на то, должен ли размер файла изменяться на нулевой.
  • Закрытие файла. В качестве аргумента выступает значение, полученное при открытии файла. При закрытии все файловые буферы сбрасываются.
  • Запись — в файл помещаются данные.
  • Чтение — данные из файла помещаются в область памяти.
  • Перемещение указателя — указатель перемещается на указанное число байт вперёд/назад или перемещается по указанному смещению относительно начала/конца. Не все файлы позволяют выполнение этой операции (например, файл на ленточном накопителе может не «уметь» перематываться назад).
  • Сброс буферов — содержимое файловых буферов с незаписанной в файл информацией записывается. Используется обычно для указания на завершение записи логического блока (для сохранения данных в файле на случай сбоя).
  • Получение текущего значения файлового указателя.

Операции, не связанные с открытием файла

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

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

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

Типы файлов

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

  • «Обыкновенный файл» — файл, позволяющий операции чтения, записи, перемещения внутри файла
  • Каталог (англ. directory — алфавитный справочник) или директория — файл, содержащий записи о входящих в него файлах. Каталоги могут содержать записи о других каталогах, образуя древовидную структуру.
  • Жёсткая ссылка (англ. hardlink, часто используется калька «хардлинк») — в общем случае, одна и та же область информации может иметь несколько имён. Такие имена называют жёсткими ссылками (хардлинками). После создания хардлинка сказать где «настоящий» файл, а где хардлинк невозможно, так как имена равноправны. Сама область данных существует до тех пор, пока существует хотя бы одно из имён. Хардлинки возможны только на одном физическом носителе.
  • Символьная ссылка (симлинк, софтлинк) — файл, содержащий в себе ссылку на другой файл или директорию. Может ссылаться на любой элемент файловой системы, в том числе, и расположенный на другом физическом носителе.

Особенности реализации

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

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

Проблема точного определения понятия «файл»

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

Вопрос «Что такое файл?» неоднократно вызывал в эхо-конференции ru.os.cmp волны флейма, из-за чего попал в FAQ конференции с формулировкой «Q48: что такое файл? A48: ОПЯТЬ?»[7]

См. также

Примечания

Логотип Викисловаря
В Викисловаре есть статья «файл»
  1. Popular Science Magazine, February 1950, page 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
  6. Обзор файловых систем FAT, HPFS и NTFS
  7. FAQ конференции ru.os.cmp



Wikimedia Foundation. 2010.

Синонимы:

Смотреть что такое "Файл" в других словарях:

  • файл — файл, а …   Русский орфографический словарь

  • файл — сущ., м., употр. сравн. часто Морфология: (нет) чего? файла, нет? файлу, (вижу) что? файл, чем? файлом, о чём? о файле; мн. что? файлы, (нет) чего? файлов, чем? файлам, (вижу) что? файлы, чем? файлами, о чём? о файлах 1. Файлом называется массив… …   Толковый словарь Дмитриева

  • файл — обложка Словарь русских синонимов. файл сущ., кол во синонимов: 8 • аудиофайл (1) • батник …   Словарь синонимов

  • файл — поименованная совокупность байтов, записанная на жёстком или гибком магнитном диске, в которой хранится отдельный элемент файловой системы, напр. документ Word или рисунок. Вся информация, записанная на магнитный диск, представлена блоками байтов …   Энциклопедия техники

  • файл — а; м. [англ. file] Информ. Совокупность взаимосвязанных блоков информации, распознаваемая компьютером как единое целое. ◁ Файловый, ая, ое. * * * файл (от англ. file, основного значения: подшивка бумаг, картотека), набор данных, совокупность… …   Энциклопедический словарь

  • Файл — совокупность связанных записей (кластеров), хранящихся во внешней памяти компьютера и рассматриваемых как единое целое. Обычно файл однозначно идентифицируется указанием имени файла, его расширения и пути доступа к файлу. Каждый файл состоит из… …   Финансовый словарь

  • ФАЙЛ — ФАЙЛ, в вычислительной технике, комплекс сохраняемых данных. Файл может содержать определенную информацию (адреса), документ или целую программу. Как правило, файлы хранятся на МАГНИТНОМ ДИСКЕ. Для этой цели также подходит магнитная лента или… …   Научно-технический энциклопедический словарь

  • ФАЙЛ — ФАЙЛ, а, муж. (спец.). В ЭВМ: поименованная область данных. Имя файла. Хранение файла. Текстовые файлы (предназначенные для чтения человеком). | прил. файловый, ая, ое. Файловые системы. Толковый словарь Ожегова. С.И. Ожегов, Н.Ю. Шведова. 1949… …   Толковый словарь Ожегова

  • ФАЙЛ — [англ. file подшивка, картотека] инф. совокупность данных на внешнем запоминающем устройстве, взаимосвязанных по каким л. признакам, обозначенных одним и тем же именем и относящихся к одной теме. Словарь иностранных слов. Комлев Н.Г., 2006. файл… …   Словарь иностранных слов русского языка

  • ФАЙЛ — (file) Собрание/комплекс взаимосвязанной информации в компьютере, хранящейся в его накопителе (cм.: резервная память (backing store) как единое целое. Файл может содержать программу, которая может быть скопирована в оперативную память (main store …   Словарь бизнес-терминов

  • файл — Идентифицированная совокупность экземпляров полностью описанного в конкретной программе типа данных, находящихся вне программы во внешней памяти и доступных программе посредством специальных операций. [ГОСТ 20886 85] файл Упорядоченный набор… …   Справочник технического переводчика

Книги

  • Файл ТМ, Грошев Николай. Роман пишется от лица полковника Департамента Галактической разведки, следующего в гиперпространстве к неизвестной точке. Полковник Шилов записывает историю своей жизни, начиная с 2038 года.… Подробнее  Купить за 199 руб
  • Файл ТМ, Николай Грошев. Роман пишется от лица полковника Департамента Галактической разведки, следующего в гиперпространстве к неизвестной точке. Полковник Шилов записывает историю своей жизни, начиная с 2038 года.… Подробнее  Купить за 164 руб электронная книга
  • Файл № 39, Ksi 12. Файл № 39, задание, которое она выполнила год назад. Она получала заказы на устранение тех или иных людей. Любых людей, девиз Организации был Неустранимых не бывает. Агод спустя самолично… Подробнее  Купить за 33.99 руб электронная книга
Другие книги по запросу «Файл» >>


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.