Структура файла
Понятие файла
Введение
Лекция: Системы файлов
Файл – совокупность логически объединенных данных во внешней памяти. Управление файлами – одна из важных задач ОС, так как в виде файлов в системе хранится практически любая информация – программы и данные. В лекции рассмотрены следующие вопросы:
· Понятие файла
· Методы доступа
· Структура директорий
· Монтирование файловых систем
· Общий доступ к файлам
· Защита файлов
· Принципы реализации файловых систем
· Блок управления файлом.
Файл (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; подобные файлы состоят из нескольких секций, содержат внутренние ссылки и таблицы и т.д.
Сложная структура файла может быть смоделирована записями путем добавления соответствующих управляющих символов.
Файлы интерпретируются операционная система или программами их обработки.