Структура каталогов
Структура каталогов Mac OS X и Windows Vista отличается коренным образом, что, впрочем, совершенно неудивительно — первая относится к UNIX-системам, вторая наследует принципы организации от Windows 2000 и более ранних версий, с сохранением определенной преемственности с DOS. Следует отметить, что Mac OS X, по крайней мере, на пользовательском уровне сильно отличается от стандарта FHS (Filesystem Hierarchy Standard). Более того, такие корневые каталоги, относящиеся к BSD-окружению, как /bin, /usr и прочие, в Finder'e, аналоге Проводника, так же, как и в прикладных программах, скрываются.
В Mac OS X корневой файловой системой становится та, которая соответствует загрузочному разделу. Все остальные разделы, включая находящиеся на сменных носителях, монтируются в /Volumes, под собственным именем, задаваемым в случае файловых систем FAT, NTFS меткой диска. Такой подход обеспечивает межмашинную унификацию — к какому бы компьютеру мы ни подключили, скажем, флеш-накопитель, у него будет один и тот же путь в структуре каталогов файловой системы. Это сильно облегчает создание переносимого рабочего окружения, включающего программы, настройки и документы пользователя. Второй неявный бонус в том, что стирается различие между реальными разделами и образами дисков — прикладные программы работают с последними в обычном режиме. Для полноценной имитации можно использовать формат образа, допускающий не только чтение, но и запись данных. Следует отметить, что пользователю нет необходимости задумываться о количестве подключенных носителей или образов.
В Windows Vista от более ранних версий унаследована концепция с обозначением разделов буквами латинского алфавита, загрузочный раздел получает букву «C» вне зависимости от того, есть ли в компьютере дисководы, за которыми во времена DOS резервировались «A» и «B». Каждый вновь подключенный носитель получает первую свободную букву (которые могут идти в не строгом порядке). В настройках Проводника можно установить параметр, позволяющий скрыть буквы дисков, но его действие распространяется только на стандартные диалоговые окна и Проводник, и то частично: так, в свойствах файлов и папок все равно показывается вся информация. Используя консоль управления, пользователь может либо поменять букву диска, либо задействовать штатную возможность файловой системы NTFS — примонтирование разделов в каталог. Строго говоря, поддерживается так называемая операция Directory Junction, позволяющая задать в роли объекта-источника не только раздел, но и отдельную папку диска, — но, к сожалению, недоступная через консоль управления. Использование букв диска, очевидно, порождает неоднозначность наименования разделов при подключении сменного носителя к разным компьютерам. Как следствие, при желании организовать переносимое рабочее окружение необходимо использовать либо программы, умеющие работать с относительными путями или абсолютными вида «» — корневой каталог текущего диска, либо специализированные адаптированные версии (в связи с этим представляет определенный интерес появление стандарта U3). Использование букв для наименования дисков также приводит к тому, что виртуальный привод, имитирующий реальный, в каждый конкретный момент времени ограничен одним подключенным образом, то есть нужно либо инсталлировать несколько таких эмуляторов, либо осуществлять «смену» образа.
Основные каталоги
В Mac OS X пользователь работает со следующими папками в корневом каталоге: Applications, как следует из названия, предназначена для прикладных программ; System — основные файлы операционной системы; Library — дополнительные файлы системы и прикладных программ, а также общесистемные настройки; Users — домашние каталоги пользователей, в которых, в свою очередь, могут находиться вложенные папки Library и Applications. Подобное деление позволяет четко разграничить права пользователей на доступ к отдельным объектам файловой системы: например, приложение не может осуществлять запись настроек вне пределов Library (либо системной, либо соответствующей у текущего пользователя), а пользовательских документов — куда-либо помимо домашнего каталога. Конечно, при желании (и при наличии соответствующих полномочий) пользователь может разместить приложение, например, на рабочем столе, а личные файлы — в /System, но в целом структура каталогов логична и достаточно хорошо сбалансирована для разграничения доступа на основе стандартной UNIX-схемы.
В Windows Vista также есть стандартные каталоги: Windows — назначение понятно из названия; Program Files служит для размещения прикладных программ; в ProgramData сохраняются глобальные настройки программ (аналог Documents and SettingsAll UsersApplication Data, а также ряда других папок в более старых версиях); Users предназначена для домашних каталогов пользователей. На последних нужно остановиться более подробно, так как изменился подход, он стал более приближен к тому, что используется в UNIX-системах: рабочие папки, предназначенные для документов, музыки, изображений и так далее, размещаются непосредственно в домашнем каталоге наравне со служебными каталогами, имеющими атрибут «скрытый». То есть структура стала более «плоской», без ветвления на дополнительные уровни иерархии. Основная проблема в Windows Vista связана со старыми программами, требующими соответствующих полномочий для записи настроек и временных и вспомогательных файлов в Program Files или Windows — многие из них создавались без учета возможности работы под учетной записью с существенно лимитированным доступом.
Возможности файловых систем
«Родной» для Mac OS X является файловая система Mac OS Extended, в некоторых источниках упоминаемая так же, как HFS+. В зависимости от выбранных при форматировании параметров может поддерживаться журналирование (вариант по-умолчанию при установке системы), а также использование регистрозависимых имен — при этом система будет различать объекты, находящиеся в одной папке и называющиеся практически одинаково за исключением регистра символов, например, «документ.pdf» и «Документ.pdf». Системный раздел также может быть отформатирован в файловую систему UFS (UNIX File System), но при этом, по утверждениям Apple, могут быть ограничения, связанные с работой отдельных подсистем операционной системы, в частности, беспроводного доступа. Поддерживаются также и иные файловые системы, в которые могут быть отформатированы не системные тома — FAT, FAT32 и NTFS в режиме только для чтения.
Для Windows основной файловой системой является NTFS, также поддерживающая журналирование и регистрозависимые имена. Впрочем, последняя возможность требует установки определенного параметра реестра и, естественно, поддержки на уровне прикладных программ. По вполне очевидным причинам, файловые системы Mac OS Extended и UFS не поддерживаются, но обеспечить переносимость данных в режиме не только чтения, но и записи, можно с помощью разделов, отформатированных в FAT.
В Mac OS X файлы состоят из двух компонент: так называемых, data fork и resource fork, в переводе на русский язык — вилки данных и ресурсов. Вилка ресурсов предназначена для сохранения вспомогательной информации, например, индивидуальной иконки файла. В некоторых случаях содержимое вилки ресурсов может быть основным — так, в ней может целиком содержаться файл шрифта. Что вполне естественно, файловая система HFS+ штатно поддерживает такое ветвление файлов, но что будет, например, при помещении такого файла на диск в FAT32? В таком случае формируется вспомогательный файл, имя которого начинается на «._», устанавливается атрибут «скрытый». При этом прикладные программы продолжают воспринимать файл так, как если бы он находился на диске с файловой системой HFS+.
Реализованный в NTFS механизм более гибок — каждый файл может иметь несколько произвольных файловых потоков, все они, за исключением основного, получают собственные имена. Когда пользователь обращается к файлу и не указывает дополнительное имя, то считается, что он работает именно с этим основным потоком. Файловые потоки поддерживались еще с самых первых версий NTFS и операционной системы Windows NT, но пользователь сталкивается с этой возможностью только при указании дополнительных атрибутов файла, таких как автор, название документа и так далее. Также в дополнительных потоках любит прятать свою сущность вредоносные программы — но это забота антивирусов и их производителей. И, как всегда при использовании «продвинутых» технологий, возникает вопрос совместимости, в частности, с файловой системой FAT. К сожалению, механизма сохранения дополнительных именованных файловых потоков не предусмотрено, разве что система (а, точнее, Проводник) предупредит о возможной потере информации при копировании или перемещении.
В каждой из операционных систем ограничения на допустимые в именах файлов символы, многие из этих ограничений вызваны историческими причинами и совместимостью с более ранними версиями операционных систем. Так, в Mac OS X для разделения имен каталогов используется «/», но в то же время в имени файла можно указать этот символ. Возникает вопрос — каким образом? На самом деле, в имени сохраняется двоеточие «:», которое и отображается в виде «/». Двоеточие в явном виде задать нельзя, так как в более ранних версиях Mac OS, до эпохи X-версии, этот символ использовался для разделения каталогов. Кроме того, в именах можно задавать знаки, наподобие «?» и «*», используемые при указании масок файлов. В Windows Vista ограничения чуть более строгие, так как нельзя использовать не только слэши «/» и «», но и кавычки, двоеточие и ряд других символов.
Следует отметить, что в целом файловая система NTFS более гибкая и функциональная, чем HFS+ — так, поддерживаются прозрачное сжатие и шифрование файлов, дисковые квоты (ограничения по использованию дискового пространства), точки монтирования — reparse points.
Инструментарий
В Mac OS X все задачи по обслуживанию дисков и разделов, а также сменных носителей возложены на специальную программу Disk Utility, в Windows Vista аналогичную роль играет консоль управления «Disk Management». И то, и другое средство позволяет разбивать диски на разделы, в обеих системах поддерживаются схемы разбиения на основе Master Boot Record (основная в Windows) и GUID-таблицы разделов (используется в макинтошах на Intel-процессорах). Кроме того, в Mac OS X можно задействовать и Apple Partition Map, актуальную для старых компьютеров на процессорах PowerPC, а в Vista — так называемую схему Dynamic Disk. Вполне очевидно, что у пользователя возникает закономерный вопрос: а какую схему разбиения диска следует выбрать с точки зрения максимальной совместимости, особенно в случае компьютеров Apple? Если речь идет о внешних сменных носителях, подключаемых в том числе и под другими операционными системами, то ответ однозначен — MBR, но в случае системных дисков не все так просто. Проблема вызвана тем, что в новых макинтошах нет BIOS как таковой, соответствующая функциональность по загрузке операционной системы возложена на интерфейс EFI — Extensible Firmware Interface. Windows Vista загрузку на компьютерах с EFI поддерживает, но при этом добавляет в системный EFI-раздел Windows Boot Manager с перспективой невозможности загрузки Mac OS X. Очевидно, такой вариант развития событий не слишком желателен, поэтому наиболее целесообразным является вариант с использованием утилиты Apple Boot Camp, добавляющей эмуляцию BIOS и MBR-разбиения на системном диске с GUID-таблицей.
И Windows Vista, и Mac OS X поддерживают создание программных RAID-массивов с помощью средств управления дисками. Следует отметить, что речь идет о средствах именно операционных систем — многие распространенные в настоящее время RAID-контроллеры тоже являются программными, но только на уровне драйвера. Различие в подходах в том, что в Windows Vista необходимо сконвертировать диск в Dynamic, в Mac OS функциональность RAID-массивов поддерживается и при других схемах разбиения.
В Windows Vista поддерживается неразрушающее уменьшение и увеличение разделов даже на дисках со схемами разбиения на основе MBR и GUID-таблицы — это означает, что пользователь сможет сохранить информацию при переразбиении. Но, разумеется, перед выполнением столь ответственных операций с диском имеет смысл создать резервную копию данных.
В Mac OS X крайне широко поддерживаются образы дисков — так, образ можно создать на основе диска или раздела (то есть, заложена функциональность коммерческих продуктов клонирования дисков под Windows), а также отдельной папки. Образы могут быть сжатыми, доступными в режиме не только чтения, но и записи, а также зашифрованными. Следует отметить, что помимо «родных» для Mac OS X форматов DMG и CDR (так называемые мастер-диски CD/DVD), поддерживается популярный ISO. Таким образом, образы отчасти играют ту же роль, что и архивы в других операционных системах.
Обе операционные системы позволяют выполнить проверку дисков на предмет логических ошибок, которые могли возникнуть в результате пропадания электроэнергии, повреждения носителя или множества иных причин. Отличие проявляется в способе проверки загрузочного диска — по вполне понятным причинам, для его проверки необходимо заблокировать запись (или отмонтировать), что мало осуществимо. В Windows используется так называемый режим boot-time, то есть может быть запланирован запуск проверки на этапе загрузки операционной системы. В Mac OS X для восстановления системного раздела следует использовать инсталляционный диск — загрузившись с него, можно запустить Disk Utility.
Интересной возможностью Mac OS X является так называемая проверка разрешений, verify disk permissions. Суть ее в том, что Disk Utility осуществляет сканирование диска и проверку разрешений файлов, находящихся в /System, /Library и /Applications, и — при необходимости, — исправление. Выполнение такой процедуры гарантирует, что никто не получит полномочий сверх необходимого.
Дефрагментация... Рано или поздно любой пользователь задумывается о необходимости ее выполнения, особенно, если он интенсивно работает с видео, аудио или графикой, то есть файлами большого и заранее непредсказуемого размера (а в таких условиях обеспечить низкий уровень фрагментации не может ни один самый продвинутый алгоритм). В Vista есть штатное средство — пусть и не такое наглядное, как в Windows 2000/XP, но, тем не менее, эффективно выполняющее функции. В Mac OS X соответствующего инструментария нет, поэтому для дефрагментации дисков приходится прибегать к сторонним коммерческим продуктам — что, естественно, не может не вызывать удивления при четкой «мультимедийной» направленности макинтошей.
Как в Mac OS X, так и в Windows Vista поддерживается запись CD и DVD дисков, она может осуществляться как из Finder'а и проводника, так и соответствующих мультимедийных приложений, входящих в комплект поставки. Кроме того, Disk Utility позволяет прожигать образы дисков — в силу поддержки этих образов.