Наши друзья:
|
Файловые системы
• файловые системы Mac OS X
• виртуальная файловая система
• права доступа к съемным носителям
• URL-монтирование AppleShare- и Web-серверов
• длинные имена файлов
• дисковые файловые системы HFS, HFS+, UFS •' поддержка CD /DVD-дисков UDF, ISO 9660
• сетевые файловые протоколы AFP, NFS
Mac OS X работает с различными файловыми системами. Для этого используются расширения системы BSD и механизм, называемый виртуальной файловой системой (VirtualFile System, VFS). Поддержка различных файловых систем включает в себя некоторые новые функции, которых не было в предыдущих версиях Mac OS:
• Права доступа к съемным носителям, основанные на уникальных идентификационных номерах (ID), регистрируемых в системе для каждого подключенного устройства со съемными носителями, включая USB-и Firewire-устройства).
• Основанное на URL монтирование томов, что позволяет монтировать тома на AppleShare- и Web-серверах.
• Длинные имена файлов (до 255 символов, или 755 байт на основе UTF-8).
Из-за наличия трех различных сред, в которых запускаются и работают программы, и множества типов носителей информации Mac OS X должна поддерживать несколько форматов носителей данных и сетевых файловых протоколов.
Форматы носителей, с которыми работает Mac OS X.
Множество форматов файловых систем на магнитных дисках создают некоторые сложности при обмене документами между томами. Например, классическая файловая система HFS поддерживает только так называемую MacRoman-систему кодировки символов в именах файлов и папок. Файловая система HFS+ использует канонический набор символов Unicode 2.1 в формате UTF-16, то есть в виде последовательности 16-разрядных кодов. Файловая система UFS также поддерживает полный набор символов Unicode 2.1, но только в формате UTF-8. Поэтому, чтобы уменьшить количество проблем, настоятельно рекомендуется не использовать
Файловые системы
Формат носителя |
Пояснения |
HFS+ |
Hierarchical Fie System Plus, расширенный дисковый формат. Является основным форматом томов, с которых происходит загрузка системы Mac OS X. Оптимизирован для работы с дисками большой емкости. Используется не только в среде Mac OS X, но и в более ранних версиях Mac OS 8 и 9 |
HFS |
Hierarchical File System, обычный дисковый формат. Основной формат дисков для систем Mac OS до версии 8.1 |
UFS |
Дисковый формат системы UNIX на основе FFS (Fast File System) от BSD 4.4 |
UDF |
Universal Disk Format — формат DVD-дисков |
ISO 9660 |
Стандартный формат компакт-дисков (CD-ROM) |
Сетевые файловые протоколы |
Сетевой
файловый
протокол |
Пояснения |
AFP-клиент |
Apple File Protocol — основной протокол общего доступа к файлам а системах Mac OS 8 и 9 |
NFS-клиент |
Network File Service — доминирующий протокол общего доступа к файлам в UNIX-системах |
WebDAV |
Стандарт для общего доступа к файлам через Интернет |
файловую систему HFS при работе с Mac OS X, несмотря на то, что формально это не запрещено.
Так как Mac OS X рассчитана на работу в сложных гетерогенных средах, она поддерживает несколько сетевых файловых протоколов.
Mac OS X поддерживает механизм дисковых квот. Это означает, что для каждого локального или удаленного пользователя администратор системы может устанавливать лимит дискового пространства. Квотирование распространяется практически на все перезаписываемые устройства с файловой структурой.
Файловые системы HFS, HFS+: особенности структуры файлов
• ветвь ресурсов (resource fork), ветвь данных (data fork)
• упаковка/распаковка Mac-файлов; BinHex-формат
• ресурсные файлы
• атрибуты Finder'a
• тип файла (type), создатель файла (creator)
Файлы файловых систем HFS и HFS+ состоят из двух логических частей — двух «внутренних файлов», называемых ветвями (forks).
Ветвь ресурсов (resource fork) предназначена для хранения так называемых ресурсов — окон, меню, иконок, шрифтов, звуков, всевозможных таблиц и многого, многого другого. Исполняемый код программ тоже один из ресурсов.
Ветвь данных (data fork) предназначена для хранения динамически создаваемых данных. Программы могут записывать в нее любую информацию.
Файл-программа обычно имеет насыщенную ветвь ресурсов и почти пустую ветвь данных; в файле-документе все наоборот: основная информация содержится в ветви данных, а ветвь ресурсов либо пуста, либо содержит минимум ресурсов.
Структура файлов с несколькими ветвями в целом достаточно удобна, но в некоторых случаях может создавать серьезные проблемы. Главная из них состоит в том, что при передаче данных по не Macintosh-ориентированным сетям ветвь ресурсов зачастую не распознается и не пересылается или пересылается неверно. Это равносильно разрушению файлов.
Чтобы такого не происходило, приходится принимать специальные меры: сначала создается «обымный» файл, в котором обе ветви Mac-файла упаковываются в специальном формате BinBex Такой файл передается по компьютерным сетям без потерь. При получении файла-контейнера он распаковывается — из «обычного» файла получается файл формата HFS или HFS+ с двумя ветвями. Это хлопотно и неудобно для большинства пользователей. Поэтому фирма Apple в настоящее время рекомендует разработчикам программ не использовать ветвь ресурсов файлов HFS и HFS+, а создавать отдельные ресурсные файлы, в которых все необходимые ресурсы расположены исключительно в ветви данных. Так, например, новый тип шрифтовых файлов Mac OS X, имеющих расширение .dfont,— это, по сути, обычные шрифтовые файлы, все ресурсы которых перенесены в ветвь данных. Кроме того, программы для Max OS X должны создаваться по новой идеологии, которая учитывает эти изменения в организации хранения ресурсов.
Помимо ветви ресурсов и ветви данных каждый файл содержит дополнительные признаки, называемые атрибутами Finder'a. Атрибуты распознаются и обрабатываются Finder'oм при отображении информации о данном файле или попытке его открыть (распечатать).
В Mac OS X сокращено количество атрибутов, обрабатываемых Finder'oM. Теперь этот список включает в себя:
• бит пакета (bundle bit),
• бит невидимости (invisible bit),
• коды типа файла и программы-создателя файла (type & creator),
• оригинальную иконку файла (custom icon).
Атрибуты, которые больше не поддерживаются Findre'OM:
• место расположения иконки на Столе,
• форма отображения информации о файле (view),
• этикетка (label).
Пожалуй, наиболее важными и наиболее специфическими являются атрибуты создатель файла (creator) и тип файла (type). Они помогают Finder'y принять правильное решение при открытии (печати) файлов.
Когда мы пытаемся открыть файл-программу, для Finder'a все понятно: надо просто запустить эту программу, а дальше она сама знает, что ей делать.
При открытии файла-документа приходится решать более сложную задачу. Сначала Finder проверяет код программы-создателя этого документа. Если на данном компьютере имеется нужная программа, она запускается и открывает указанный документ. Логика такого поведения очевидна: «автор» документа лучше всех знает, как с ним работать.
Если на компьютере нет программы, создавшей документ, то проверяется код типа файла. Если находится несколько программ, которые умеют работать с файлами данного типа,— запускается одна из них. Например, с простыми текстовыми файлами работает множество редакторов текста, с графическими файлами, или файлами изображений, работает несколько программ просмотра или редактирования графики и так далее.
Если не находится ни одной программы, о которой системе известно, что она умеет работать с документами данного типа,— вызывается диалоговое окно, в котором вам предлагается самостоятельно выбрать подходящую. Если указанная вами программа успешно открыла документ, то система запоминает это и в следующий раз сразу запускает ее.
Хранение информации о типе файла внутри самого файла имеет важное достоинство: никакое переименование файла не может изменить его тип, то есть суть файла не зависит от его имени.
Расширения имен файлов в Mac OS X
• расширения имен файлов
• особенности работы с расширениями имен в Mac OS X
«Классическая» Mac OS позволяет работать с документами, созданными не только на Macintosh'ax, но и на PC, a Mac OS X также и с документами, созданными под UNIX'OM. Такие файлы не имеют специальных внутренних атрибутов, а тип файла определяется по так называемому расширению имени файла.
Расширение — это дополнительные символы, которые расположены в конце имени файла после специального разделителя — точки. Например, файлы с расширением .doc — это документы программы Microsoft Word.
Поскольку имеется большое количество программ и, стало быть, большое количество расширений имен, Finder не всегда знает, какая программа нужна для работы с документом.
Системная панель управления «классической» Mac OS — File Exchange решает эту проблему: для любого типа документа или для любого расширения имени файла можно указать программу, которой следует открывать документы данного типа.
Использование расширений имен файлов в качестве указателя типа файла имеет серьезный недостаток если документ был переименован с изменением расширения (пусть даже случайно), информация о его типе теряется. Иногда удается догадаться об исходном типе документа из контекста. Но в общем случае восстановить «истинную картину» бывает непросто.
Конечно, использование специальных внутренних атрибутов type и creator для описания типа файла и программы, его создавшей, идеологически более правильно и удобно. Но, к сожалению, такой подход, кроме фирмы Apple, никем больше не поддерживаемся. Применение для этих целей расширений имен файлов — существенно более ущербное решение, но широко распространенное. Как быть?
Mac OS X с самого начала разрабатывалась как система, способная эффективно работать в гетерогенной среде. Поэтому Finder Mac OS X был рассчитан на поддержку как внутренних атрибутов файлов HFS и HFS+, так и расширений имен в качестве описателей типа файлов. Фирма Apple настоятельно рекомендовала разработчикам программ использовать расширения как обязательную часть имен файлов. Большинство же пользователей Macintosh^ без восторга воспринимало необходимость «возвращения к сохе». Начиная с версии Mac OS X 10.1, Apple решила пойти на компромисс — в структуру каждого файла был добавлен дополнительный бит — флаг скры-тости расширения имени файла (File пате extension hidden flag). Если этот флаг установлен, то расширение имени файла отображаться не будет, и наоборот. Общий принцип, положенный в алгоритм работы с этим флагом, кратко можно описать фразой: «Видишь то, что набрал» (Whatyou see is what you type), то есть имя файла, отображаемое Finder'oм, соответствует имени, заданному в диалоговом окне сохранения файла Save или непосредственно в Finder'e в момент создания файла: если вы задали имя с расширением — то будете видеть имя этого файла с расширением, если имя было задано без расширения — то и в дальнейшем этот файл будет без расширения. При получении файла с другого компьютера по умолчанию флаг скрытости не устанавливается, то есть Finder показывает его имя целиком как есть, например, Image.jpg. Если в дальнейшем пользователь захочет переименовать файл, например MyPicture, то расширение jpg сохранится, но не будет отображаться Finder'oM — для пользователя он будет виден под именем MyPicture. В случае передачи данного файла на другой компьютер его имя будет передано целиком, без сокращений,— MyPicture.jpg.
Если пользователь захочет изменить расширение файла — система предупредит о возможных последствиях такого изменения.
Экранной кнопкой Use... изменяется расширение, если это необходимо.
Экранная кнопка Keep... сохранит текущее значение расширения имени.
Таков, вкратце, алгоритм работы системы с расширениями имен файлов по умолчанию. В настройках Finder'a можно принудительно указать, чтобы расширения имен файлов отображались всегда. Если есть желание сохранить «разумное» поведение Finder'a, свойственное ему по умолчанию, и при этом получить информацию о полном имени файла, включая расширение,— воспользуйтесь SI) Inspector^ .
Ссылки на файлы
• ссылка по идентификатору — основной тип ссылок в Mac OS X
• способ создания символической ссылки в Mac OS X
Файловые системы HFS и HFS+ поддерживают ссылки на файлы по идентификатору. Файловая система UFS работает с символическими ссылками. Mac OS X поддерживает как ту, так и другую файловую систему, но в качестве основного сохранен механизм ссылок по идентификатору, хотя в некоторых случаях для повышения эффективности и надежности системных модулей, которые имеют постоянное место в файловой системе, используются символические ссылки. Finder понимает символические ссылки, но создавать разрешает только ссылки по идентификатору. Даже когда Finder встречает символическую ссылку, он представляет ее пользователю как ссылку по идентификатору. Таким образом, пользователь практически не чувствует разницы между этими двумя типами ссылок. Единственным способом создать символическую ссылку в Mac OS X является выполнение BSD-команды в терминальном ре-
жиме.
Квоты дискового пространства
• дисковые квоты
• типы квот: индивидуальные, групповые, «мягкие», «жесткие»
Mac OS X, как и большинство других UNIX'OB, позволяет устанавливать лимиты (квоты) дискового пространства для пользователей системы. Квоты могут быть индивидуальными и/или групповыми. Лимит может быть установлен как на общий объем дисковой памяти, занимаемой пользователем, так и на количество файлов. Квоты бывают «мягкими» и «жесткими». «Мягкая» квота позволяет в течение некоторого заранее заданного интервала времени превышать установленные пределы, но при этом система предупреждает пользователя о том, что им исчерпан лимит дисковой памяти. Если по истечении этого интервала пользователь не навел порядок и не удалил лишние файлы, включается режим «жесткого» квотирования, при котором пользователь не сможет ничего записать на диск до тех пор, пока занимаемое дисковое пространство превышает норму.
Установка дисковых квот чаще всего используется на серверах, где много пользователей разделяют ресурсы системы и нужна достаточно жесткая дисциплина в распределении и учете ресурсов. На «обычных» компьютерах необходимость установки дисковый квот возникает редко. Поэтому в Mac OS X все настройки режима квотирования доступны только в терминальном режиме команд BSD.
Имеется целый ряд команд, связанных с дисковыми квотами. Назовем основные из них:
quota - просмотреть текущие квоты конкретных пользователей
и/или групп пользователей, edquota - отредактировать (задать/изменить) квоты, quotaon - активировать квоты, назначенные с помощью команды
edquota.
Более подробное описание указанных команд можно получить, воспользовавшись встроенной системой подсказок UNIXa, то есть командой man: man quota, man edquota, man quotaon.
|