Файловая система - File system

В вычислении , файловая система или файловая система (часто сокращенно фс ) представляет собой способ и структура данных , что операционная система использует для управления , как данные хранятся и извлекаются. Без файловой системы данные, помещенные на носитель данных, были бы одним большим массивом данных без возможности определить, где заканчивается один фрагмент данных и начинается следующий. Разделив данные на части и присвоив каждой части имя, данные легко изолировать и идентифицировать. Получив свое название от названия системы управления бумажными данными, каждая группа данных называется « файлом ». Структура и логические правила, используемые для управления группами данных и их именами, называются «файловой системой».

Есть много разных файловых систем. Каждый из них имеет различную структуру и логику, свойства скорости, гибкости, безопасности, размера и т. Д. Некоторые файловые системы были разработаны для использования в определенных приложениях. Например, файловая система ISO 9660 разработана специально для оптических дисков .

Файловые системы могут использоваться на различных типах устройств хранения , использующих различные типы носителей. По состоянию на 2019 год жесткие диски были ключевыми устройствами хранения и, по прогнозам, останутся таковыми в обозримом будущем. Другие используемые типы носителей включают твердотельные накопители , магнитные ленты и оптические диски. В некоторых случаях, например, с tmpfs , основная память компьютера ( оперативная память , RAM) используется для создания временной файловой системы для краткосрочного использования.

Некоторые файловые системы используются на локальных устройствах хранения данных ; другие обеспечивают доступ к файлам через сетевой протокол (например, клиенты NFS , SMB или 9P ). Некоторые файловые системы являются «виртуальными», что означает, что предоставленные «файлы» (называемые виртуальными файлами ) вычисляются по запросу (например, procfs и sysfs ) или являются просто отображением в другую файловую систему, используемую в качестве резервного хранилища. Файловая система управляет доступом как к содержимому файлов, так и к метаданным об этих файлах. Он отвечает за организацию места для хранения вещей; надежность, эффективность и настройка физического носителя данных являются важными аспектами проектирования.

Происхождение термина

До появления компьютеров термин файловая система использовался для описания метода хранения и поиска бумажных документов. К 1961 году этот термин стал применяться к компьютеризированной архивации наряду с первоначальным значением. К 1964 году он стал повсеместным.

Архитектура

Файловая система состоит из двух или трех слоев. Иногда уровни явно разделяются, а иногда функции совмещаются.

Логическая файловая система отвечает за взаимодействие с пользовательским приложением. Она обеспечивает интерфейс прикладного программирования (API) для операций с файлами - OPEN, CLOSE, READи т.д., и передает запрошенную операцию на слой ниже его для обработки. Логическая файловая система «управляет записями открытой таблицы файлов и дескрипторами файлов для каждого процесса». Этот уровень обеспечивает «доступ к файлам, операции с каталогами, [а также] безопасность и защиту».

Второй необязательный уровень - это виртуальная файловая система . «Этот интерфейс позволяет поддерживать несколько одновременных экземпляров физических файловых систем, каждая из которых называется реализацией файловой системы».

Третий уровень - это физическая файловая система . Этот уровень связан с физической работой запоминающего устройства (например, диска). Он обрабатывает считываемые или записываемые физические блоки . Он обрабатывает буферизацию и управление памятью и отвечает за физическое размещение блоков в определенных местах на носителе. Физическая файловая система взаимодействует с драйверами устройств или с каналом для работы с запоминающим устройством.

Аспекты файловых систем

Управление пространством

Примечание: это применимо только к файловым системам, используемым в устройствах хранения.

Пример свободного места, продемонстрированный с кластерами NTFS размером 4096 байт : 100 000 файлов, каждые пять байтов на файл, что равно 500 000 байт фактических данных, но для хранения требуется 409 600 000 байт дискового пространства.

Файловые системы распределяют пространство детально, обычно несколько физических единиц на устройстве. Файловая система отвечает за организацию файлов и каталогов , а также за отслеживание того, какие области носителя принадлежат какому файлу, а какие не используются. Например, в Apple DOS начала 1980-х 256-байтовые сектора на 140-килобайтной гибкой дискете использовали карту дорожек / секторов .

Это приводит к неиспользуемому пространству, когда файл не является точным кратным единице распределения, что иногда называют резервным пространством . Для выделения 512 байт среднее неиспользуемое пространство составляет 256 байт. Для кластеров размером 64 КБ средний размер неиспользуемого пространства составляет 32 КБ. Размер единицы размещения выбирается при создании файловой системы. Выбор размера выделения на основе среднего размера файлов, которые, как ожидается, будут в файловой системе, может минимизировать объем неиспользуемого пространства. Часто распределение по умолчанию может обеспечить разумное использование. Выбор слишком маленького размера выделения приводит к чрезмерным накладным расходам, если файловая система будет содержать в основном очень большие файлы.

Файловые системы могут стать фрагментированными

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

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

Имена файлов

Имя файла (или имя файла ) используется для идентификации места хранения в файловой системе. Большинство файловых систем имеют ограничения на длину имен файлов. В некоторых файловых системах имена файлов не чувствительны к регистру (т. Е. Имена относятся к одному MYFILEи myfileтому же файлу в каталоге); в других случаях имена файлов чувствительны к регистру (т. е. имена MYFILE, MyFileи myfileотносятся к трем отдельным файлам, находящимся в одном каталоге).

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

Справочники

Файловые системы обычно имеют каталоги (также называемые папками ), которые позволяют пользователю группировать файлы в отдельные коллекции. Это может быть реализовано путем связывания имени файла с индексом в таблице содержания или индексным дескриптором в файловой системе, подобной Unix . Структуры каталогов могут быть плоскими (т. Е. Линейными) или допускать иерархии, в которых каталоги могут содержать подкаталоги. Первая файловая система, поддерживающая произвольную иерархию каталогов, использовалась в операционной системе Multics . Родная файловая система Unix-подобные системы также поддерживают произвольные иерархии каталогов, как это делает, например, Apple , «s Hierarchical File System , и его преемник HFS + в классическом Mac OS , в FAT файловой системы в MS-DOS 2.0 и более поздних версии MS-DOS и Microsoft Windows , файловая система NTFS в семействе операционных систем Windows NT , а также ODS-2 (On-Disk Structure-2) и более высокие уровни файловой системы Files-11 в OpenVMS .

Метаданные

Другая бухгалтерская информация обычно связана с каждым файлом в файловой системе. Длина данных , содержащихся в файле может быть сохранена в виде числа блоков , выделенные для файла или как байты счетчика. Время , что файл последнего изменения может быть сохранено в качестве временной метки файла. Файловые системы могут хранить время создания файла, время последнего доступа к нему, время изменения метаданных файла или время последнего резервного копирования файла. Другая информация может включать тип устройства файла (например, блок , символ , сокет , подкаталог и т. Д.), Идентификатор пользователя- владельца и идентификатор группы , права доступа и другие атрибуты файла (например, является ли файл доступным только для чтения, исполняемым и т. Д.) .).

Файловая система хранит все метаданные, связанные с файлом, включая имя файла, длину содержимого файла и расположение файла в иерархии папок, отдельно от содержимого файла.

Большинство файловых систем хранят имена всех файлов в одном каталоге в одном месте - таблице каталогов для этого каталога, - которое часто хранится как любой другой файл. Многие файловые системы помещают только некоторые метаданные для файла в таблицу каталогов, а остальные метаданные для этого файла в совершенно отдельную структуру, такую ​​как индексный дескриптор .

Большинство файловых систем также хранят метаданные, не связанные с каким-либо конкретным файлом. Такие метаданные включают информацию о неиспользуемых областях - битовую карту свободного пространства , карту доступности блоков - и информацию о плохих секторах . Часто такая информация о группе размещения хранится внутри самой группы размещения.

Дополнительные атрибуты могут быть связаны с файловыми системами, такими как NTFS , XFS , ext2 , ext3 , некоторые версии UFS и HFS + , с использованием расширенных атрибутов файлов . Некоторые файловые системы предоставляют определенные пользователем атрибуты, такие как автор документа, кодировка символов документа или размер изображения.

Некоторые файловые системы позволяют связывать разные коллекции данных с одним именем файла. Эти отдельные коллекции могут называться потоками или ветвями . Apple уже давно использует разветвленную файловую систему на Macintosh, а Microsoft поддерживает потоки в NTFS. Некоторые файловые системы поддерживают несколько прошлых ревизий файла под одним именем файла; имя файла само по себе извлекает самую последнюю версию, в то время как к предыдущей сохраненной версии можно получить доступ, используя специальное соглашение об именах, такое как «имя файла; 4» или «имя файла (-4)», чтобы получить доступ к версии, сохраненной четыре назад.

См. Сравнение файловых систем # Метаданные для получения подробной информации о том, какие файловые системы поддерживают какие типы метаданных.

Файловая система как абстрактный пользовательский интерфейс

В некоторых случаях файловая система может не использовать запоминающее устройство, но может использоваться для организации и представления доступа к любым данным, независимо от того, хранятся они или генерируются динамически (например, procfs ).

Утилиты

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

Утилиты каталога могут использоваться для создания, переименования и удаления записей каталога , которые также известны как dentries (в единственном числе: dentry ), а также для изменения метаданных, связанных с каталогом. Утилиты каталогов могут также включать возможности создания дополнительных ссылок на каталог ( жесткие ссылки в Unix ), переименования родительских ссылок («..» в Unix-подобных операционных системах) и создания двунаправленных ссылок на файлы.

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

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

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

Ограничение и разрешение доступа

Файловые системы используют несколько механизмов для управления доступом к данным. Обычно цель состоит в том, чтобы предотвратить чтение или изменение файлов пользователем или группой пользователей. Другая причина - обеспечить контролируемое изменение данных, чтобы доступ мог быть ограничен для конкретной программы. Примеры включают пароли, хранящиеся в метаданных файла или где-либо еще, и разрешения файла в форме битов разрешений, списков управления доступом или возможностей . Необходимость в утилитах файловой системы для доступа к данным на уровне носителя для реорганизации структур и обеспечения эффективного резервного копирования обычно означает, что они эффективны только для вежливых пользователей, но неэффективны против злоумышленников.

В файловую систему иногда включаются методы шифрования файловых данных. Это очень эффективно, поскольку утилитам файловой системы не нужно знать начальное значение шифрования для эффективного управления данными. Риски, связанные с использованием шифрования, включают тот факт, что злоумышленник может скопировать данные и использовать грубую силу для их расшифровки. Кроме того, потеря начального числа означает потерю данных.

Сохранение целостности

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

Другие сбои, с которыми должна иметь дело файловая система, включают сбои носителей или потерю соединения с удаленными системами.

В случае сбоя операционной системы или «мягкого» сбоя питания необходимо вызвать специальные процедуры в файловой системе, аналогичные тем, которые возникают при сбое отдельной программы.

Файловая система также должна уметь исправлять поврежденные структуры. Это может произойти в результате сбоя операционной системы, при котором операционная система не смогла уведомить файловую систему, сбоя питания или сброса.

Файловая система также должна записывать события, чтобы можно было анализировать системные проблемы, а также проблемы с конкретными файлами или каталогами.

Данные пользователя

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

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

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

Идентификация каждой записи, также известная как ключ, делает файловую систему более сложной. Программа пользователя может читать, записывать и обновлять записи независимо от их местоположения. Это требует сложного управления блоками мультимедиа, обычно разделяющих ключевые блоки и блоки данных. Для поиска записей можно разработать очень эффективные алгоритмы с пирамидальными структурами.

Использование файловой системы

Утилиты, библиотеки времени выполнения для конкретных языков и пользовательские программы используют API файловой системы для выполнения запросов к файловой системе. К ним относятся передача данных, позиционирование, обновление метаданных, управление каталогами, управление спецификациями доступа и удаление.

Несколько файловых систем в одной системе

Часто системы розничной торговли конфигурируются с единой файловой системой, занимающей все устройство хранения .

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

Третий подход, который в основном используется в облачных системах, заключается в использовании « образов дисков » для размещения дополнительных файловых систем с теми же атрибутами или без них в другой (основной) файловой системе в виде файла. Типичным примером является виртуализация: один пользователь может запустить экспериментальный дистрибутив Linux (с использованием файловой системы ext4 ) на виртуальной машине в своей производственной среде Windows (с использованием NTFS ). Файловая система ext4 находится в образе диска, который обрабатывается как файл (или несколько файлов, в зависимости от гипервизора и настроек) в файловой системе хоста NTFS.

Наличие нескольких файловых систем в одной системе дает дополнительное преимущество, заключающееся в том, что в случае повреждения одного раздела остальные файловые системы часто остаются нетронутыми. Это включает в себя вирусное уничтожение системного раздела или даже системы, которая не загружается. Утилиты файловой системы, требующие выделенного доступа, могут быть эффективно выполнены по частям. Кроме того, дефрагментация может быть более эффективной. Некоторые служебные программы обслуживания системы, такие как сканирование на вирусы и резервное копирование, также могут обрабатываться в сегментах. Например, нет необходимости создавать резервную копию файловой системы, содержащей видео, вместе со всеми другими файлами, если ни один не был добавлен с момента последнего резервного копирования. Что касается файлов изображений, можно легко «отделить» дифференциальные изображения, которые содержат только «новые» данные, записанные в основное (исходное) изображение. Дифференциальные образы могут использоваться для обеих целей безопасности (как «одноразовая» система - может быть быстро восстановлена ​​в случае уничтожения или заражения вирусом, так как старый образ может быть удален, а новый образ может быть создан за считанные секунды, даже без автоматизированные процедуры) и быстрое развертывание виртуальных машин (поскольку разностные образы могут быть быстро созданы с помощью сценария в пакетах).

Ограничения дизайна

Все файловые системы имеют некоторый функциональный предел, который определяет максимальный объем хранимых данных в этой системе . Эти функциональные ограничения - это попытка дизайнера наугад, основанная на том, насколько велики системы хранения в настоящий момент и насколько большими, вероятно, станут системы хранения в будущем. Объем дисковой памяти продолжает увеличиваться почти экспоненциально (см . Закон Мура ), поэтому через несколько лет файловые системы продолжают достигать проектных ограничений, которые требуют от пользователей компьютеров постоянно переходить на новые системы с все большей емкостью.

Сложность файловой системы обычно зависит от доступной емкости хранилища. Файловые системы домашних компьютеров начала 1980-х годов с объемом памяти от 50 до 512 КБ не были бы разумным выбором для современных систем хранения с емкостью в сотни гигабайт. Точно так же современные файловые системы не были бы разумным выбором для этих ранних систем, поскольку сложность современных структур файловых систем быстро потребляла бы или даже превышала очень ограниченную емкость ранних систем хранения.

Типы файловых систем

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

Дисковые файловые системы

Файл на диске система имеет преимущества способности носителей диска в случайном порядке адресных данных в короткий промежуток времени. Дополнительные соображения включают скорость доступа к данным после первоначально запрошенных и ожидание того, что следующие данные также могут быть запрошены. Это позволяет нескольким пользователям (или процессам) получать доступ к различным данным на диске независимо от их последовательного расположения. Примеры включают FAT ( FAT12 , FAT16 , FAT32 ), exFAT , NTFS , HFS и HFS + , HPFS , APFS , UFS , ext2 , ext3 , ext4 , XFS , btrfs , Files-11 , файловую систему Veritas , VMFS , ZFS , ReiserFS и ScoutFS. . Некоторые файловые системы на дисках являются файловыми системами журналирования или файловыми системами управления версиями .

Оптические диски

ISO 9660 и универсальный дисковый формат (UDF) - два распространенных формата, предназначенных для компакт-дисков , DVD и Blu-ray . Mount Rainier - это расширение UDF, поддерживаемое начиная с версии 2.6 ядра Linux и начиная с Windows Vista, которое упрощает перезапись на DVD.

Файловые системы Flash

Флэш - файловая система рассматривает специальные способности, производительности и ограничения флэш - памяти устройства. Часто файловая система на диске может использовать устройство флэш-памяти в качестве основного носителя, но гораздо лучше использовать файловую систему, специально разработанную для флэш-устройства.

Ленточные файловые системы

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

В файловой системе на диске обычно есть каталог основных файлов и карта используемых и свободных областей данных. Любые добавления, изменения или удаления файлов требуют обновления каталога и используемых / бесплатных карт. Произвольный доступ к областям данных измеряется в миллисекундах, поэтому эта система хорошо работает с дисками.

Лента требует линейного движения для наматывания и разматывания потенциально очень длинных рулонов носителя. Это движение ленты может занять от нескольких секунд до нескольких минут, чтобы переместить головку чтения / записи с одного конца ленты на другой.

Следовательно, каталог основных файлов и карта использования могут быть чрезвычайно медленными и неэффективными с лентой. Запись обычно включает в себя чтение карты использования блоков для поиска свободных блоков для записи, обновление карты использования и каталога для добавления данных, а затем продвижение ленты для записи данных в нужное место. Каждая дополнительная запись в файл требует обновления карты и каталога и записи данных, что может занять несколько секунд для каждого файла.

Вместо этого файловые системы на магнитной ленте обычно позволяют распределить каталог файлов по ленте вместе с данными, что называется потоковой передачей , так что для записи новых данных не требуются длительные и повторяющиеся движения ленты.

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

IBM разработала файловую систему для магнитных лент под названием Linear Tape File System . Реализация этой файловой системы IBM была выпущена как продукт IBM Linear Tape File System с открытым исходным кодом - Single Drive Edition (LTFS-SDE) . Файловая система линейной ленты использует отдельный раздел на ленте для записи метаданных индекса, что позволяет избежать проблем, связанных с разбросом записей каталога по всей ленте.

Форматирование ленты

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

Поскольку форматирование ленты занимает много времени, обычно ленты предварительно форматируются, поэтому пользователю ленты не нужно тратить время на подготовку каждой новой ленты к использованию. Все, что обычно необходимо, - это записать на ленту идентификационную этикетку носителя перед использованием, и даже это может быть автоматически записано программным обеспечением при первом использовании новой ленты.

Файловые системы баз данных

Еще одна концепция управления файлами - это файловая система на основе базы данных. Вместо или в дополнение к иерархическому структурированному управлению файлы идентифицируются по их характеристикам, таким как тип файла, тема, автор или аналогичные расширенные метаданные .

IBM DB2 for i (ранее известная как DB2 / 400 и DB2 для i5 / OS) - это файловая система базы данных как часть объектной операционной системы IBM i (ранее известной как OS / 400 и i5 / OS), включающая один уровень store и работающий на IBM Power Systems (ранее известный как AS / 400 и iSeries), разработанный Фрэнком Г. Солтисом, бывшим главным научным сотрудником IBM по IBM i. Примерно с 1978 по 1988 год Фрэнк Г. Солтис и его команда из IBM в Рочестере успешно разработали и применили такие технологии, как файловая система баз данных, чего позже другим, вроде Microsoft, не удалось. Эти технологии неофициально известны как «Крепость Рочестер» и в нескольких основных аспектах были расширены от ранних технологий мэйнфреймов, но во многих отношениях были более продвинутыми с технологической точки зрения.

Некоторые другие проекты, которые не являются "чистыми" файловыми системами баз данных, но используют некоторые аспекты файловой системы базы данных:

  • Многие системы управления веб-контентом используют реляционные СУБД для хранения и извлечения файлов. Например, файлы XHTML хранятся как XML или текстовые поля, а файлы изображений хранятся как поля больших двоичных объектов; Операторы SQL SELECT (с необязательным XPath ) извлекают файлы и позволяют использовать сложную логику и более обширные информационные ассоциации, чем «обычные файловые системы». Многие CMS также имеют возможность хранить только метаданные в базе данных, при этом стандартная файловая система используется для хранения содержимого файлов.
  • Очень большие файловые системы, воплощенные в таких приложениях, как Apache Hadoop и Google File System , используют некоторые концепции файловых систем баз данных .

Транзакционные файловые системы

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

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

Windows, начиная с Vista, добавила поддержку транзакций в NTFS в функции, называемой Transactional NTFS , но теперь ее использование не рекомендуется. Существует ряд исследовательских прототипов транзакционных файловых систем для систем UNIX, включая файловую систему Valor, Amino, LFS и транзакционную файловую систему ext3 в ядре TxOS, а также транзакционные файловые системы, ориентированные на встроенные системы, такие как TFFS.

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

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

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

Сетевые файловые системы

Сетевая файловая система является файловой системой , которая действует как клиент для протокола удаленного доступа к файлам, обеспечивая доступ к файлам на сервере. Программы, использующие локальные интерфейсы, могут прозрачно создавать, управлять и получать доступ к иерархическим каталогам и файлам на удаленных компьютерах, подключенных к сети. Примеры сетевых файловых систем включают клиентов для протоколов NFS , AFS , SMB и клиентов, подобных файловой системе, для FTP и WebDAV .

Общие дисковые файловые системы

Общая файловая система диска является тот , в котором количество машин (обычно сервера) , все они имеет доступ к одной и той же внешней дисковой подсистеме (обычно SAN). Файловая система определяет доступ к этой подсистеме, предотвращая конфликты записи. Примеры включают GFS2 от Red Hat , GPFS , теперь известную как Spectrum Scale, от IBM, SFS от DataPlow, CXFS от SGI , StorNext от Quantum Corporation и ScoutFS от Versity.

Специальные файловые системы

А специальная файловая система приведены элементы , не файл операционной системы , как файлы , так что они могут быть действовали на использование файловой системы API. Чаще всего это делается в Unix-подобных операционных системах, но устройства получают имена файлов и в некоторых не-Unix-подобных операционных системах.

Файловые системы устройства

Файловая система устройств представляет устройства ввода / вывод и псевдо-устройство в виде файлов, называемые файлы устройства . Примеры в Unix-подобных системах включают devfs, а в системах Linux 2.6 - udev . В не-Unix-подобных системах, таких как TOPS-10 и других операционных системах, на которые он влияет, где полное имя файла или путь к файлу может включать префикс устройства, устройства, отличные от тех, которые содержат файловые системы, обозначаются префиксом устройства. с указанием устройства без каких-либо следов.

Другие специальные файловые системы

  • В ядре Linux configfs и sysfs предоставляют файлы, которые можно использовать для запроса информации в ядре и настройки объектов в ядре.
  • procfs отображает процессы и, в Linux, другие структуры операционной системы в файловое пространство.

Минимальная файловая система / хранилище аудиокассет

В 1970-х дисковые и цифровые ленточные устройства были слишком дороги для некоторых первых пользователей микрокомпьютеров . Была разработана недорогая базовая система хранения данных, в которой использовалась обычная аудиокассета .

Когда системе требовалось записать данные, пользователя уведомляли о необходимости нажать «ЗАПИСЬ» на кассетном магнитофоне, а затем нажать «ВОЗВРАТ» на клавиатуре, чтобы уведомить систему о том, что кассетный магнитофон выполняет запись. Система записала звук, чтобы обеспечить синхронизацию времени, затем модулировала звуки, которые закодировали префикс, данные, контрольную сумму и суффикс. Когда системе требовалось прочитать данные, пользователю предлагалось нажать «PLAY» на кассетном магнитофоне. Система будет прослушивать звуки на ленте, ожидая, пока вспышка звука не будет распознана как синхронизация. Затем система будет интерпретировать последующие звуки как данные. Когда считывание данных было завершено, система уведомляла пользователя о необходимости нажать «СТОП» на кассетном магнитофоне. Это было примитивно, но (в основном) работало. Данные хранились последовательно, обычно в безымянном формате, хотя некоторые системы (например, серия компьютеров Commodore PET ) позволяли давать файлы с именами. Множественные наборы данных могут быть записаны и расположены путем быстрой перемотки ленты вперед и наблюдения на счетчике ленты, чтобы найти приблизительное начало следующей области данных на ленте. Пользователю, возможно, придется прислушаться к звукам, чтобы найти правильное место для начала воспроизведения следующей области данных. Некоторые реализации даже включали слышимые звуки, перемежающиеся с данными.

Плоские файловые системы

В плоской файловой системе нет подкаталогов ; записи каталога для всех файлов хранятся в одном каталоге.

Когда впервые появились дискеты, этого типа файловой системы было достаточно из-за относительно небольшого объема доступного пространства для данных. Машины CP / M имели плоскую файловую систему, в которой файлы могли быть назначены одной из 16 пользовательских областей, а общие файловые операции были сужены для работы с одной, а не по умолчанию для работы со всеми из них. Эти пользовательские области были не более чем специальными атрибутами, связанными с файлами; то есть не было необходимости определять конкретную квоту для каждой из этих областей, и файлы можно было добавлять в группы до тех пор, пока на диске оставалось свободное место для хранения. Ранний Apple Macintosh также имел плоскую файловую систему Macintosh File System . Это было необычно, поскольку программа управления файлами ( Macintosh Finder ) создавала иллюзию частично иерархической файловой системы поверх EMFS. Эта структура требовала, чтобы каждый файл имел уникальное имя, даже если он находился в отдельной папке. IBM DOS / 360 и OS / 360 хранят записи для всех файлов на пакете ( томе ) диска в каталоге пакета, который называется таблицей содержания тома (VTOC).

Хотя простые, плоские файловые системы становятся неудобными по мере роста количества файлов и затрудняют организацию данных в связанные группы файлов.

Недавнее дополнение к семейству плоской файловой системы является Amazon «s S3 , служба удаленного хранения, который намеренно упрощенным , чтобы позволить пользователям возможность настраивать как их данные хранятся. Единственные конструкции - это корзины (представьте себе диск неограниченного размера) и объекты (похожие, но не идентичные стандартной концепции файла). Расширенное управление файлами разрешено за счет возможности использования почти любого символа (включая '/') в имени объекта и возможности выбора подмножеств содержимого корзины на основе идентичных префиксов.

Файловые системы и операционные системы

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

Программное обеспечение операционной системы должно обеспечивать интерфейс между пользователем и файловой системой. Этот интерфейс может быть текстовым (например, предоставляемым интерфейсом командной строки , например оболочкой Unix или OpenVMS DCL ) или графическим (например, предоставляемым графическим пользовательским интерфейсом , например файловыми браузерами ). Если графический, часто используется метафора папки , содержащей документы, другие файлы и вложенные папки (см. Также: каталог и папка).

Unix и Unix-подобные операционные системы

Unix-подобные операционные системы создают виртуальную файловую систему, в которой все файлы на всех устройствах кажутся существующими в единой иерархии. Это означает, что в этих системах есть один корневой каталог , и каждый файл, существующий в системе, находится где-то в нем. Unix-подобные системы могут использовать RAM-диск или общий сетевой ресурс в качестве корневого каталога.

Unix-подобные системы присваивают имя каждому устройству, но не так получают доступ к файлам на этом устройстве. Вместо этого, чтобы получить доступ к файлам на другом устройстве, операционная система должна сначала узнать, где в дереве каталогов должны появиться эти файлы. Этот процесс называется монтированием файловой системы. Например, чтобы получить доступ к файлам на компакт-диске , нужно сказать операционной системе: «Возьмите файловую систему с этого компакт-диска и поместите ее в такой-то каталог». Каталог, предоставленный операционной системе, называется точкой монтирования  - это может быть, например, / media . / Медиа - каталог существует во многих системах Unix (как указано в Filesystem Hierarchy Standard ) и предназначен специально для использования в качестве точки монтирования для сменных носителей , таких как CD, DVD, USB - дисков или дискет. Он может быть пустым или содержать подкаталоги для установки отдельных устройств. Как правило, только администратор (то есть пользователь root ) может разрешить монтирование файловых систем.

Unix-подобные операционные системы часто включают программное обеспечение и инструменты, которые помогают в процессе монтирования и предоставляют ему новые функции. Некоторые из этих стратегий были придуманы как «автоматический монтаж» как отражение их цели.

  • Во многих ситуациях файловые системы, отличные от корневой, должны быть доступны сразу после загрузки операционной системы . Поэтому все Unix-подобные системы предоставляют возможность монтирования файловых систем во время загрузки. Системные администраторы определяют эти файловые системы в файле конфигурации fstab ( vfstab в Solaris ), который также указывает параметры и точки монтирования.
  • В некоторых ситуациях нет необходимости монтировать определенные файловые системы во время загрузки , хотя их использование может быть желательным после этого. Есть несколько утилит для Unix-подобных систем, которые позволяют монтировать предопределенные файловые системы по запросу.
  • Съемные носители позволяют передавать программы и данные между машинами без физического соединения. Общие примеры включают USB-накопители , компакт-диски и DVD-диски . Поэтому были разработаны служебные программы для обнаружения наличия и доступности носителя и последующего монтирования этого носителя без какого-либо вмешательства пользователя.
  • Прогрессивные Unix-подобные системы также представили концепцию, называемую супермонтированием ; см., например, проект Linux supermount-ng . Например, супермонтированная дискета может быть физически удалена из системы. В нормальных условиях диск должен быть синхронизирован, а затем размонтирован перед его извлечением. Если синхронизация произошла, в дисковод можно вставить другой диск. Система автоматически замечает, что диск был изменен, и обновляет содержимое точки монтирования, чтобы отразить новый носитель.
  • Автомоунтер автоматически монтирует файловую систему , когда делается ссылка на каталог , на вершине которой он должен быть установлен. Обычно это используется для файловых систем на сетевых серверах, вместо того, чтобы полагаться на такие события, как вставка носителя, как было бы уместно для съемных носителей.

Linux

Linux поддерживает множество файловых систем, но обычно в качестве системного диска на блочном устройстве можно выбрать семейство ext * ( ext2 , ext3 и ext4 ), XFS , JFS и btrfs . Для необработанной флэш-памяти без уровня трансляции флэш-памяти (FTL) или устройства с технологией памяти (MTD) , среди прочего , существуют UBIFS , JFFS2 и YAFFS . SquashFS - это обычная сжатая файловая система, доступная только для чтения.

Солярис

В более ранних выпусках Solaris по умолчанию использовалась UFS (без ведения журнала или без ведения журнала) для загрузочных и дополнительных файловых систем. Solaris по умолчанию использует UFS, поддерживает и расширяет его.

Поддержка других файловых систем и значительные улучшения были добавлены со временем, включая Veritas Software Corp. (журналирование) VxFS , Sun Microsystems (кластеризация) QFS , Sun Microsystems (журналирование) UFS и Sun Microsystems (открытый исходный код, объединение в пул, 128-битное сжатие, и исправление ошибок) ZFS .

В Solaris были добавлены расширения ядра для обеспечения возможности загрузки Veritas VxFS . Ведение журнала или журналирование было добавлено в UFS в Sun Solaris 7 . Выпуски Solaris 10 , Solaris Express, OpenSolaris и других вариантов операционной системы Solaris с открытым исходным кодом позже поддерживали загрузочную ZFS .

Управление логическими томами позволяет распределить файловую систему между несколькими устройствами с целью добавления избыточности, емкости и / или пропускной способности. Устаревшие среды в Solaris могут использовать Solaris Volume Manager (ранее известный как Solstice DiskSuite ). Несколько операционных систем (включая Solaris) могут использовать Veritas Volume Manager . Современные операционные системы на основе Solaris устраняют потребность в управлении томами за счет использования пулов виртуальных хранилищ в ZFS .

macOS

MacOS (ранее Mac OS X) использует файл Apple System (НПФ), который в 2017 году заменил файловую систему , унаследованную от классического Mac OS под названием HFS Plus (HFS +). Apple также использует термин «Mac OS Extended» для HFS +. HFS Plus - это файловая система с расширенными метаданными и сохранением регистра, но (обычно) нечувствительной к регистру . Из-за Unix-корней macOS, разрешения Unix были добавлены в HFS Plus. В более поздних версиях HFS Plus было добавлено ведение журнала для предотвращения повреждения структуры файловой системы и внесен ряд оптимизаций в алгоритмы распределения с целью автоматической дефрагментации файлов без использования внешнего дефрагментатора.

Имена файлов могут содержать до 255 символов. HFS Plus использует Unicode для хранения имен файлов. На MacOS, то Filetype может исходить от кода типа , хранящийся в метаданных файла, или расширения файла .

HFS Plus имеет три типа ссылок: жесткие ссылки в стиле Unix, символические ссылки в стиле Unix и псевдонимы . Псевдонимы предназначены для сохранения ссылки на исходный файл, даже если они перемещены или переименованы; они интерпретируются не самой файловой системой, а кодом диспетчера файлов в пользовательском пространстве .

macOS 10.13 High Sierra, анонсированная 5 июня 2017 года на мероприятии Apple WWDC, использует файловую систему Apple на твердотельных накопителях .

macOS также поддерживает файловую систему UFS , полученную из BSD Unix Fast File System через NeXTSTEP . Однако, начиная с Mac OS X Leopard , macOS больше нельзя было установить на том UFS, а систему Pre-Leopard, установленную на томе UFS, нельзя было обновить до Leopard. Начиная с Mac OS X Lion, поддержка UFS была полностью прекращена.

Новые версии macOS могут читать и записывать в устаревшие файловые системы FAT (16 и 32), распространенные в Windows. Они также могут читать новые файловые системы NTFS для Windows. Для записи в файловую систему NTFS в версиях macOS до Mac OS X Snow Leopard необходимо стороннее программное обеспечение. Mac OS X 10.6 (Snow Leopard) и более поздние версии позволяют запись в файловые системы NTFS, но только после нетривиального изменения настроек системы (существует стороннее программное обеспечение, которое автоматизирует это).

Наконец, macOS поддерживает чтение и запись файловой системы exFAT начиная с Mac OS X Snow Leopard, начиная с версии 10.6.5.

OS / 2

OS / 2 1.2 представила высокопроизводительную файловую систему (HPFS). HPFS поддерживает имена файлов со смешанным регистром в разных кодовых страницах , длинные имена файлов (255 символов), более эффективное использование дискового пространства, архитектуру, которая сохраняет связанные элементы рядом друг с другом на томе диска, меньшая фрагментация данных, пространство на основе экстентов распределение, древовидная структура B + для каталогов и корневой каталог, расположенный в средней точке диска, для более быстрого среднего доступа. Журнальная файловая система (JFS) была отправлена в 1999 году.

PC-BSD

PC-BSD является настольной версией FreeBSD, которая наследуется FreeBSD «S ZFS поддерживает, подобно FreeNAS . Новый графический установщик PC-BSD может обрабатывать / ( root ) в пулах ZFS и RAID-Z и шифрование диска с помощью Geli с самого начала простым и удобным ( GUI ) способом. Текущая версия PC-BSD 9.0+ Isotope Edition имеет файловую систему ZFS версии 5 и пул хранения ZFS версии 28.

План 9

Plan 9 от Bell Labs обрабатывает все как файл и обращается ко всем объектам, как к файлу (т. Е. Нет ioctl или mmap ): доступ к сети, графике, отладке, аутентификации, возможностям, шифрованию и другим службам осуществляется через I / O операции с файловыми дескрипторами . Протокол 9P устраняет разницу между локальными и удаленными файлами. Файловые системы в Plan 9 организованы с помощью частных пространств имен для каждого процесса, что позволяет каждому процессу иметь различное представление о множестве файловых систем, которые предоставляют ресурсы в распределенной системе.

В Inferno акции операционной системы эти понятия с Plan 9.

Майкрософт Виндоус

Список каталогов в командной оболочке Windows

Windows использует файловые системы FAT , NTFS , exFAT , Live File System и ReFS (последняя из них поддерживается и может использоваться только в Windows Server 2012 , Windows Server 2016 , Windows 8 , Windows 8.1 и Windows 10 ; Windows не загружается от него).

Windows использует абстракцию буквы диска на уровне пользователя, чтобы отличить один диск или раздел от другого. Например, путь C: \ WINDOWS представляет собой каталог WINDOWS в разделе, обозначенном буквой C. Диск C: чаще всего используется для основного раздела жесткого диска , на котором обычно устанавливается Windows и с которого она загружается. Эта «традиция» настолько прочно укоренилась, что во многих приложениях существуют ошибки, которые предполагают, что диск, на котором установлена ​​операционная система, - это C. Использование букв дисков и традиция использования буквы «C» в качестве буквы диска для основной раздел жесткого диска можно проследить до MS-DOS , где буквы A и B были зарезервированы для двух дисководов гибких дисков. Это, в свою очередь, произошло от CP / M 1970-х годов и, в конечном итоге, от IBM CP / CMS 1967 года.

ТОЛСТЫЙ

Семейство файловых систем FAT поддерживается практически всеми операционными системами для персональных компьютеров, включая все версии Windows и MS-DOS / PC DOS , OS / 2 и DR-DOS . (PC DOS - версия OEM из MS-DOS, MS-DOS первоначально была основана на SCP 's 86-DOS . DR-DOS была основана на Digital Research ' s Параллельная DOS , преемник CP / M-86 ) . В Таким образом, файловые системы FAT хорошо подходят в качестве универсального формата обмена между компьютерами и устройствами практически любого типа и возраста.

Файловая система FAT уходит своими корнями в (несовместимый) 8-битный предшественник FAT в Standalone Disk BASIC и недолговечный проект MDOS / MIDAS .

За прошедшие годы файловая система была расширена с FAT12 до FAT16 и FAT32 . В файловую систему были добавлены различные функции, включая подкаталоги , поддержку кодовой страницы , расширенные атрибуты и длинные имена файлов . Третьи стороны, такие как Digital Research, включили дополнительную поддержку для отслеживания удаления и многопользовательские схемы безопасности на основе томов / каталогов / файлов для поддержки паролей и разрешений для файлов и каталогов, таких как права доступа на чтение / запись / выполнение / удаление. Большинство этих расширений не поддерживаются Windows.

Файловые системы FAT12 и FAT16 имеют ограничение на количество записей в корневом каталоге файловой системы и ограничения на максимальный размер дисков или разделов в формате FAT .

FAT32 устраняет ограничения в FAT12 и FAT16, за исключением предельного размера файла, близкого к 4 ГБ, но он остается ограниченным по сравнению с NTFS.

FAT12, FAT16 и FAT32 также имеют ограничение в восемь символов для имени файла и три символа для расширения (например, .exe ). Это обычно называется ограничением имени файла 8,3 . VFAT , дополнительное расширение для FAT12, FAT16 и FAT32, представленное в Windows 95 и Windows NT 3.5 , позволяло хранить длинные имена файлов ( LFN ) в файловой системе FAT с обратной совместимостью.

NTFS

NTFS , представленная в операционной системе Windows NT в 1993 году, позволяла управлять разрешениями на основе ACL . Другие функции, также поддерживаемые NTFS, включают жесткие ссылки, несколько файловых потоков, индексирование атрибутов, отслеживание квот, разреженные файлы, шифрование, сжатие и точки повторной обработки (каталоги, работающие как точки монтирования для других файловых систем, символические ссылки, соединения, ссылки удаленного хранилища) .

exFAT

exFAT имеет определенные преимущества перед NTFS в отношении накладных расходов файловой системы .

exFAT не имеет обратной совместимости с файловыми системами FAT, такими как FAT12, FAT16 или FAT32. Файловая система поддерживается более новыми системами Windows, такими как Windows XP, Windows Server 2003, Windows Vista, Windows 2008, Windows 7, Windows 8 и Windows 10.

exFAT поддерживается в macOS, начиная с версии 10.6.5 (Snow Leopard). Поддержка в других операционных системах ограничена, поскольку для реализации поддержки exFAT требуется лицензия. exFAT - единственная файловая система, которая полностью поддерживается как в macOS, так и в Windows, и может содержать файлы размером более 4 ГБ.

OpenVMS

MVS

До введения VSAM , OS / 360 системы реализована гибридная файловую систему. Система была разработана для простой поддержки съемных дисковых пакетов , поэтому информация, относящаяся ко всем файлам на одном диске ( том в терминологии IBM), хранится на этом диске в плоском системном файле, который называется Таблица содержания тома (VTOC). VTOC хранит все метаданные файла. Позже была наложена иерархическая структура каталогов с введением системного каталога , который может дополнительно каталогизировать файлы (наборы данных) на резидентных и съемных томах. Каталог содержит только информацию, позволяющую связать набор данных с определенным объемом. Если пользователь запрашивает доступ к набору данных на автономном томе и у него есть подходящие права, система попытается смонтировать требуемый том. Каталогизированные и некаталогизированные наборы данных по-прежнему могут быть доступны с использованием информации в VTOC, минуя каталог, если требуемый идентификатор тома предоставлен в запросе OPEN. Еще позже VTOC был проиндексирован для ускорения доступа.

Система разговорного монитора

Компонент IBM Conversational Monitor System (CMS) в VM / 370 использует отдельную плоскую файловую систему для каждого виртуального диска ( минидиска ). Данные файла и управляющая информация разбросаны и перемешаны. Якорь - это запись под названием Master File Directory (MFD), всегда расположенная в четвертом блоке на диске. Первоначально CMS использовала 800-байтовые блоки фиксированной длины, но в более поздних версиях использовались блоки большего размера до 4K. Доступ к записи данных требует двух уровней косвенного обращения , где запись каталога файла (называемая записью таблицы состояния файла (FST)) указывает на блоки, содержащие список адресов отдельных записей.

Файловая система AS / 400

Данные в AS / 400 и его преемниках состоят из системных объектов, отображенных в системное виртуальное адресное пространство в одноуровневом хранилище . Определены многие типы объектов , включая каталоги и файлы из других файловых систем. Файловые объекты, наряду с объектами других типов, составляют основу поддержки AS / 400 интегрированной реляционной базы данных .

Другие файловые системы

  • Файловая система Prospero - это файловая система, основанная на модели виртуальной системы. Система была создана доктором Б. Клиффордом Нойманом из Института информационных наук Университета Южной Калифорнии.
  • Файловая система RSRE FLEX - написана на АЛГОЛ 68
  • Файловая система Michigan Terminal System (MTS) интересна тем, что: (i) она предоставляет «строковые файлы», в которых длины записей и номера строк связаны как метаданные с каждой записью в файле, строки могут быть добавлены, заменены, обновлены с помощью записи одинаковой или разной длины и удаляются в любом месте файла без необходимости чтения и перезаписи всего файла; (ii) использование файлов программных ключей может быть совместным или разрешено командам и программам в дополнение к пользователям и группам; и (iii) существует комплексный механизм блокировки файла, который защищает как данные файла, так и его метаданные.

Ограничения

Преобразование типа файловой системы

Может быть выгодно или необходимо иметь файлы в файловой системе, отличной от существующей в настоящее время. Причины включают необходимость увеличения требований к пространству за пределами текущей файловой системы. Возможно, потребуется увеличить глубину пути сверх ограничений файловой системы. Могут быть соображения производительности или надежности. Другой причиной является предоставление доступа к другой операционной системе, которая не поддерживает существующую файловую систему.

Преобразование на месте

В некоторых случаях преобразование может быть выполнено на месте, хотя миграция файловой системы является более консервативной, поскольку она включает в себя создание копии данных и рекомендуется. В Windows файловые системы FAT и FAT32 можно преобразовать в NTFS с помощью утилиты convert.exe, но не наоборот. В Linux ext2 можно преобразовать в ext3 (и преобразовать обратно), а ext3 можно преобразовать в ext4 (но не обратно), а ext3 и ext4 можно преобразовать в btrfs и преобразовать обратно до тех пор, пока информация об отмене не будет удалена. Эти преобразования возможны благодаря использованию одного и того же формата для самих данных файла и перемещению метаданных в пустое пространство, в некоторых случаях с использованием поддержки разреженных файлов .

Переход на другую файловую систему

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

Например, чтобы перенести файловую систему FAT32 в файловую систему ext2. Сначала создайте новую файловую систему ext2, затем скопируйте данные в файловую систему, затем удалите файловую систему FAT32.

Альтернативой, когда недостаточно места для сохранения исходной файловой системы до создания новой, является использование рабочей области (например, съемного носителя). Это занимает больше времени, но резервное копирование данных - хороший побочный эффект.

Длинные пути к файлам и длинные имена файлов

В иерархических файловых системах доступ к файлам осуществляется с помощью пути, который представляет собой список ветвлений каталогов, содержащих файл. Разные файловые системы имеют разные ограничения на глубину пути. Файловые системы также имеют ограничение на длину отдельного имени файла.

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

Смотрите также

Примечания

использованная литература

Источники

дальнейшее чтение

Книги

онлайн

внешние ссылки