Структура файла

Понятие файла

Введение

Лекция: Системы файлов

Файл – совокупность логически объединенных данных во внешней памяти. Управление файлами – одна из важных задач ОС, так как в виде файлов в системе хранится практически любая информация – программы и данные. В лекции рассмотрены следующие вопросы:

· Понятие файла

· Методы доступа

· Структура директорий

· Монтирование файловых систем

· Общий доступ к файлам

· Защита файлов

· Принципы реализации файловых систем

· Блок управления файлом.

Файл (file) –это смежная область логического адресного пространства. Как правило, файлы хранятся во внешней памяти.

Немного о терминологии. Слово файл уженесколько десятков лет используется как русское – один из многочисленных примеров программистских неологизмов. Первоначально, когда около 50 лет назад появился данный английский термин, в русскоязычной литературе специалисты пытылись ввести другую терминологию – слово fileпереводили как фонди даже тека(в смысле хранилище). Однако исторически сложилось иное решение – слово файлстало русским. В английском языке слово fileимеет много других значений: например, подшитый в папку бумажный документи даже стадо(например, слонов) – в последнем случае, как можно предположить, размер "файла" может быть очень велик. У всех в памяти название легендарного сериала "X files"(в вольном русском переводе – "Секретные материалы").

Фирма IBM в документации по своей системе IBM 360 в 1960-х гг. использовала иной термин – набор данных (data set) –для обозначения этого же понятия, однако он не пережил операционную систему, в которой использовался.

Каждый файл имеет свой тип, определяющий, какая информация хранится в файле. Основные типы файлов – программа (код)или данные. Данные подразделяются на числовые, символьные (текстовые)и двоичные (произвольная информация).

В различных системах приняты различные точки зрения на структуру файлов. В ряде систем структура файла привязывалась к типу устройства, на котором он находится. В некоторых других системах структура файла была искусственно усложнена. Однако наиболее простую и унифицированную точку зрения из них предложили авторы системы UNIX: файл – это последовательность слов или байтов. Казалось бы, это очевидно, но преимущество данного подхода к файлам в том, что базовое представление файла и базовые операции над ним (read, write) не зависят от типа устройства. В свое время для программистов нашего поколения такой подход к файлам был откровением, после сложностей системы файлов IBM 360, а затем – "Эльбруса". Можно сказать, что файлы в своем развитии прошли путь, аналогичный развитию архитектур компьютеров – сначала в сторону значительных усложнений, затем – упрощения и унификации.

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

Файлы простойструктуры состоят из последовательности записей (records) –элементарных единиц, в терминах которых выполняются операции обмена с файлом. Записи могут быть:

· строками, если это текстовый файл;

· двоичными данными фиксированной длины;

· двоичными данными переменной длины.

Файлы сложной структурымогут быть самого разного вида, например:

· отформатированным документомMicrosoft Office (такой файл, кроме собственно текста, содержит управляющие символы перелюкчения шрифтов, цветов и т.д.);

· загрузочным модулемреального или виртуального двоичного кода, например, portable executable (PE)-файлом для платформы .NET; class-файлом для платформы Java; подобные файлы состоят из нескольких секций, содержат внутренние ссылки и таблицы и т.д.

Сложная структура файла может быть смоделирована записями путем добавления соответствующих управляющих символов.

Файлы интерпретируются операционная система или программами их обработки.