Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VSOS_2014.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.9 Mб
Скачать
    1. Типы файлов

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

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

Например, в MS DOS имя может состоять из восьми букв, расширение из трех. Система использует расширение для определения типа файла и типов операций, которые с ним можно производить. Например, файлы с расширениями com, exe или bat могут быть исполнены. MS DOS распознает только несколько расширений, но приложения могут использовать расширения для распознавания типов файлов.

Аналогичный подход используется и в Windows, с той разницей, что ограничения на длину имени и расширения менее жесткие.

Рассмотрим теперь ОС Apple Macintosh. В этой системе каждый файл имеет тип, например «text» или «appl». Каждый файл имеет также атрибут создателя, содержащий имя программы, создавшей этот файл. Этот атрибут устанавливается при выполнении системного вызова create и поддерживается системой. Когда пользователь открывает файл двойным щелчком мыши, соответствующая программа, например, word, активизируется для обработки этого файла.

ОС UNIX не поддерживает подобные средства. Хотя эта ОС и позволяет записывать так называемое магическое число в начало файлов для правильного определения типа файла, не все файлы имеют это число, и поэтому система не может базироваться на таком подходе. ОС UNIX также позволяет файлу иметь расширение, но эти расширения, именуемые суффиксами, не влияют на работу ОС, а позволяют пользователю упорядочивать информацию. Тем не менее, отдельные прикладные программы, например компилятор языка С, могут в своей работе использовать суффиксы, но это решение принимается исключительно разработчиками программы.

    1. Структура файлов

Типы файлов могут быть использованы ОС для автоматического определения их структуры. Например, ОС может требовать, чтобы исполняемый файл имел определенную структуру, так как она определяет, каким образом следует загружать файл в память, и где расположена первая исполняемая команда. Некоторые ОС распространяют эту идею на множество системно поддерживаемых файловых структур с множеством операций, поддерживающих манипулирование этими структурами. Например, ОС WMS для DEC.

Такой подход имеет и недостатки. Главным из них является то, что результирующий размер ОС чересчур велик, она становится слишком громоздкой. Если система поддерживает несколько типов структур, то она должна содержать обслуживающий код для каждой структуры. Кроме того, каждый файл должен быть определяемым как относящийся к одной из этих структур. Проблемы возникнут, если приложениям потребуется структурировать информацию другим способом. Например, если система поддерживает только текстовые и исполняемые файлы, трудности возникнут даже, если мы захотим всего лишь шифровать информацию. Некоторые ОС поддерживают минимальное число файловых структур, например, UNIX, MS DOS, Windows и др.

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

Другим примером ОС с минимальным числом файловых структур является MAC OS, которая ожидает, что все файлы содержат две части: ветвь ресурсов (resource fork) и ветвь данных (data fork). Первая содержит информацию об интересах пользователя. Например, она хранит метки всех кнопок, используемых программой. Поскольку объекты в этой ветви MAC OS позволяет редактировать, то перевести программу на другой язык очень просто. Вторая ветвь содержит текст программ и данные – традиционное содержимое файлов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]