stringtranslate.com

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

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

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

Файловые системы могут использоваться на многих типах устройств хранения данных с использованием различных носителей. Представленные IBM в 1956 году жесткие диски ( жесткие диски ), начиная с начала 1960-х годов, были и остаются доминирующим дополнительным устройством хранения данных для компьютеров общего назначения и, по прогнозам, останутся таковыми в обозримом будущем. [2] Другие виды носителей, которые используются, включают твердотельные накопители , магнитные ленты и оптические диски. В некоторых случаях, например, в случае с tmpfs , основная память компьютера ( оперативная память , ОЗУ) используется для создания временной файловой системы для краткосрочного использования.

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

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

Из ок. С  1900 года и до появления компьютеров термины « файловая система» и «система хранения файлов» использовались для описания метода хранения и извлечения бумажных документов. [5] К 1961 году термин « файловая система» стал применяться к компьютеризированному хранению документов наряду с первоначальным значением. [6] К 1964 году он уже широко использовался. [7]

Архитектура

Файловая система состоит из двух или трех слоев. Иногда уровни явно разделены, а иногда функции объединены. [8]

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

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

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

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

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

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

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

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

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

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

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

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

Имена файлов

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

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

Каталоги

Файловые системы обычно имеют каталоги (также называемые папками ), которые позволяют пользователю группировать файлы в отдельные коллекции. Это может быть реализовано путем связывания имени файла с индексом в оглавлении или индексным дескриптором в Unix-подобной файловой системе. Структуры каталогов могут быть плоскими (то есть линейными) или допускать иерархию, в которой каталоги могут содержать подкаталоги. Первая файловая система, поддерживающая произвольную иерархию каталогов, использовалась в операционной системе Multics . [12] Собственные файловые системы Unix-подобных систем также поддерживают произвольные иерархии каталогов, как, например, иерархическая файловая система Apple и ее преемница 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 ), [13] , а также для изменения метаданных, связанных с каталогом. Утилиты каталогов могут также включать в себя возможности создания дополнительных ссылок на каталог ( жесткие ссылки в Unix ), переименования родительских ссылок («..» в Unix-подобных операционных системах), [ необходимы пояснения ] и создания двунаправленных ссылок на файлы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Флеш-файловые системы

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

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

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

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

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

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

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

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

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

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

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

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

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

Другая концепция управления файлами — это идея файловой системы на основе базы данных. Вместо иерархического структурированного управления или в дополнение к нему файлы идентифицируются по их характеристикам, таким как тип файла, тема, автор или аналогичные обширные метаданные . [16]

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

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

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

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

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

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

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

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

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

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

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

Файловые системы общего диска

Файловая система общего диска — это система, в которой несколько машин (обычно серверов) имеют доступ к одной и той же внешней дисковой подсистеме (обычно к сети хранения данных ). Файловая система определяет доступ к этой подсистеме, предотвращая конфликты записи. [26] Примеры включают 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 и других операционных системах, на которые она влияет, где полное имя файла или путь к файлу может включать префикс устройства, устройства, отличные от тех, которые содержат файловые системы, обозначаются префиксом устройства. указав устройство, без чего-либо следующего за ним.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Линукс

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 (ранее известный как Solstice DiskSuite ). Несколько операционных систем (включая Solaris) могут использовать Veritas Volume Manager . Современные операционные системы на базе Solaris затмевают необходимость управления томами благодаря использованию виртуальных пулов хранения данных в ZFS .

macOS

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

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

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

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

macOS также поддерживала файловую систему UFS , полученную из быстрой файловой системы BSD Unix через NeXTSTEP . Однако, начиная с Mac OS X Leopard , macOS больше не может быть установлен на том UFS, а система до Leopard, установленная на томе UFS, не может быть обновлена ​​до Leopard. [28] Начиная с 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, но только после нетривиального изменения системных настроек (существует стороннее программное обеспечение, автоматизирующее это). [29]

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

ОС/2

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

ПК-BSD

PC-BSD — это настольная версия FreeBSD, которая унаследовала поддержку ZFS от FreeBSD , аналогично 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 86-DOS . DR-DOS была основана на Concurrent DOS компании Digital Research , преемнице 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 8.1, Windows 10 и Windows 11.

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

OpenVMS

МВС

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

Диалоговая система мониторинга

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

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

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

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

Ограничения

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

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

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

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

Миграция в другую файловую систему

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

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

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

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

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

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

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

Примечания

  1. ^ Для записи ленты LTO-6 емкостью 2,5 ТБ требуется более 4 часов со скоростью 160 МБ/сек.

Рекомендации

  1. ^ «5.10. Файловые системы». Проект документов Linux . Проверено 11 декабря 2021 г. Файловая система — это методы и структуры данных, которые операционная система использует для отслеживания файлов на диске или разделе; то есть способ организации файлов на диске.
  2. ^ «Хранение данных, ИТ-технологии и рынки, статус и эволюция» (PDF) . 20 сентября 2018 г. Жесткие диски по-прежнему будут ключевым хранилищем в обозримом будущем, а твердотельные накопители неэффективны с точки зрения емкости.
  3. ^ Арпачи-Дюссо, Ремзи Х.; Арпачи-Дюссо, Андреа К. (2014), Реализация файловой системы (PDF) , Книги Арпачи-Дюссо
  4. ^ Арпачи-Дюссо, Ремзи Х.; Арпачи-Дюссо, Андреа К. (2014), Сетевая файловая система Sun (PDF) , Книги Арпачи-Дюссо
  5. ^ МакГилл, Флоренс Э. (1922). Офисная практика и деловые процедуры. Издательская компания Грегг. п. 197 . Проверено 1 августа 2016 г.
  6. ^ Уоринг, Р.Л. (1961). Технические исследования добавления печатной продукции к элементам механизированной библиотечной системы: окончательный отчет, 20 сентября 1961 г. Цинциннати, Огайо: Svco Corporation. ОСЛК  310795767.
  7. ^ Приложения для дисковых файлов: отчеты, представленные на Первом национальном симпозиуме по дисковым файлам. Американская обработка данных. 1964 год . Проверено 1 августа 2016 г.
  8. ^ abc Амир, Яир. «Операционные системы 600.418 Файловая система». Факультет компьютерных наук Университета Джонса Хопкинса . Проверено 31 июля 2016 г.
  9. ^ ab Корпорация IBM. «Компонентная структура логической файловой системы». Центр знаний IBM . Проверено 31 июля 2016 г.
  10. ^ Кэрриер 2005, стр. 187–188.
  11. ^ Вальвано, Джонатан В. (2011). Встроенные микрокомпьютерные системы: интерфейс реального времени (Третье изд.). Cengage Обучение . п. 524. ИСБН 978-1-111-42625-5. Проверено 30 июня 2022 г.
  12. ^ RC Дейли; П.Г. Нейман (1965). «Файловая система общего назначения для вторичного хранилища». Материалы осенней совместной компьютерной конференции, состоявшейся 30 ноября — 1 декабря 1965 г., Часть I по XX — AFIPS '65 (Осень, часть I) . Осенняя совместная компьютерная конференция. АФИПС . стр. 213–229. дои : 10.1145/1463891.1463915 . Проверено 30 июля 2011 г.
  13. ^ Мохан, И. Чандра (2013). Операционные системы. Дели: PHI Learning Pvt. ООО с. 166. ИСБН 9788120347267. Проверено 27 июля 2014 г. Слово dentry является сокращением от «запись в каталоге». Дентри — это не что иное, как конкретный компонент на пути от корня. Они (имя каталога или имя файла) обеспечивают доступ к файлам или каталогам[.]
  14. ^ «KSAM: метод последовательного доступа на основе AB + -дерева» . Исследовательские ворота . Проверено 29 апреля 2016 г.
  15. ^ Дуглис, Фред; Касерес, Рамон; Каашук, М. Франс ; Кришнан, П.; Ли, Кай; Марш, Брайан ; Таубер, Джошуа (1994). «18. Альтернативные варианты хранения данных для мобильных компьютеров». Мобильные вычисления . Том. 353. УСЕНИКС . стр. 473–505. дои : 10.1007/978-0-585-29603-6_18. ISBN 978-0-585-29603-6. S2CID  2441760.
  16. ^ «Windows в базе данных - нарезано ветеранами BeOS» . theregister.co.uk. 29 марта 2002 г. Проверено 7 февраля 2014 г.
  17. ^ «IBM DB2 для i: Обзор». 03.ibm.com. Архивировано из оригинала 2 августа 2013 г. Проверено 7 февраля 2014 г.
  18. ^ «IBM DeveloperWorks: Новое в IBM i» . IBM.com. 08.03.2011 . Проверено 7 февраля 2014 г.
  19. ^ «Преемник XP Longhorn переходит на SQL, P2P – утечки информации от Microsoft» . theregister.co.uk. 28 января 2002 г. Проверено 7 февраля 2014 г.
  20. ^ «Альтернативы использованию транзакционной NTFS (Windows)» . Msdn.microsoft.com. 05.12.2013 . Проверено 7 февраля 2014 г.
  21. ^ Спиллейн, Ричард; Гайквад, Сачин; Чинни, Манджунатх; Садок, Эрез; Райт, Чарльз П. (2009). Включение транзакционного доступа к файлам с помощью облегченных расширений ядра (PDF) . Седьмая конференция USENIX по файловым технологиям и технологиям хранения (FAST 2009).
  22. ^ Райт, Чарльз П.; Спиллейн, Ричард; Шиватхану, Гопалан; Садок, Эрез (2007). «Распространение семантики ACID на файловую систему» ​​(PDF) . Транзакции ACM в хранилище . 3 (2): 4. дои : 10.1145/1242520.1242521. S2CID  8939577.
  23. ^ Зельцер, Марго И. (1993). «Поддержка транзакций в файловой системе с журнальной структурой» (PDF) . Материалы девятой международной конференции по инженерии данных .
  24. ^ Портер, Дональд Э.; Хофманн, Оуэн С.; Россбах, Кристофер Дж.; Бенн, Александр; Витчел, Эммет (октябрь 2009 г.). «Транзакции операционной системы» (PDF) . Материалы 22-го симпозиума ACM по принципам операционных систем (SOSP '09) . Биг Скай, Монтана.
  25. ^ Гал, Эран; Толедо, Сиван. Транзакционная файловая система Flash для микроконтроллеров (PDF) . ЮСЕНИКС 2005.
  26. ^ Троппенс, Ульф; Эркенс, Райнер; Мюллер, Вольфганг (2004). Объяснение сетей хранения: основы и применение Fibre Channel SAN, NAS, iSCSI и InfiniBand. Джон Уайли и сыновья . стр. 124–125. ISBN 0-470-86182-7. Проверено 30 июня 2022 г.
  27. ^ «Mac OS X: О ведении журнала файловой системы» . Яблоко . Проверено 8 февраля 2014 г.
  28. ^ «Mac OS X 10.5 Leopard: установка на том в формате UFS» . apple.com . 19 октября 2007 г. Архивировано из оригинала 16 марта 2008 г. Проверено 29 апреля 2016 г.
  29. ^ OSXDaily (02.10.2013). «Как включить поддержку записи NTFS в Mac OS X» . Проверено 6 февраля 2014 г.
  30. ^ аб Стив Бантинг (14 августа 2012 г.). EnCase Computer Forensics — официальный EnCE: сертифицированный эксперт EnCase. ISBN 9781118219409. Проверено 7 февраля 2014 г.
  31. ^ «Форматы файловой системы, доступные в Дисковой утилите на Mac» . Поддержка Apple .
  32. ^ «Спецификация файловой системы exFAT». Документы Майкрософт .
  33. ^ Файловая система Prospero: глобальная файловая система, основанная на модели виртуальной системы. 1992.
  34. ^ Пиркола, GC (июнь 1975 г.). «Файловая система для среды общего назначения с разделением времени». Труды IEEE . 63 (6): 918–924. дои : 10.1109/PROC.1975.9856. ISSN  0018-9219. S2CID  12982770.
  35. ^ Пиркола, Гэри К.; Сангинетти, Джон. «Защита информации в среде общего назначения с разделением времени». Материалы симпозиума IEEE по тенденциям и приложениям 1977 года: Компьютерная безопасность и целостность . Том. 10. С. 106–114.
  36. ^ ab «Как конвертировать FAT-диски в NTFS». Документы Майкрософт .
  37. ^ "Инструкции по Ext4" . ядро.орг . Проверено 29 апреля 2016 г.
  38. ^ ab «Преобразование из Ext3». Btrfs вики .

Источники

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

Книги

В сети

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