Компьютерный файл - это ресурс для дискретной записи данных в компьютерное запоминающее устройство. Как слова могут быть записаны на бумаге, так и информация может быть записана в ПК. Файлы и файловая структура являются одной из основ в современной технологии.
Существуют разные типы компьютерных файлов, предназначенные для разных целей. Он может быть предназначен для хранения изображения, письменного сообщения, видео, компьютерной программы или множества других видов данных. Некоторые виды могут хранить несколько типов информации одновременно.
Используя компьютерные программы, человек может открывать, читать, изменять и закрывать файлы. Они могут быть открыты, изменены и скопированы произвольное количество раз.
Как правило, они организованы в систему, которая отслеживает их расположение на диске и обеспечивает доступ пользователя. Говоря научным языком, файловая система – это иерархическая структура хранения файлов.
Происхождение термина
Слово «файл» происходит от латинского filum («нить»). Этот термин начал использоваться в контексте компьютерного хранения еще в январе 1940 года. Тогда впервые таблицы функций были построены на основе их различий с большой эффективностью, либо в виде печатных таблиц, либо в виде набора перфокарт.
В феврале 1950 года в рекламе Radio Corporation of America (RCA), описывающей новую вакуумную трубку с «памятью», результаты бесчисленных вычислений, которые можно сохранять и удалять, были названы файлами. В 1952 году термин «файл» обозначал, в частности, информацию, хранящуюся на перфокартах.
Изменение сути термина
При раннем использовании базовое оборудование, а не содержимое, хранящееся на нем, обозначалось как «файл». Например, дисководы IBM 350 были названы «дисковые файлы». Примерно в 1961 году благодаря Burroughs MCP и MIT-совместимой системе разделения концепция «файловой системы», которая управляет несколькими виртуальными «файлами» на одном устройстве хранения, является источником современного обозначения этого слова. Хотя современный «регистр» демонстрирует раннюю концепцию этих объектов, его использование значительно сократилось. Определение файлов и файловой структуры в информатике сегодня имеет несколько другой контекст.
Содержимое объекта
Как выглядит структура файла в файловой системе? В большинстве современных операционных систем они организованы в одномерные массивы байтов. Формат каждого из них определяется содержимым, так как они являются исключительно контейнерами для данных, хотя на некоторых платформах формат обычно указывается расширением их имени. Это определяет правила, как байты должны быть организованы и интерпретированы осмысленно. Например, байты простого текстового файла (.txt в Windows) связаны с символами ASCII или UTF-8, в то время как байты изображения, видео и аудио интерпретируются иначе. Большинство типов файлов также выделяют несколько байтов для метаданных, что позволяет им нести основную информацию о себе.
Типы файлов данных в файловых структурах могут отличаться. Некоторые из них могут хранить произвольные (не интерпретируемые) специфичные данные вне формата объекта, но связанные с ним, например, расширенные атрибуты. В других системах это может быть сделано с помощью дополнительных данных или программных баз. Однако все эти методы более подвержены потере метаданных, чем форматы контейнерных и архивных файлов.
Размеры данных объектов
В любой момент времени файл может иметь размер, обычно выражаемый числом байтов, который указывает, сколько памяти связано с ним. В большинстве современных операционных систем размер может быть любым неотрицательным целым числом байтов, вплоть до системного предела. Многие старые ОС отслеживали только количество блоков или дорожек, занимаемых файлом на физическом устройстве хранения. В таких системах в программном обеспечении использовались другие методы для отслеживания точного количества байтов (например, CP/M использовала специальный управляющий символ Ctrl-Z для обозначения конца текстовых файлов).
Однако общее определение файла в файловой структуре не требует, чтобы его размер имел какое-либо реальное значение, если только данные в нем не соответствуют информации в пуле постоянного хранения. Особый случай - файл с нулевым байтом. Такие объекты могут быть вновь созданными файлами, в которые еще не было записано никаких данных, или они могут служить в качестве какого-либо флага в файловой системе, или являются случайными (результаты прерванных операций с диском).
Например, файл, на который указывает ссылка /bin/ls в типичной Unix-подобной системе, вероятно, имеет определенный размер, который редко изменяется. По сравнению с ним, /dev/null может иметь неопределенный размер. Это вводит в заблуждение, потому что последний объект на самом деле не является файлом. В Unix-подобных системах все ресурсы, включая устройства, доступны как файлы. Но все же существует реальное различие между ними - по сути, они ведут себя по-разному). И неопределенность размера является одним из проявлений этого.
Организация данных
Информация в компьютерном файле может состоять из небольших пакетов информации (часто называемых «записями» или «строками»), которые индивидуально отличаются, но имеют некоторые общие черты. В учебнике информатики для 7 класса «Файлы и файловые структуры» это подробно описано с примерами.
Например, электронная таблица о заработной плате в организации может содержать данные обо всех сотрудниках компании и сведениях об их заработной плате, каждая запись в ней касается только одного сотрудника, а все записи имеют общую черту связи (зарплата). Это очень похоже на размещение всей информации в определенном журнале, хранящемся в сейфе в офисе, в котором нет компьютера. Текстовый файл может содержать строки текста, соответствующие напечатанным строкам на листе бумаги. Альтернативно он может содержать произвольное двоичное изображение (BLOB) или исполняемый файл.
Как они организованы в программы?
Какую структуру образуют файлы в файловых системах? То, как информация группируется в файлах, полностью зависит от того, как она спроектирована. Это привело к множеству более или менее стандартизированных структур для всех возможных целей, от самых простых до самых сложных. Большинство компьютерных файлов используются компьютерными программами, которые создают, изменяют или удаляют их для собственного использования по мере необходимости. Программисты, которые создают программы, решают, какие файлы нужны, как их использовать и как называть (чаще всего).
В некоторых случаях компьютерные программы манипулируют файлами, которые становятся видимыми для пользователя компьютера. Например, в приложении обработки текстов пользователь манипулирует файлами документов, которые он лично называет. Хотя их содержимое организовано в формате, понятном программе обработки текста, пользователь может выбрать имя и местоположение файла и предоставить большую часть информации (например, слова и текст), которая будет храниться в нем.
Иерархия и архивы
По учебнику информатики, файлы и файловая структура предполагают следующую иерархию. Многие приложения упаковывают все свои объекты данных в один, называемый архивным, используя внутренние маркеры для определения различных типов информации, содержащейся в них. Преимущества архивного файла состоят в том, что он позволяет уменьшить количество объектов для более легкой передачи, уменьшить объем хранилища или просто организовать устаревшие данные. Файл архива должен быть распакован перед следующим использованием.
Основные операции, которые программы могут выполнять над файлом:
- Создать новый.
- Изменить права доступа и атрибуты.
- Открыть, что делает его содержимое доступным для программы.
- Читать данные из него.
- Записать данные в него.
- Закрыть файл, разрывая связь между ним и программой.
Как это работает на Windows и Unix?
Файловая структура ОС и операции с файлами могут быть различными. Объекты на компьютере можно создавать, перемещать, изменять, увеличивать, уменьшать и удалять. В большинстве случаев именно программы выполняют эти операции, но пользователь компьютера также может при необходимости управлять данными. Например, файлы Microsoft Word обычно создаются и изменяются программой Microsoft Word в ответ на пользовательские команды, но юзер также может перемещать, переименовывать или удалять эти файлы напрямую с помощью программы управления, такой как Windows Explorer (на компьютерах «Виндовс») или с помощью командной строки (CLI).
В Unix-подобных системах программы пользовательского пространства не работают напрямую на низком уровне с файлом. Только ядро имеет дело с ними, и оно обрабатывает все взаимодействия пользователя с файлами таким способом, который прозрачен для пространства пользователя. Операционная система обеспечивает уровень абстракции, и это означает, что взаимодействие с файлом из пространства пользователя происходит просто через его имя (вместо дескриптора).
Например, rm filename не удалит сам файл, а только ссылку на него. Этих ссылок может быть много, но когда все они удалены, ядро считает, что пространство памяти этого файла свободно перераспределяется. Оно обычно считается угрозой безопасности (из-за наличия программного обеспечения для восстановления файлов). Любая программа безопасного удаления использует функции пространства ядра (системы) для очистки этих данных.
Выявление и организация
В современных компьютерных системах доступ к файлам и файловой структуре обычно осуществляется с использованием их имен. В некоторых ОС имя связано с самим файлом. В других случаях он является анонимным, и на него указывают ссылки с именами. В последнем случае пользователь может идентифицировать имя ссылки с самим файлом, но это ложный аналог, особенно если существует несколько ссылок на один и тот же объект.
Файлы в файловой структуре (или ссылки на них) могут быть расположены в каталогах. Однако в более общем случае каталог может содержать либо список файлов, либо список ссылок на них. В рамках этого определения чрезвычайно важно, чтобы термин «файл» включал каталоги. Это допускает существование иерархий каталогов, то есть наличие подкаталогов.
Имя, которое ссылается на файл в каталоге, обычно должно быть уникальным. Другими словами, в нем не должно быть одинаковых названий. Однако в некоторых операционных системах оно может включать в себя спецификацию типа, которая означает, что каталог может содержать идентичное имя для более, чем одного типа объекта.
Как они располагаются на носителе?
Файлы и файловая система в логической структуре диска выглядят так. В средах, в которых имя объекта указано, оно и путь к его каталогу должны однозначно идентифицировать его среди всех других объектов в компьютерной системе - никакие два файла не могут иметь одинаковые имя и путь. Если объект является анонимным, именованные ссылки на него будут существовать в пространстве имен. В большинстве случаев любое имя будет ссылаться на ровно ноль или один файл. Однако любой объект может быть представлен в любом пространстве имен нулем, одним или несколькими именами.
Иерархия объектов
Большинство компьютеров организуют файлы в иерархии, используя папки, каталоги или каталоги. Концепция остается неизменной, независимо от используемой терминологии. Каждая папка может содержать произвольное количество файлов, а также может содержать другие папки, которые называются подпапками. Они могут содержать еще больше файлов и папок и т. д., выстраивая древовидную структуру, в которой одна «основная папка» (или «корневая» - название меняется, в зависимости от операционной системы) может содержать любое количество уровней других объектов. Папки могут иметь такие же названия, как файлы (кроме корневой, которая остается без имени). Их использование упрощает организацию файлов логическим способом.
Когда компьютер допускает использование папок, каждая из них, как и файл имеет не только собственное имя, но и путь, который определяет каталог, в которых он находится. В указании пути для разделения имен используется какой-то специальный символ - например, косая черта.
А ЧТО ВЫ ДУМАЕТЕ ОБ ЭТОМ?