|
Mac OS X способен работать с различными файловыми системами. Для этого используются расширения системы BSD и механизм, который называется виртуальной файловой системой (Virtual File System, VFS). Поддержка различных файловых систем включает в себя некоторые новые функции, которых не было в предыдущих версиях Mac OS, а именно:
- Права доступа к съемным носителям, основанные на уникальных идентификационных номерах (ID), которые регистрируются в системе для каждого подключенного устройства со съемными носителями (включая USB-и Firewire-устройства).
- Основанное на URL монтирование томов, что позволяет монтировать тома на AppleShare- и Web-серверах.
- Длинные имена файлов (до 255 символов, или 755 байт на основе UTF-8).
Типы носителей, поддерживаемые Mac OS X
Из-за наличия трех различных сред, в которых запускаются и работают программы, и множества типов носителей информации Mac OS X должна поддерживать несколько форматов носителей данных и сетевых файловых протоколов.
Форматы носителей, с которыми работает Mac OS X:
- HFS+;
- HFS;
- UFS;
- UDF;
- ISO 9660.
Множество форматов файловых систем на магнитных дисках создают некоторые сложности при обмене документами между томами. Например, классическая файловая система HFS поддерживает только так называемую MacRoman-систему кодировки символов в именах файлов и папок. Файловая система HFS+ использует канонический набор символов Unicode 2.1 в формате UTF-16, то есть в виде последовательности 16-разрядных кодов. Файловая система UFS также поддерживает полный набор символов Unicode 2.1, но только в формате UTF-8. Поэтому, чтобы уменьшить количество проблем, настоятельно рекомендуется не использовать файловую систему HFS при работе с Mac OS X, несмотря на то, что формально это не запрещено.
Mac OS X поддерживает несколько сетевых файловых протоколов:
- AFP-клиент;
- NFS-клиент;
- WebDAV.
Mac OS X поддерживает механизм дисковых квот. Это означает, что для каждого локального или удаленного пользователя администратор системы может устанавливать лимит дискового пространства. Квотирование распространяется практически на все перезаписываемые устройства с файловой структурой.
HFS и HFS+
Файлы файловых систем HFS и HFS+ состоят из двух логических частей – двух «внутренних файлов», называемых ветвями (forks).
Ветвь ресурсов (resource fork) предназначена для хранения так называемых ресурсов, то есть окон, меню, иконок, шрифтов, звуков, всевозможных таблиц и многого другого. Так же одним из ресурсов является исполняемый код программ.
Ветвь данных (data fork) предназначена для хранения динамически создаваемых данных. В нее программы могут записывать любую информацию.
Файл-программа обычно имеет насыщенную ветвь ресурсов и почти пустую ветвь данных. В файле-документе все наоборот: основная информация содержится в ветви данных, а ветвь ресурсов либо пуста, либо содержит минимум ресурсов.
Структура файлов с несколькими ветвями в целом достаточно удобна, но в некоторых случаях может создавать серьезные проблемы. Главная из них состоит в том, что при передаче данных по не Macintosh-ориентированным сетям ветвь ресурсов зачастую не распознается и не пересылается или пересылается неверно. А это равносильно разрушению файлов.
Чтобы такого не происходило, приходится принимать специальные меры: сначала создается «обычный» файл, в котором обе ветви Mac-файла упаковываются в специальном формате BinBex. Такой файл передается по компьютерным сетям без потерь. При получении файла-контейнера он распаковывается – из «обычного» файла получается файл формата HFS или HFS+ с двумя ветвями. Это довольно проблематично и неудобно для большинства пользователей. Поэтому фирма Apple в настоящее время рекомендует разработчикам программ не использовать ветвь ресурсов файлов HFS и HFS+, а создавать отдельные ресурсные файлы, в которых все необходимые ресурсы расположены исключительно в ветви данных.
Помимо ветви ресурсов и ветви данных каждый файл содержит дополнительные признаки, называемые атрибутами Finder'a. Атрибуты распознаются и обрабатываются Finder'oм при отображении информации о данном файле или попытке его открыть (распечатать).
В Mac OS X сокращено количество атрибутов, обрабатываемых Finder'oм. Теперь этот список включает в себя:
- бит пакета (bundle bit),
- бит невидимости (invisible bit),
- коды типа файла и программы-создателя файла (type & creator),
- оригинальную иконку файла (custom icon).
Атрибуты, которые больше не поддерживаются Finder'ом:
- место расположения иконки на Столе,
- форма отображения информации о файле (view),
- этикетка (label).
Пожалуй, наиболее важными и наиболее специфическими являются атрибуты создатель файла (creator) и тип файла (type). Они помогают Finder'y принять правильное решение при открытии (печати) файлов.
При открытии файла-документа приходится решать достаточно сложную задачу. Сначала Finder проверяет код программы-создателя этого документа. Если на данном компьютере имеется нужная программа, она запускается и открывает указанный документ.
Если на компьютере нет программы, создавшей документ, то проверяется код типа файла. Если находится несколько программ, которые умеют работать с файлами данного типа, то запускается одна из них. Например, с простыми текстовыми файлами работает множество редакторов текста, с графическими файлами, или файлами изображений, работает несколько программ просмотра или редактирования графики и так далее.
Если не находится ни одной программы, о которой системе известно, что она умеет работать с документами данного типа, в этом случае вызывается диалоговое окно, в котором вам предлагается самостоятельно выбрать подходящую программу. Если указанная пользователем программа успешно открыла документ, то система запоминает это и в следующий раз сразу запускает ее.
Хранение информации о типе файла внутри самого файла имеет одно большое достоинство: никакое переименование файла не может изменить его тип, то есть суть файла не будет зависеть от его имени.
|