Популярные файловые системы mac os

Файловая система Apple File System (APFS)

64-битные иноды, атомарные транзакции, метки времени в наносекундах, клонирование директорий, встроенное шифрование

На вчерашней презентации WWDC 2016 компания Apple показала новые версии операционных систем macOS (Sierra) 10.12, iOS 10, tvOS 10, watchOS 3, приложение для обучения детей программированию Swift Playgrounds и новые эмодзи.

Казалось бы, ничего интересного. Однако, Apple всё-таки выкатила кое-что фундаментальное. Самая значительная разработка из всего упомянутого на презентации — это файловая система нового поколения Apple File System (APFS) в операционной системе macOS (Sierra) 10.12.

На сайте для разработчиков вскоре после презентации опубликована документация с основными характеристиками и описанием файловой системы, которая повторяет отдельные функции мощной свободной файловой системы ZFS.

Сейчас в компьютерах Apple используется файловая система HFS+, расширенная версия HFS (Hierarchical File System, иерархическая файловая система), созданной более 30 лет назад. Подобно своей предшественнице, HFS+ использует древовидную структуру, называемую B*-дерево, для хранения большей части метаданных. Отсюда и название «иерархическая файловая система».

Официальное представление HFS+ состоялось 19 января 1998 года, вместе с MacOS 8.1. С 2002 года в системе реализовано журналирование для повышения надёжности хранения информации. С версии OS X 10.3 журналирование включено по умолчанию, появилась возможность работать в режиме с учётом регистра имён.

Вплоть до версии OS X 10.7 разработчики продолжали дорабатывать HFS+ и реализовывать на уровне файловой системы новые функции для OS X. Но факт остаётся фактом: HFS изначально разрабатывалась во времена флоппи-дисков и крутящихся винчестеров, когда размеры файлов измерялись в килобайтах или мегабайтах. Сегодня многие работают с накопителями SSD, где хранятся миллионы файлов — гигабайты или терабайты данных. К файловой системе выдвигаются совершенно иные требования. Вместо доработки старого кода компания Apple решила наконец-то написать новую файловую систему с нуля.

Файловая система APFS нового поколения пока находится на стадии developer preview, то есть её не планируется выкатывать в массовое использование в ближайшее время. В данный момент нельзя использовать том APFS как загрузочный диск, его также нельзя применять в системе резервного копирования Time Machine, в Fusion Drive или с шифрованием File Vault. Но можно для обычного незагрузочного тома.

Предстоит ещё долгая доработка и тестирование, но уже потом APFS станет основной файловой системой Apple на десятилетия вперёд.

APFS, в отличие от HFS+, изначально различает регистр символов в названиях файлов и папок, и эту функцию нельзя отключить. Это следует иметь в виду всем, кто решит использовать APFS.

В принципе, Apple рекомендует для начала поэкспериментировать с APFS на внешнем накопителе, на котором не хранится ничего важного. Для этого предлагается использовать утилиту hdiutil.

Основные характеристики

В официальной документации перечислены общие характеристики файловой системы APFS в сравнении с HFS+.

Контейнеры и тома

Контейнер — это основной объект для хранения данных в APFS. Конейнеры обычно полностью совпадают с записями GUID Partition Table (GPT), у них собственная схема защиты от сбоев и распределения дискового пространства. Каждый контейнер содержит один или больше томов или файловых систем, в каждой из которых есть собственное пространство имён, то есть набор файлов и директорий.

APFS напрямую не поддерживает программный RAID, но её можно использовать с томами Apple RAID для поддержки Striping (RAID 0), Mirroring (RAID 1) и Concatenation (JBOD).

64-битные индексные дескрипторы (inode)

64-битные иноды значительно увеличивает пространство имён, по сравнению с 32-битными индентификаторами в HFS+. В 64-битной файловой системе APFS поддерживается более 9 квинтиллионов файлов на каждом томе. Этого должно хватить каждому, как говорил Билл Гейтс.

Наносекундные метки времени

В APFS значительно увеличена точность меток времени (таймстампов). APFS поддерживает установку меток времени с точностью до наносекунды. Для сравнения, в HFS+ метки времени выставлялись с точностью до секунды.

Наносекундные таймстампы очень важны в современных файловых системах, потому что они помогают реализовать атомарности и атомарных транзакций — одного из основных требований ACID к транзакционной системе (например, к СУБД). Атомарность гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все её подоперации, либо не выполнено ни одной.

Защита от сбоев

В APFS реализована инновационная схема метаданных copy-on-write, которую Apple называет «защитой от сбоев» (“Crash Protection”). Она гарантирует, что изменения в файловой системе и записи в журнал остаются в синхронизированном виде, если что-то происходит во время записи — например, пропадает электропитание.


Схема copy-on-write в ZFS

Разреженные файлы (sparse files)

Файл с атрибутом «разреженный» предполагает содержание блоков нулевых байт, не хранимых на накопителе, а подразумеваемых. В HFS+ не было поддержки разреженных файлов.

Расширенные атрибуты

APFS имеет встроенную поддержку расширенных файловых атрибутов, которая в HFS+ реализовалась через файл Attributes, то есть через B-дерево.

Читайте также:  Virtualbox usb error windows

Шифрование

Apple заявляет, что шифрование является фундаментальным свойством, которое встроено в APFS на уровне файловой системы. Для каждого тома в контейнере APFS устанавливается одна из моделей шифрования: без шифрования, шифрование с одним ключом, шифрование с несколькими ключами. В последнем случае отдельные ключи применяются для шифрования файлов и метаданных. В зависимости от оборудования, APFS использует режим шифрования AES-XTS или AES-CBC.

Клонирование файлов и директорий

Клонирование — практически мгновенное копирование файла или директории, при котором не требуется дополнительное место для хранения данных. При модификации клона файловая система записывает только изменение данных. Таким образом, новая файловая система может хранить много версий больших файлов, отнимая меньше дискового пространства.

Снапшоты

Снапшоты — открытые только для чтения «слепки» файловой системы в томе. Операционная система может использовать снапшоты для более эффективной процедуры резервного копирования. То есть наконец-то Time Machine будет работать нормально (быстро).

Конечно, по своим возможностям APFS значительно уступает 128-битной файловой системе ZFS, которую поддерживают Linux, FreeBSD и другие свободные ОС, но со стороны Apple это шаг в правильном направлении.

Странно, что в предварительной документации не упомянута функция компрессии, которую HFS+, кстати, поддерживает.

Apple долго пыталась перенести ZFS на систему OS X, по этому поводу велась активная дискуссия в списках рассылки ZFS, были опубликованы предварительные снапшоты для следующей версии OS X. Позже была сделана реализация OpenZFS для OS X (O3X) и MacZFX.

Файловая система ZFS распространяется с открытым исходным кодом, и Apple вполне могла позаимствовать некоторые идеи для файловой системы APFS. Реализация open source для APFS пока не готова, компания Apple планирует опубликовать задокументировать и опубликовать формат APFS в 2017 году.

На конференции WWDC сегодня вечером состоится первая формальная сессия, где разработчикам более подробно продемонстрируют новые возможности APFS.

Источник

Windows Vista и Mac OS X лицом к лицу: диски и файловые системы (часть 2)

Структура каталогов

Структура каталогов 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 2003

В 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 ограничения чуть более строгие, так как нельзя использовать не только слэши «/» и «», но и кавычки, двоеточие и ряд других символов.

Читайте также:  Установка файлов tar linux

Следует отметить, что в целом файловая система 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 позволяет прожигать образы дисков — в силу поддержки этих образов.

Источник

Оцените статью