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


Из Википедии, бесплатной энциклопедии
  (Перенаправлено из специальной файловой системы )
Перейти к навигации Перейти к поиску

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

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

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

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

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

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

Архитектура

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

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

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

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

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

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

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

Пример резервного пространства, продемонстрированный на кластерах 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 . [10] Собственные файловые системы 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 ), [11] и для изменения метаданных, связанных с каталогом. Утилиты каталогов могут также включать в себя возможности для создания дополнительных ссылок на каталог ( жесткие ссылки в Unix ), переименования родительских ссылок (".." в Unix-подобных операционных системах), [ требуется уточнение ] и создания двунаправленных ссылок на файлы.

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

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

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

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

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

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

Поддержание целостности

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

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

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

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

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

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

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

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

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

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

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

Утилиты, библиотеки времени выполнения для конкретных языков и пользовательские программы используют 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 File System , VMFS , ZFS , ReiserFS и ScoutFS. Некоторые дисковые файловые системы являются журналируемыми файловыми системами или файловыми системами управления версиями .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обеспечение согласованности между несколькими операциями файловой системы сложно, если вообще возможно, без транзакций файловой системы. Блокировку файлов можно использовать в качестве механизма управления параллелизмом для отдельных файлов, но обычно она не защищает структуру каталогов или метаданные файлов. Например, блокировка файлов не может предотвратить условия гонки 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 .. Это было необычно тем, что программа управления файлами ( 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-подобные операционные системы часто включают в себя программное обеспечение и инструменты, помогающие в процессе монтирования и предоставляющие ему новые функциональные возможности. Некоторые из этих стратегий были названы «автоматический монтаж» как отражение их цели.

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

линукс

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+. [23] HFS Plus — это файловая система с богатыми метаданными и регистро-сохраняющей, но (обычно) нечувствительной к регистру файловой системой. Из-за корней Unix в macOS разрешения Unix были добавлены в HFS Plus. Более поздние версии 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. [24] Начиная с 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, но только после нетривиального изменения системных настроек (существует стороннее программное обеспечение, которое автоматизирует это). [25]

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

ОС/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 с самого начала простым и удобным ( графическим интерфейсом ) способом. Текущая версия 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 10.

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

ОпенВМС

МВС

До появления 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 интегрированной реляционной базы данных .

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

  • Файловая система Prospero — это файловая система, основанная на модели виртуальной системы. [29] Система была создана доктором Б. Клиффордом Нойманом из Института информационных наук Университета Южной Калифорнии.
  • Файловая система RSRE FLEX - написана на ALGOL 68
  • Файловая система Мичиганской терминальной системы (MTS) интересна тем, что: (i) она предоставляет «файлы строк», где длины записей и номера строк связаны как метаданные с каждой записью в файле, строки могут быть добавлены, заменены, обновлены с помощью записи одинаковой или разной длины, а также удаление в любом месте файла без необходимости чтения и перезаписи всего файла; (ii) с помощью программных ключей файлы могут быть переданы или разрешены командам и программам, а также пользователям и группам; и (iii) имеется всеобъемлющий механизм блокировки файлов, который защищает как данные файла, так и его метаданные. [30] [31]

Ограничения

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

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

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

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

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

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

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

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

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

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

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

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

  • Сравнение файловых систем
  • Дисковая квота
  • Список файловых систем
  • Список Unix-команд
  • Структура каталогов
  • Общий доступ к диску
  • Распределенная файловая система
  • Распределенная архитектура управления данными
  • Файловый менеджер
  • Фрагментация файловой системы
  • Расширение имени файла
  • Глобальная файловая система
  • Хранилище объектов
  • Физическое и логическое хранилище
  • Эффективность хранения
  • Виртуальная файловая система

Примечания

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

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

  1. ^ «5.10. Файловые системы» . Проект документов Linux . Проверено 11 декабря 2021 г. . Файловая система — это методы и структуры данных, которые операционная система использует для отслеживания файлов на диске или разделе; то есть способ организации файлов на диске.
  2. ^ «Хранилище, ИТ-технологии и рынки, статус и эволюция» (PDF) . 20 сентября 2018 г. Жесткие диски по-прежнему будут ключевым хранилищем в обозримом будущем, твердотельные накопители нерентабельны с точки зрения емкости
  3. ^ Арпачи-Дюссо, Ремзи Х .; Арпачи-Дюссо, Андреа К. (2014), Реализация файловой системы (PDF) , Arpaci-Dusseau Books
  4. ^ Арпачи-Дюссо, Ремзи Х .; Арпачи-Дюссо, Андреа К. (2014), Сетевая файловая система Sun (PDF) , Arpaci-Dusseau Books
  5. ^ Макгилл, Флоренс Э. (1922). Офисная практика и бизнес-процедуры . Издательство Грегг. п. 197 . Проверено 1 августа 2016 г. .
  6. ^ Уоринг, Р.Л. (1961). Технические исследования по добавлению печатной продукции к элементам механизированной библиотечной системы: окончательный отчет, 20 сентября 1961 г. Цинциннати, Огайо: Svco Corporation. OCLC 310795767 . 
  7. ^ Приложения для дисковых файлов: отчеты, представленные на первом национальном симпозиуме по дисковым файлам . Американская обработка данных. 1964 . Проверено 1 августа 2016 г. .
  8. ^ a b c Амир, Яир. «Операционные системы 600.418 Файловая система» . Департамент компьютерных наук Университета Джонса Хопкинса . Проверено 31 июля 2016 г. .
  9. ^ а б Корпорация IBM. «Структура компонентов логической файловой системы» . Центр знаний IBM . Проверено 31 июля 2016 г. .
  10. ^ Р. С. Дейли; П. Г. Нойманн (1965). «Файловая система общего назначения для вторичного хранилища» . Материалы осенней совместной компьютерной конференции 30 ноября — 1 декабря 1965 г., часть I, посвященная XX — AFIPS '65 (осень, часть I) . Осенняя объединенная компьютерная конференция. АФИПС . стр. 213–229. дои : 10.1145/1463891.1463915 . Проверено 30 июля 2011 г. .
  11. ^ Мохан, И. Чандра (2013). Операционные системы . Дели: PHI Learning Pvt. ООО с. 166. ИСБН 9788120347267. Проверено 27 июля 2014 г. . Слово dentry является сокращением от «вход в каталог». Дентри — это не что иное, как определенный компонент на пути от корня. Они (имя каталога или имя файла) обеспечивают доступ к файлам или каталогам[.]
  12. ^ «KSAM: метод последовательного доступа с ключами на основе дерева AB +» . ResearchGate . Проверено 29 апреля 2016 г.
  13. ^ «Windows в базе данных - нарезанные и нарезанные кубиками ветераны BeOS» . theregister.co.uk. 2002-03-29 . Проверено 7 февраля 2014 г. .
  14. ^ «IBM DB2 для i: обзор» . 03.ibm.com . Проверено 7 февраля 2014 г. .
  15. ^ «IBM developerWorks: Новое в IBM i» . IBM.com. 08.03.2011 . Проверено 7 февраля 2014 г. .
  16. ^ «Преемник XP Longhorn переходит на SQL, P2P - утечки Microsoft» . theregister.co.uk. 28 января 2002 г. . Проверено 7 февраля 2014 г. .
  17. ^ «Альтернативы использованию транзакционной NTFS (Windows)» . Msdn.microsoft.com. 2013-12-05 . Проверено 7 февраля 2014 г. .
  18. ^ Спиллейн, Ричард; Гайквад, Сачин; Чинни, Манджунатх; Садок, Эрез и Райт, Чарльз П.; 2009 г.; "Включение транзакционного доступа к файлам через легковесные расширения ядра" ; Седьмая конференция USENIX по файловым технологиям и технологиям хранения (FAST 2009)
  19. ^ Райт, Чарльз П.; Спиллейн, Ричард; Шиватхану, Гопалан; Садок, Эрез; 2007 г.; «Расширение семантики ACID на файловую систему ; транзакции ACM в хранилище
  20. ^ Зельцер, Марго I .; 1993 год; «Поддержка транзакций в лог-структурированной файловой системе» ; Материалы Девятой международной конференции по инженерии данных
  21. ^ Портер, Дональд Э .; Хофманн, Оуэн С .; Россбах, Кристофер Дж.; Бенн, Александр и Витчел, Эммет; 2009 г.; «Транзакции операционной системы» ; В материалах 22-го симпозиума ACM по принципам операционных систем (SOSP '09), Big Sky, MT, октябрь 2009 г.
  22. ^ Гал, Эран; Толедо, Сиван; «Транзакционная файловая система флэш-памяти для микроконтроллеров»
  23. ^ «Mac OS X: о ведении журнала файловой системы» . Яблоко . Проверено 8 февраля 2014 г.
  24. ^ «Mac OS X 10.5 Leopard: установка на том в формате UFS» . apple.com . 19 октября 2007 г. Архивировано из оригинала 16 марта 2008 г .. Проверено 29 апреля 2016 г.
  25. ^ OSXDaily (2 октября 2013 г.). «Как включить поддержку записи NTFS в Mac OS X» . Проверено 6 февраля 2014 г.
  26. ^ a b Стив Бантинг (14 августа 2012 г.). EnCase Computer Forensics — официальный EnCE: сертифицированный эксперт EnCase . ISBN 9781118219409. Проверено 7 февраля 2014 г. .
  27. ^ «Форматы файловой системы, доступные в Дисковой утилите на Mac» . Поддержка Apple .
  28. ^ «Спецификация файловой системы exFAT» . Документы Майкрософт .
  29. ^ Файловая система Prospero: глобальная файловая система, основанная на модели виртуальной системы . 1992.
  30. ^ «Файловая система для среды с разделением времени общего назначения» , Г. К. Пиркола, Труды IEEE , июнь 1975 г., том 63, вып. 6, стр. 918–924, ISSN 0018-9219.
  31. ^ «Защита информации в среде с разделением времени общего назначения» , Гэри С. Пиркола и Джон Сангинетти, Труды симпозиума IEEE по тенденциям и приложениям 1977: Компьютерная безопасность и целостность , том. 10 нет. 4, стр. 106-114
  32. ^ a b Как преобразовать диски FAT в NTFS , Microsoft, 25 октября 2001 г.
  33. Викискладе есть медиафайлы по Ext4 . ядро.org . Проверено 29 апреля 2016 г.
  34. ^ a b Преобразование из Ext3 , вики Btrfs

Источники

  • де Бойн Поллард, Джонатан (1996). «Ограничения размера диска и тома» . Часто задаваемые ответы . Проверено 9 февраля 2005 г.
  • «Исправление службы исправления OS / 2 JR09427» . ИБМ . Проверено 9 февраля 2005 г.
  • "Атрибут - $EA_INFORMATION (0xD0)" . Информация о NTFS, проект Linux-NTFS . Проверено 9 февраля 2005 г.
  • "Атрибут - $EA (0xE0)" . Информация о NTFS, проект Linux-NTFS . Проверено 9 февраля 2005 г.
  • "Атрибут - $STANDARD_INFORMATION (0x10)" . Информация о NTFS, проект Linux-NTFS . Проверено 21 февраля 2005 г.
  • «Техническое примечание TN1150: формат тома HFS Plus» . Apple Inc. Проверено 22 сентября 2015 г.
  • Брайан Кэрриер (2005). Криминалистический анализ файловой системы . Эддисон Уэсли.

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

Книги

  • Арпачи-Дюссо, Ремзи Х .; Арпачи-Дюссо, Андреа К. (2014). Операционные системы: три простых шага . Книги Арпачи-Дюссо.
  • Кэрриер, Брайан (2005). Криминалистический анализ файловой системы . Эддисон-Уэсли . ISBN 0-321-26817-2.
  • Кастер, Хелен (1994). Внутри файловой системы Windows NT . Майкрософт Пресс . ISBN 1-55615-660-Х.
  • Джампаоло, Доминик (1999). Практическое проектирование файловой системы с помощью Be File System (PDF) . Издательство Морган Кауфманн. ISBN 1-55860-497-9. Архивировано (PDF) из оригинала 03 сентября 2018 г .. Проверено 15 декабря 2019 г. .
  • Маккой, Кирби (1990). Внутреннее устройство файловой системы VMS . VAX - серия VMS. Цифровая пресса . ISBN 1-55558-056-4.
  • Митчелл, Стэн (1997). Внутри файловой системы Windows 95 . О'Райли . ISBN 1-56592-200-Х.
  • Нагар, Раджив (1997). Внутреннее устройство файловой системы Windows NT: руководство разработчика . О'Райли . ISBN 978-1-56592-249-5.
  • Пейт, Стив Д. (2003). Файловые системы UNIX: эволюция, проектирование и реализация . Уайли . ISBN 0-471-16483-6.
  • Розенблюм, Мендель (1994). Проектирование и реализация лог-структурированной файловой системы . Международная серия Springer по инженерии и информатике. Спрингер. ISBN 0-7923-9541-7.
  • Руссинович, Марк; Соломон, Дэвид А .; Ионеску, Алекс (2009). «Файловые системы». Внутреннее устройство Windows (5-е изд.). Майкрософт Пресс . ISBN 978-0-7356-2530-3.
  • Прабхакаран, Виджаян (2006). Файловые системы IRON . Кандидатская диссертация, Университет Висконсин-Мэдисон.
  • Зильбершатц, Авраам; Гэлвин, Питер Бэр; Ганье, Грег (2004). «Управление хранилищем». Концепции операционных систем (7-е изд.). Уайли. ISBN 0-471-69466-5.
  • Таненбаум, Эндрю С. (2007). Современные операционные системы (3-е изд.). Прентис Холл . ISBN 978-0-13-600663-3.
  • Таненбаум, Эндрю С .; Вудхалл, Альберт С. (2006). Операционные системы: проектирование и реализация (3-е изд.). Прентис Холл . ISBN 0-13-142938-8.

В сети

  • Сравнительный анализ файловых систем (устарело) , ​​Джастин Пищ, Linux Gazette 102, май 2004 г.
  • Сравнительный анализ файловых систем, часть II с использованием ядра 2.6, Джастин Пищ, Linux Gazette 122, январь 2006 г.
  • Сравнение файловых систем (ext3, ReiserFS, XFS, JFS) в Debian Etch . Архивировано 13 сентября 2008 г. на Wayback Machine 2006 г.
  • Интервью с людьми, стоящими за JFS, ReiserFS и XFS
  • Производительность файловой системы журнала (устарело) : ReiserFS, JFS и Ext3FS демонстрируют свои преимущества на быстром устройстве RAID.
  • Журналируемые тесты файловой системы (устаревшие) : сравнение ReiserFS, XFS, JFS, ext3 и ext2.
  • Большой список сводок по файловой системе (последнее обновление от 19 ноября 2006 г.)
  • Linux File System Benchmarks ядра версии 2.6 с нагрузкой на ЦП
  • «Тестовые тесты файловой системы Linux 2.6 (старые версии)» . Архивировано из оригинала 15 апреля 2016 г. Проверено 16 декабря 2019 г. .{{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  • Поддержка больших файлов в Linux (устарело)
  • Локальные файловые системы для Windows
  • Обзор некоторых файловых систем (устарело)
  • Поддержка разреженных файлов (устарело)
  • Джереми Реймер (16 марта 2008 г.). «От BFS к ZFS: прошлое, настоящее и будущее файловых систем» . arstechnica.com . Проверено 18 марта 2008 г. .

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

  • «Спецификации файловой системы — ссылки и технические документы» . Архивировано из оригинала 03.11.2015.{{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  • Интересные проекты файловой системы
Получено с " https://en.wikipedia.org/w/index.php?title=File_system&oldid=1088644007#special_file_system "