Файловая система - File system
Операционные системы |
---|
Общие черты |
В вычисление, а файловая система или файловая система (часто сокращенно фс) контролирует, как данные хранится и извлечены. Без файловой системы данные, помещенные на носитель данных, были бы одним большим массивом данных без возможности сказать, где заканчивается один фрагмент данных и начинается следующий. Разделив данные на части и присвоив каждой части имя, данные легко изолировать и идентифицировать. Получив свое название от названия системы управления бумажными данными, каждая группа данных называется "файл. »Структура и логические правила, используемые для управления группами данных и их именами, называются« файловой системой ».
Есть много разных файловых систем. Каждый из них имеет различную структуру и логику, свойства скорости, гибкости, безопасности, размера и т. Д. Некоторые файловые системы были разработаны для использования в определенных приложениях. Например, ISO 9660 файловая система разработана специально для оптические диски.
Файловые системы можно использовать на различных типах устройства хранения данных которые используют разные типы носителей. По состоянию на 2019 год жесткие диски были ключевыми запоминающими устройствами и, по прогнозам, останутся таковыми в обозримом будущем.[1] Другие типы используемых носителей включают: SSD, магнитные ленты, и оптические диски. В некоторых случаях, например, с tmpfs, основная память компьютера (оперативная память, RAM) используется для создания временной файловой системы для краткосрочного использования.
Некоторые файловые системы используются на локальных устройства хранения данных;[2] другие предоставляют доступ к файлам через сетевой протокол (Например, NFS,[3] SMB, или 9P клиентов). Некоторые файловые системы являются «виртуальными», что означает, что предоставленные «файлы» (называемые виртуальные файлы) вычисляются по запросу (например, procfs и sysfs ) или просто отображение в другую файловую систему, используемую в качестве резервного хранилища. Файловая система управляет доступом как к содержимому файлов, так и к метаданные об этих файлах. Он отвечает за организацию места для хранения вещей; надежность, эффективность и настройка физического носителя данных являются важными аспектами проектирования.
Происхождение термина
До появления компьютеров термин файловая система был использован для описания метода хранения и поиска бумажных документов.[4] К 1961 году этот термин стал применяться к компьютеризированной архивации наряду с первоначальным значением.[5] К 1964 году он стал широко использоваться.[6]
Архитектура
Файловая система состоит из двух или трех слоев. Иногда уровни явно разделяются, а иногда функции совмещаются.[7]
В логическая файловая система отвечает за взаимодействие с пользовательским приложением. Он обеспечивает интерфейс прикладной программы (API) для файловых операций - ОТКРЫТО
, БЛИЗКО
, ЧИТАТЬ
и т. д. и передает запрошенную операцию на уровень ниже для обработки. Логическая файловая система «управляет записями открытой таблицы файлов и дескрипторами файлов для каждого процесса».[8] Этот уровень обеспечивает «доступ к файлам, операции с каталогами, [и] безопасность и защиту».[7]
Второй необязательный слой - это виртуальная файловая система. «Этот интерфейс позволяет поддерживать несколько одновременных экземпляров физических файловых систем, каждая из которых называется реализацией файловой системы».[8]
Третий слой - это физическая файловая система. Этот уровень связан с физической работой запоминающего устройства (например, диска). Он обрабатывает физические блоки читают или пишут. Он обрабатывает буферизация и управление памятью и отвечает за физическое размещение блоков в определенных местах на носителе. Физическая файловая система взаимодействует с драйверы устройств или с канал управлять запоминающим устройством.[7]
Аспекты файловых систем
Управление пространством
Примечание: это относится только к файловым системам, используемым в устройствах хранения.
Файловые системы распределяют пространство детально, обычно несколько физических единиц на устройстве. Файловая система отвечает за организацию файлы и каталоги и отслеживание того, какие области носителя принадлежат какому файлу, а какие не используются. Например, в Apple DOS начала 1980-х 256-байтовые сектора на 140-килобайтных гибких дисках использовали трек / секторная карта.[нужна цитата ]
Это приводит к неиспользуемому пространству, когда файл не является точным кратным единице распределения, что иногда называют свободное пространство. Для выделения 512 байт среднее неиспользуемое пространство составляет 256 байт. Для кластеров размером 64 КБ средний размер неиспользуемого пространства составляет 32 КБ. Размер единицы размещения выбирается при создании файловой системы. Выбор размера выделения на основе среднего размера файлов, ожидаемых в файловой системе, может минимизировать объем неиспользуемого пространства. Часто выделение по умолчанию может обеспечить разумное использование. Выбор слишком маленького размера выделения приводит к чрезмерным накладным расходам, если файловая система будет содержать в основном очень большие файлы.
Фрагментация файловой системы возникает, когда неиспользуемое пространство или отдельные файлы не являются смежными. При использовании файловой системы файлы создаются, изменяются и удаляются. Когда файл создается, файловая система выделяет место для данных. Некоторые файловые системы позволяют или требуют указывать начальное выделение пространства и последующие инкрементные выделения по мере роста файла. Когда файлы удаляются, пространство, которое им было выделено, считается доступным для использования другими файлами. Это создает чередующиеся используемые и неиспользуемые области различного размера. Это фрагментация свободного пространства. Когда файл создается и для его первоначального распределения нет непрерывной области пространства, пространство должно быть выделено фрагментами. Когда файл изменяется так, что он становится больше, он может превышать пространство, первоначально выделенное для него, другое выделение должно быть назначено в другом месте, и файл становится фрагментированным.
В некоторых операционных системах системный администратор может использовать дисковые квоты чтобы ограничить выделение дискового пространства.
Имена файлов
А имя файла (или имя файла) используется для определения места хранения в файловой системе. Большинство файловых систем имеют ограничения на длину имен файлов. В некоторых файловых системах имена файлов не чувствительный к регистру (т.е. имена МОЙ ФАЙЛ
и мой файл
ссылка на тот же файл в каталоге); в других случаях имена файлов чувствительны к регистру (т. е. имена МОЙ ФАЙЛ
, Мой файл
, и мой файл
относятся к трем отдельным файлам, находящимся в одном каталоге).
Большинство современных файловых систем позволяют именам файлов содержать широкий диапазон символов из Unicode набор символов. Однако у них могут быть ограничения на использование определенных специальных символов, запрещающих их использование в именах файлов; эти символы могут использоваться для обозначения устройства, типа устройства, префикса каталога, разделителя пути к файлу или типа файла.
Справочники
Файловые системы обычно имеют каталоги (также называется папки), которые позволяют пользователю группировать файлы в отдельные коллекции. Это может быть реализовано путем связывания имени файла с индексом в оглавление или индекс в Unix-подобный файловая система. Структуры каталогов могут быть плоскими (т. Е. Линейными) или допускать иерархии, в которых каталоги могут содержать подкаталоги. Первая файловая система, поддерживающая произвольную иерархию каталогов, использовалась в Мультики Операционная система.[9] Собственные файловые системы Unix-подобных систем также поддерживают произвольную иерархию каталогов, как, например, яблоко с Иерархическая файловая система, и его преемник HFS + в классическая Mac OS, то ЖИР файловая система в MS-DOS 2.0 и более поздние версии MS-DOS и в Майкрософт Виндоус, то NTFS файловая система в Windows NT семейство операционных систем, а также ODS-2 (On-Disk Structure-2) и более высокие уровни Файлы-11 файловая система в OpenVMS.
Метаданные
Другая бухгалтерская информация обычно связана с каждым файлом в файловой системе. В длина данных, содержащихся в файле, может быть сохранено как количество блоков, выделенных для файла, или как байт считать. В время Информация о том, что файл был изменен в последний раз, может быть сохранена как отметка времени файла. Файловые системы могут хранить время создания файла, время последнего обращения к нему, время метаданные было изменено, или время последнего резервного копирования файла. Другая информация может включать в себя тип устройства (например. блокировать, характер, разъем, подкаталог и др.), его владелец Логин пользователя и ID группы, его права доступа и другие атрибуты файла (например, доступен ли файл только для чтения, исполняемый файл, так далее.).
Файловая система хранит все метаданные, связанные с файлом, включая имя файла, длину содержимого файла и расположение файла в иерархии папок, отдельно от содержимого файла.
Большинство файловых систем хранят имена всех файлов в одном каталоге в одном месте - таблице каталогов для этого каталога - которая часто хранится как любой другой файл. Многие файловые системы помещают только некоторые метаданные для файла в таблицу каталогов, и остальные метаданные для этого файла в совершенно отдельной структуре, например индекс.
Большинство файловых систем также хранят метаданные, не связанные с каким-либо конкретным файлом. Такие метаданные включают информацию о неиспользуемых областях:растровое изображение свободного места, карта доступности блока —И информация о плохие сектора.Часто такая информация о группа размещения хранится внутри самой группы размещения.
Дополнительные атрибуты могут быть связаны с файловыми системами, например NTFS, XFS, ext2, ext3, некоторые версии УФС, и HFS +, с помощью расширенные атрибуты файла. Некоторые файловые системы предоставляют определенные пользователем атрибуты, такие как автор документа, кодировка символов документа или размер изображения.
Некоторые файловые системы позволяют связывать разные коллекции данных с одним именем файла. Эти отдельные коллекции могут называться потоки или вилки. Apple давно использует разветвленную файловую систему на Macintosh, а Microsoft поддерживает потоки в NTFS. Некоторые файловые системы поддерживают несколько прошлых ревизий файла под одним именем; имя файла само по себе извлекает самую последнюю версию, в то время как предыдущая сохраненная версия может быть доступна с использованием специального соглашения об именах, такого как «имя файла; 4» или «имя файла (-4)» для доступа к версии, сохраненной четыре назад.
Увидеть сравнение файловых систем # Метаданные для получения подробной информации о том, какие файловые системы поддерживают какие типы метаданных.
Файловая система как абстрактный пользовательский интерфейс
В некоторых случаях файловая система может не использовать запоминающее устройство, но может использоваться для организации и представления доступа к любым данным, независимо от того, хранятся они или генерируются динамически (например, procfs ).
Утилиты
Файловые системы включают утилиты для инициализации, изменения параметров и удаления экземпляра файловой системы. Некоторые включают возможность увеличения или сокращения пространства, выделенного файловой системе.
Утилиты каталогов могут использоваться для создания, переименования и удаления записи каталога, которые также известны как Дентри (единственное число: Дентри),[10] и для изменения метаданных, связанных с каталогом. Утилиты каталогов могут также включать возможности для создания дополнительных ссылок на каталог (жесткие ссылки в Unix ), чтобы переименовать родительские ссылки (".." в Unix-подобный операционные системы),[требуется разъяснение ] и создавать двунаправленные ссылки на файлы.
Файловые утилиты создают, перечисляют, копируют, перемещают и удаляют файлы, а также изменяют метаданные. Они могут обрезать данные, обрезать или увеличивать выделенное пространство, добавлять, перемещать и изменять файлы на месте. В зависимости от базовой структуры файловой системы они могут предоставлять механизм для добавления или усечения от начала файла, вставки записей в середину файла или удаления записей из файла.
Утилиты для освобождения места для удаленных файлов, если файловая система поддерживает функцию восстановления, также относятся к этой категории.
Некоторые файловые системы откладывают такие операции, как реорганизация свободного пространства, безопасное стирание свободного пространства и восстановление иерархических структур, предоставляя служебные программы для выполнения этих функций в моменты минимальной активности. Пример - файловая система дефрагментация коммунальные услуги.
Некоторые из наиболее важных функций утилит файловой системы включают действия по контролю, которые могут включать в себя обход владения или прямой доступ к базовому устройству. К ним относятся высокопроизводительное резервное копирование и восстановление, репликация данных и реорганизация различных структур данных и таблиц размещения в файловой системе.
Ограничение и разрешение доступа
Файловые системы используют несколько механизмов для управления доступом к данным. Обычно цель состоит в том, чтобы предотвратить чтение или изменение файлов пользователем или группой пользователей. Другая причина - обеспечить контролируемое изменение данных, чтобы доступ мог быть ограничен для конкретной программы. Примеры включают пароли, хранящиеся в метаданных файла или в другом месте, и права доступа к файлам в виде битов разрешения, списки контроля доступа, или возможности. Необходимость в утилитах файловой системы для доступа к данным на уровне носителя для реорганизации структур и обеспечения эффективного резервного копирования обычно означает, что они эффективны только для вежливых пользователей, но неэффективны против злоумышленников.
В файловую систему иногда включаются методы шифрования файловых данных. Это очень эффективно, поскольку утилитам файловой системы не нужно знать начальное значение шифрования для эффективного управления данными. Риски, связанные с использованием шифрования, включают тот факт, что злоумышленник может скопировать данные и использовать грубую силу для дешифрования данных. Потеря начального числа означает потерю данных.
Сохранение целостности
Одной из важных задач файловой системы является обеспечение согласованности структуры независимо от действий программ, обращающихся к данным. Сюда входят действия, предпринимаемые, если программа, изменяющая данные, аварийно завершает свою работу или не сообщает файловой системе о том, что она завершила свои действия. Это может включать обновление метаданных, записи каталога и обработку любых данных, которые были буферизованы, но еще не обновлены на физическом носителе.
Другие сбои, с которыми должна иметь дело файловая система, включают сбои носителей или потерю соединения с удаленными системами.
В случае сбоя операционной системы или «мягкого» сбоя питания должны быть вызваны специальные процедуры в файловой системе, аналогичные тем, которые возникают при сбое отдельной программы.
Файловая система также должна уметь исправлять поврежденные структуры. Это может произойти в результате сбоя операционной системы, из-за которого операционная система не смогла уведомить файловую систему, сбоя питания или сброса.
Файловая система также должна записывать события, чтобы можно было анализировать системные проблемы, а также проблемы с конкретными файлами или каталогами.
Данные пользователя
Самая важная цель файловой системы - управлять пользовательскими данными. Это включает в себя хранение, получение и обновление данных.
Некоторые файловые системы принимают данные для хранения в виде потока байтов, которые собираются и хранятся эффективным для носителя образом. Когда программа извлекает данные, она определяет размер буфера памяти, и файловая система передает данные с носителя в буфер. Подпрограмма библиотеки времени выполнения может иногда позволять пользовательской программе определять запись на основе вызова библиотеки с указанием длины. Когда пользовательская программа считывает данные, библиотека извлекает данные через файловую систему и возвращает запись.
Некоторые файловые системы позволяют указывать фиксированную длину записи, которая используется для всех операций записи и чтения. Это облегчает поиск nth запись, а также обновление записей.
Идентификация каждой записи, также известная как ключ, делает файловую систему более сложной. Программа пользователя может читать, записывать и обновлять записи независимо от их местоположения. Это требует сложного управления блоками мультимедиа, обычно разделяющих ключевые блоки и блоки данных. Для поиска записей можно разработать очень эффективные алгоритмы со структурой пирамиды.[11]
Использование файловой системы
Утилиты, библиотеки времени выполнения для конкретных языков и пользовательские программы используют API файловой системы делать запросы к файловой системе. К ним относятся передача данных, позиционирование, обновление метаданных, управление каталогами, управление спецификациями доступа и удаление.
Несколько файловых систем в одной системе
Часто системы розничной торговли конфигурируются с единой файловой системой, занимающей всю устройство хранения.
Другой подход - раздел диск, чтобы можно было использовать несколько файловых систем с разными атрибутами. Одна файловая система для использования в качестве кеша браузера может быть настроена с небольшим размером выделения. Это имеет дополнительное преимущество, заключающееся в сохранении безумной активности по созданию и удалению файлов, типичных для активности браузера, в узкой области диска и не препятствуя размещению других файлов. Аналогичный раздел можно создать и для электронной почты. Другой раздел и файловая система могут быть созданы для хранения аудио или видео файлов с относительно большим объемом памяти. Одна из файловых систем обычно может быть установлена только чтение и только периодически ставить на запись.
Третий подход, который в основном используется в облачных системах, заключается в использовании "образы дисков "для размещения дополнительных файловых систем с теми же атрибутами или без них в другой (основной) файловой системе в виде файла. Распространенным примером является виртуализация: один пользователь может запустить экспериментальный дистрибутив Linux (используя ext4 файловая система) на виртуальной машине в его / ее производственной среде Windows (используя NTFS ). Файловая система ext4 находится в образе диска, который обрабатывается как файл (или несколько файлов, в зависимости от гипервизора и настроек) в файловой системе хоста NTFS.
Наличие нескольких файловых систем в одной системе дает дополнительное преимущество, заключающееся в том, что в случае повреждения одного раздела остальные файловые системы часто остаются нетронутыми. Это включает уничтожение вирусом система раздел или даже система, которая не загружается. Утилиты файловой системы, которым требуется выделенный доступ, могут быть эффективно выполнены по частям. К тому же, дефрагментация может быть более эффективным. Некоторые утилиты обслуживания системы, такие как сканирование на вирусы и резервное копирование, также могут обрабатываться в сегментах. Например, нет необходимости создавать резервную копию файловой системы, содержащей видео, вместе со всеми другими файлами, если ни один не был добавлен с момента последнего резервного копирования. Что касается файлов изображений, можно легко «выделить» дифференциальные изображения, которые содержат только «новые» данные, записанные в основное (исходное) изображение. Дифференциальные образы могут использоваться для обеих целей безопасности (как «одноразовая» система - может быть быстро восстановлена в случае уничтожения или заражения вирусом, так как старый образ может быть удален, а новый образ может быть создан за секунды, даже без автоматические процедуры) и быстрое развертывание виртуальных машин (поскольку дифференциальные образы могут быть быстро созданы с помощью сценария в пакетном режиме).
Ограничения дизайна
Все файловые системы имеют некоторые функциональные ограничения, которые определяют максимальную емкость хранимых данных в этой системе.[нужна цитата ]. Эти функциональные ограничения - это попытка проектировщика наугад, основанная на том, насколько велики системы хранения на данный момент и насколько большими, вероятно, станут системы хранения в будущем. Дисковое хранилище продолжало увеличиваться почти экспоненциальный ставки (см. Закон Мура ), поэтому по прошествии нескольких лет файловые системы продолжали достигать проектных ограничений, которые требовали от пользователей компьютеров неоднократно переходить на новые системы с еще большей емкостью.
Сложность файловой системы обычно зависит от доступной емкости хранилища. Файловые системы начала 1980-х годов домашние компьютеры с объемом памяти от 50 до 512 КБ не будет разумным выбором для современных систем хранения с емкостью в сотни гигабайт. Точно так же современные файловые системы не были бы разумным выбором для этих ранних систем, поскольку сложность структур современных файловых систем быстро потребляла бы или даже превышала очень ограниченную емкость ранних систем хранения.
Типы файловых систем
Типы файловых систем можно разделить на файловые системы на дисках / магнитных лентах, сетевые файловые системы и файловые системы специального назначения.
Дисковые файловые системы
А файловая система диска использует преимущества способности дисковых запоминающих устройств случайным образом адресовать данные за короткий промежуток времени. Дополнительные соображения включают скорость доступа к данным после первоначально запрошенных и ожидание того, что следующие данные также могут быть запрошены. Это позволяет нескольким пользователям (или процессам) получать доступ к различным данным на диске независимо от их последовательного расположения. Примеры включают ЖИР (FAT12, FAT16, FAT32 ), exFAT, NTFS, HFS и HFS +, HPFS, APFS, УФС, ext2, ext3, ext4, XFS, btrfs, Файлы-11, Файловая система Veritas, VMFS, ZFS, и ReiserFS. Некоторые файловые системы на диске журнальные файловые системы или управление версиями файловых систем.
Оптические диски
ISO 9660 и Универсальный формат диска (UDF) - два распространенных формата, предназначенных для Компакт-диски, DVD и Блю рей диски. Mount Rainier является расширением UDF, поддерживаемым начиная с версии 2.6 ядра Linux и начиная с Windows Vista, которое упрощает перезапись на DVD.
Файловые системы Flash
А файловая система flash учитывает особые способности, характеристики и ограничения флэш-память устройств. Часто файловая система на диске может использовать устройство флэш-памяти в качестве основного носителя, но гораздо лучше использовать файловую систему, специально разработанную для флэш-устройства.
Ленточные файловые системы
А файловая система на магнитной ленте это файловая система и формат ленты, предназначенный для хранения файлов на ленте. Магнитные ленты представляют собой последовательные носители со значительно более длительным временем произвольного доступа к данным, чем диски, что создает проблемы для создания и эффективного управления файловой системой общего назначения.
В файловой системе на диске обычно есть каталог основных файлов и карта используемых и свободных областей данных. Любые добавления, изменения или удаления файлов требуют обновления каталога и используемых / бесплатных карт. Произвольный доступ к областям данных измеряется в миллисекундах, поэтому эта система хорошо работает с дисками.
Лента требует линейного движения для наматывания и разматывания потенциально очень длинных рулонов носителя. Это движение ленты может занять от нескольких секунд до нескольких минут, чтобы переместить головку чтения / записи с одного конца ленты на другой.
Следовательно, каталог основных файлов и карта использования могут быть чрезвычайно медленными и неэффективными с лентой. Запись обычно включает чтение карты использования блоков для поиска свободных блоков для записи, обновление карты использования и каталога для добавления данных, а затем продвижение ленты для записи данных в нужное место. Каждая дополнительная запись в файл требует обновления карты и каталога и записи данных, что может занять несколько секунд для каждого файла.
Вместо этого файловые системы на магнитной ленте обычно позволяют размещать каталог файлов по ленте вместе с данными, что называется потоковая передача, поэтому для записи новых данных не требуются длительные и повторяющиеся движения ленты.
Однако побочным эффектом такой конструкции является то, что чтение каталога файлов на ленте обычно требует сканирования всей ленты, чтобы прочитать все разрозненные записи каталога. Большинство программ для архивирования данных, которые работают с ленточными хранилищами, хранят локальную копию ленточного каталога в файловой системе диска, так что добавление файлов на ленту может быть выполнено быстро, без необходимости повторного сканирования ленточного носителя. Копия локального ленточного каталога обычно отбрасывается, если не используется в течение определенного периода времени, после чего ленту необходимо повторно сканировать, если она будет использоваться в будущем.
IBM разработала файловую систему для лент, названную Файловая система линейной ленты. Реализация этой файловой системы IBM была выпущена с открытым исходным кодом. Файловая система IBM Linear Tape - Single Drive Edition (LTFS-SDE) товар. Файловая система линейной ленты использует отдельный раздел на ленте для записи метаданных индекса, что позволяет избежать проблем, связанных с разбросом записей каталога по всей ленте.
Форматирование ленты
Запись данных на ленту, стирание или форматирование ленты часто является длительным процессом и может занять несколько часов на больших лентах.[а] При использовании многих технологий ленточных данных нет необходимости форматировать ленту перед перезаписью новых данных на ленту. Это связано с разрушительным характером перезаписи данных на последовательных носителях.
Из-за времени, необходимого для форматирования ленты, обычно ленты предварительно форматируются, поэтому пользователю ленты не нужно тратить время на подготовку каждой новой ленты к использованию. Все, что обычно необходимо, - это записать на ленту идентификационную этикетку носителя перед использованием, и даже это может быть автоматически записано программным обеспечением, когда новая лента используется в первый раз.
Файловые системы баз данных
Еще одна концепция управления файлами - это файловая система на основе базы данных. Вместо или в дополнение к иерархическому структурированному управлению файлы идентифицируются по их характеристикам, таким как тип файла, тема, автор и т. Д. богатые метаданные.[12]
IBM DB2 для i [13] (ранее известная как DB2 / 400 и DB2 для i5 / OS) - это файловая система базы данных как часть объекта на основе IBM i [14] операционная система (ранее известная как OS / 400 и i5 / OS), включающая одноуровневый магазин и работающий на IBM Power Systems (ранее известный как AS / 400 и iSeries), разработанный Фрэнком Г. Солтисом, бывшим главным научным сотрудником IBM по IBM i. Примерно с 1978 по 1988 год Фрэнк Г. Солтис и его команда в IBM Rochester успешно разработали и применили такие технологии, как файловая система базы данных, чего позже другим, вроде Microsoft, не удалось.[15] Эти технологии неофициально известны как «Крепость Рочестер».[нужна цитата ] и были в нескольких основных аспектах расширены от ранних технологий мэйнфреймов, но во многих отношениях были более продвинутыми с технологической точки зрения[нужна цитата ].
Некоторые другие проекты, которые не являются «чистыми» файловыми системами баз данных, но используют некоторые аспекты файловой системы базы данных:
- Много Системы управления веб-контентом использовать реляционная СУБД для хранения и извлечения файлов. Например, XHTML файлы хранятся как XML или текстовые поля, в то время как файлы изображений хранятся как поля больших двоичных объектов; SQL ВЫБРАТЬ (с необязательным XPath ) операторы извлекают файлы и позволяют использовать сложную логику и более обширные информационные ассоциации, чем «обычные файловые системы». Многие CMS также имеют возможность хранить только метаданные в базе данных со стандартной файловой системой, используемой для хранения содержимого файлов.
- Очень большие файловые системы, реализованные такими приложениями, как Apache Hadoop и Файловая система Google, используйте немного файловая система базы данных концепции.
Транзакционные файловые системы
Некоторым программам необходимо либо внести несколько изменений в файловую систему, либо, если одно или несколько изменений не удаются по какой-либо причине, не вносить никаких изменений. Например, программа, устанавливающая или обновляющая программное обеспечение, может записывать исполняемые файлы, библиотеки и / или файлы конфигурации. Если часть записи не удается, а программное обеспечение остается частично установленным или обновленным, программное обеспечение может быть повреждено или непригодно для использования. Неполное обновление ключевой системной утилиты, такой как команда оболочка, может оставить всю систему в непригодном для использования состоянии.
Обработка транзакции вводит атомарность гарантия, гарантирующая, что все операции внутри транзакции либо зафиксированы, либо транзакция может быть прервана, а система отбрасывает все ее частичные результаты. Это означает, что в случае сбоя или сбоя питания после восстановления сохраненное состояние будет согласованным. Либо программное обеспечение будет полностью установлено, либо неудачная установка будет полностью откатана, но непригодная для использования частичная установка не останется в системе. Сделки также обеспечивают изоляция гарантия[требуется разъяснение ], что означает, что операции внутри транзакции скрыты от других потоков в системе до тех пор, пока транзакция не будет зафиксирована, и что мешающие операции в системе будут правильно сериализованный с транзакцией.
Windows, начиная с Vista, добавила поддержку транзакций в NTFS, в функции под названием Транзакционная NTFS, но его использование сейчас не рекомендуется.[16] Существует ряд исследовательских прототипов транзакционных файловых систем для систем UNIX, включая файловую систему Valor,[17] Амино,[18] LFS,[19] и транзакционный ext3 файловая система на ядре TxOS,[20] а также транзакционные файловые системы, ориентированные на встроенные системы, такие как TFFS.[21]
Без транзакций файловой системы обеспечить согласованность нескольких операций файловой системы сложно, если вообще возможно. Блокировка файлов может использоваться как контроль параллелизма для отдельных файлов, но обычно он не защищает структуру каталогов или метаданные файла. Например, блокировка файла не может предотвратить ТОКТУ условия гонки на символических ссылках. Блокировка файла также не может автоматически откатить неудачную операцию, такую как обновление программного обеспечения; для этого требуется атомарность.
Файловые системы журналирования это один из методов, используемых для обеспечения согласованности на уровне транзакций в структурах файловой системы. Транзакции журнала не предоставляются программам как часть API ОС; они используются только для внутреннего использования для обеспечения согласованности на уровне детализации одного системного вызова.
Системы резервного копирования данных обычно не поддерживают прямое резервное копирование данных, хранящихся в транзакционном режиме, что затрудняет восстановление надежных и согласованных наборов данных. Большинство программ резервного копирования просто отмечает, какие файлы были изменены с определенного времени, независимо от состояния транзакции, совместно используемого для нескольких файлов в общем наборе данных. В качестве обходного пути некоторые системы баз данных просто создают заархивированный файл состояния, содержащий все данные до этого момента, а программное обеспечение резервного копирования только создает резервные копии и вообще не взаимодействует напрямую с активными транзакционными базами данных. Восстановление требует отдельного воссоздания базы данных из файла состояния после того, как файл был восстановлен программой резервного копирования.
Сетевые файловые системы
А сетевая файловая система - это файловая система, которая действует как клиент для протокола удаленного доступа к файлам, обеспечивая доступ к файлам на сервере. Программы, использующие локальные интерфейсы, могут прозрачно создавать, управлять и получать доступ к иерархическим каталогам и файлам на удаленных компьютерах, подключенных к сети. Примеры сетевых файловых систем включают клиентов для NFS, AFS, SMB протоколы и клиенты, подобные файловой системе, для FTP и WebDAV.
А файловая система общего диска это тот, в котором несколько машин (обычно серверов) имеют доступ к одной и той же внешней дисковой подсистеме (обычно SAN). Файловая система определяет доступ к этой подсистеме, предотвращая конфликты записи. Примеры включают GFS2 от Красная Шапка, GPFS от IBM, SFS из DataPlow, CXFS от SGI и StorNext от Quantum Corporation.
Специальные файловые системы
А специальная файловая система представляет нефайловые элементы операционной системы в виде файлов, чтобы с ними можно было работать с помощью API файловой системы. Чаще всего это делается в Unix-подобный операционных систем, но устройствам также присваиваются имена файлов в некоторых операционных системах, отличных от Unix.
Файловые системы устройства
А файловая система устройства представляет устройства ввода-вывода и псевдоустройства в виде файлов, называемых файлы устройства. Примеры в Unix-подобный системы включают devfs И в Linux 2.6 системы, udev. В не-Unix-подобных системах, таких как ТОП-10 и другие операционные системы, на которые он влияет, где полное имя файла или путь файла может включать префикс устройства, устройства, отличные от тех, которые содержат файловые системы, называются префиксом устройства, указывающим устройство, без каких-либо следов после него.
Другие специальные файловые системы
- В ядре Linux configfs и sysfs предоставить файлы, которые можно использовать для запроса информации в ядре и настройки сущностей в ядре.
- procfs отображает процессы и, в Linux, другие структуры операционной системы в файловое пространство.
Минимальная файловая система / хранилище аудиокассет
В 1970-х дисковые и цифровые ленточные устройства были слишком дороги для некоторых ранних микрокомпьютер пользователей. Была разработана недорогая базовая система хранения данных, в которой использовались обычные аудиокассета лента.
Когда системе требовалось записать данные, пользователя уведомляли о необходимости нажать «ЗАПИСЬ» на кассетном магнитофоне, а затем нажать «ВОЗВРАТ» на клавиатуре, чтобы уведомить систему о том, что кассетный магнитофон выполняет запись. Система записала звук для синхронизации времени, затем модулированные звуки который закодировал префикс, данные, контрольная сумма и суффикс. Когда системе требовалось прочитать данные, пользователю предлагалось нажать «PLAY» на кассетном магнитофоне. Система будет Слушать к звукам на ленте, ожидая, пока вспышка звука не будет распознана как синхронизация. Затем система будет интерпретировать последующие звуки как данные. Когда считывание данных было завершено, система уведомляла пользователя о необходимости нажать «СТОП» на кассетном магнитофоне. Это было примитивно, но работало (очень часто). Данные хранились последовательно, обычно в безымянном формате, хотя некоторые системы (например, Commodore PET серии компьютеров) позволяла давать имена файлам. Множественные наборы данных могут быть записаны и расположены путем быстрой перемотки ленты вперед и наблюдения на счетчике ленты, чтобы найти приблизительное начало следующей области данных на ленте. Пользователю, возможно, придется прислушаться к звукам, чтобы найти правильное место для начала воспроизведения следующей области данных. Некоторые реализации даже включали слышимые звуки, перемежающиеся с данными.
Плоские файловые системы
В плоской файловой системе нет подкаталоги; записи каталога для всех файлов хранятся в одном каталоге.
Когда дискета media был впервые доступен, этот тип файловой системы был адекватен из-за относительно небольшого объема доступного пространства для данных. 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-подобные системы присваивают имя каждому устройству, но не так получают доступ к файлам на этом устройстве. Вместо этого, чтобы получить доступ к файлам на другом устройстве, операционная система должна сначала узнать, где в дереве каталогов должны появиться эти файлы. Этот процесс называется монтаж файловая система. Например, чтобы получить доступ к файлам на CD-ROM необходимо сказать операционной системе: «Возьмите файловую систему с этого компакт-диска и поместите ее в такой-то каталог». Каталог, предоставленный операционной системе, называется точка крепления - это может быть, например, /средства массовой информации. В /средства массовой информации каталог существует во многих системах Unix (как указано в Стандарт иерархии файловой системы ) и предназначен специально для использования в качестве точки монтирования для съемных носителей, таких как компакт-диски, DVD-диски, USB-накопители или гибкие диски. Он может быть пустым или содержать подкаталоги для установки отдельных устройств. Как правило, только администратор (т.е. пользователь root ) может разрешить монтирование файловых систем.
Unix-подобный операционные системы часто включают программное обеспечение и инструменты, которые помогают в процессе монтирования и предоставляют ему новые функции. Некоторые из этих стратегий были придуманы как «автоматический монтаж» как отражение их цели.
- Во многих ситуациях файловые системы, отличные от корневой, должны быть доступны, как только операционная система загружен. Поэтому все Unix-подобные системы предоставляют возможность монтировать файловые системы во время загрузки. Системные администраторы определить эти файловые системы в файле конфигурации fstab (vfstab в Солярис ), где также указаны параметры и точки монтирования.
- В некоторых ситуациях нет необходимости монтировать определенные файловые системы в время загрузки, хотя впоследствии может потребоваться их использование. Для Unix-подобных систем есть несколько утилит, которые позволяют монтировать предопределенные файловые системы по запросу.
- Съемные носители стали очень распространены среди микрокомпьютер платформы. Они позволяют передавать программы и данные между машинами без физического соединения. Общие примеры включают USB-накопители, CD-ROM, и DVD. Поэтому были разработаны служебные программы для обнаружения наличия и доступности носителя и последующего подключения этого носителя без какого-либо вмешательства пользователя.
- Прогрессивные Unix-подобные системы также представили концепцию, называемую супермонтаж; см., например, проект Linux supermount-ng. Например, супермонтированная дискета может быть физически удалена из системы. В нормальных условиях диск должен быть синхронизирован, а затем отключен перед удалением. Если синхронизация произошла, в привод можно вставить другой диск. Система автоматически замечает, что диск был изменен, и обновляет содержимое точки монтирования, чтобы отразить новый носитель.
- An автомастерская автоматически смонтирует файловую систему при ссылке на каталог, наверху которого она должна быть смонтирована. Обычно это используется для файловых систем на сетевых серверах, вместо того, чтобы полагаться на такие события, как вставка носителя, как было бы уместно для съемных носителей.
Linux
Linux поддерживает множество файловых систем, но наиболее часто в качестве системного диска на блочном устройстве используется семейство ext * (ext2, ext3 и ext4 ), XFS, JFS, и btrfs. Для необработанной вспышки без слой флеш-перевода (FTL) или Устройство памяти (MTD) есть УБИФС, JFFS2 и YAFFS, среди прочего. Сквош это обычная сжатая файловая система, доступная только для чтения.
Солярис
Солярис в более ранних выпусках по умолчанию (без ведения журнала или без ведения журнала) УФС для загрузочных и дополнительных файловых систем. Solaris по умолчанию использует UFS, поддерживает и расширяет его.
Поддержка других файловых систем и значительные улучшения были добавлены со временем, в том числе Программное обеспечение Veritas 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), который недавно заменил файловую систему, унаследованную от классическая Mac OS называется HFS Plus (HFS +). Apple также использует термин «Mac OS Extended» для HFS +.[22] HFS Plus - это метаданные -богатые и сохраняющий дело но (обычно) без учета регистра файловая система. Из-за Unix-корней macOS в 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 также поддерживает УФС файловая система, полученная из BSD Быстрая файловая система Unix через Следующий шаг. Однако по состоянию на Mac OS X Leopard, macOS больше нельзя было установить на том UFS, а также нельзя было обновить систему до Leopard, установленную на томе UFS, до Leopard.[23] По состоянию на Mac OS X Lion Поддержка UFS была полностью прекращена.
Более новые версии macOS могут читать и писать в устаревшие версии. ЖИР файловые системы (16 и 32), распространенные в Windows. Они также способны чтение новее NTFS файловые системы для Windows. Чтобы записывать в файловые системы NTFS в версиях macOS до Mac OS X Снежный барс необходимо стороннее программное обеспечение. Mac OS X 10.6 (Snow Leopard) и более поздние версии позволяют запись в файловые системы NTFS, но только после нетривиального изменения настроек системы (существует стороннее программное обеспечение, которое автоматизирует это).[24]
Наконец, macOS поддерживает чтение и запись exFAT файловая система начиная с Mac OS X Snow Leopard, начиная с версии 10.6.5.[25]
OS / 2
OS / 2 1.2 представил Файловая система с высокой производительностью (HPFS). HPFS поддерживает имена файлов со смешанным регистром в разных кодовые страницы, длинные имена файлов (255 символов), более эффективное использование дискового пространства, архитектура, которая хранит связанные элементы близко друг к другу на томе диска, меньшая фрагментация данных, основанный на экстенте распределение пространства, a B + дерево структура каталогов и корневой каталог, расположенный посередине диска, для более быстрого среднего доступа. А журналируемая файловая система (JFS) был отправлен в 1999 году.
PC-BSD
PC-BSD это настольная версия FreeBSD, которая наследует FreeBSD с ZFS поддержка, аналогично FreeNAS. Новый графический установщик PC-BSD может справиться / (корень ) на ZFS и RAID-Z пул устанавливает и шифрование диска с помощью Гели с самого начала в простой и удобной (GUI ) путь. Текущая версия PC-BSD 9.0+ Isotope Edition имеет файловую систему ZFS версии 5 и пул устройств хранения ZFS версии 28.
План 9
План 9 от Bell Labs обрабатывает все как файл и обращается ко всем объектам, как к файлу (т. е. нет ioctl или mmap ): доступ к сети, графике, отладке, аутентификации, возможностям, шифрованию и другим службам осуществляется через операции ввода-вывода на файловые дескрипторы. В 9P протокол устраняет разницу между локальными и удаленными файлами. Файловые системы в Plan 9 организованы с помощью частных пространств имен для каждого процесса, что позволяет каждому процессу иметь различное представление о множестве файловых систем, которые предоставляют ресурсы в распределенной системе.
В Inferno операционная система разделяет эти концепции с Plan 9.
Майкрософт Виндоус
Windows использует ЖИР, NTFS, exFAT, Живая файловая система и ReFS файловые системы (последняя из них поддерживается и может использоваться только в Windows Server 2012, Windows Server 2016, Windows 8, Windows 8.1, и Windows 10; Windows не может с него загрузиться).
Windows использует буква диска абстракция на уровне пользователя, позволяющая отличать один диск или раздел от другого. Например, дорожка C: WINDOWS представляет каталог ОКНА на разделе, обозначенном буквой C. Диск C: чаще всего используется в качестве основного накопитель на жестком диске раздел, на котором обычно устанавливается Windows и с которого она загружается. Эта «традиция» настолько прочно укоренилась, что во многих приложениях существуют ошибки, предполагающие, что диск, на котором установлена операционная система, - это C. Использование букв дисков и традиция использования буквы «C» в качестве буквы диска для основной раздел жесткого диска, можно проследить до MS-DOS, где буквы A и B были зарезервированы для двух дисководов гибких дисков. Это, в свою очередь, произошло из CP / M в 1970-х годах, и в конечном итоге от IBM CP / CMS 1967 г.
ЖИР
Семья ЖИР файловые системы поддерживаются практически всеми операционными системами для персональных компьютеров, включая все версии Windows и MS-DOS /ПК DOS, OS / 2, и DR-DOS. (PC DOS - это OEM-версия MS-DOS, MS-DOS изначально была основана на SCP с 86-ДОС. DR-DOS был основан на Цифровые исследования с Параллельная DOS, преемник CP / M-86 Таким образом, файловые системы FAT хорошо подходят в качестве универсального формата обмена между компьютерами и устройствами практически любого типа и возраста.
Файловая система FAT восходит к (несовместимому) 8-битному предшественнику FAT в Автономный диск BASIC и недолговечный MDOS / MIDAS проект.[нужна цитата ]
За прошедшие годы файловая система была расширена с FAT12 к FAT16 и FAT32. В файловую систему были добавлены различные функции, включая подкаталоги, кодовая страница поддержка, расширенные атрибуты, и длинные имена файлов. Третьи стороны, такие как Digital Research, включили дополнительную поддержку для отслеживания удалений и многопользовательские схемы безопасности на основе томов / каталогов / файлов для поддержки паролей и разрешений файлов и каталогов, таких как права доступа на чтение / запись / выполнение / удаление. Большинство этих расширений не поддерживаются Windows.
Файловые системы FAT12 и FAT16 имеют ограничение на количество записей в корневая директория файловой системы и имел ограничения на максимальный размер дисков в формате FAT или перегородки.
FAT32 устраняет ограничения в FAT12 и FAT16, за исключением предельного размера файла, близкого к 4 ГБ, но он остается ограниченным по сравнению с NTFS.
FAT12, FAT16 и FAT32 также имеют ограничение в восемь символов для имени файла и три символа для расширения (например, .исполняемый файл ). Это обычно называют 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).[25] Поддержка в других операционных системах ограничена, поскольку для реализации поддержки exFAT требуется лицензия. exFAT - единственная файловая система, которая полностью поддерживается как в macOS, так и в Windows, и может содержать файлы размером более 4 ГБ.[нужна цитата ]
OpenVMS
MVS
До введения VSAM, OS / 360 В системах реализована необычная гибридная файловая система. Система была разработана таким образом, чтобы легко поддерживать съемные дисковые пакеты, поэтому информация, относящаяся ко всем файлам на одном диске (объем в терминологии IBM) хранится на этом диске в плоский системный файл называется Том Содержание (VTOC). VTOC хранит все метаданные для файла. Позже была введена иерархическая структура каталогов с введением Системный каталог, который может дополнительно каталогизировать файлы (наборы данных) на резидентных и съемных томах. Каталог содержит только информацию, позволяющую связать набор данных с определенным объемом. Если пользователь запрашивает доступ к набору данных на автономном томе и у него есть соответствующие права, система попытается смонтировать требуемый том. Каталогизированные и некаталогизированные наборы данных все еще могут быть доступны с использованием информации в VTOC, минуя каталог, если требуемый идентификатор тома предоставлен в запросе OPEN. Еще позже VTOC был проиндексирован для ускорения доступа.
Система разговорного монитора
IBM Система разговорного монитора (CMS) компонент VM / 370 использует отдельную плоскую файловую систему для каждого виртуальный диск (минидиск). Данные файла и управляющая информация разбросаны и перемешаны. Якорь - это запись, называемая Каталог основных файлов (MFD), всегда находится в четвертом блоке на диске. Первоначально CMS использовала 800-байтовые блоки фиксированной длины, но в более поздних версиях использовались блоки большего размера до 4K. Доступ к записи данных требует двух уровней косвенное обращение, где запись каталога файла (называемая Таблица состояния файлов (FST) entry) указывает на блоки, содержащие список адресов отдельных записей.
Файловая система AS / 400
Данные в AS / 400 и его преемниках состоят из системных объектов, отображенных в системное виртуальное адресное пространство в одноуровневый магазин. Многие виды Объекты AS / 400 определены, включая каталоги и файлы из других файловых систем. Файловые объекты, наряду с другими типами объектов, составляют основу поддержки AS / 400 интегрированного реляционная база данных.
Другие файловые системы
- Файловая система Prospero - это файловая система, основанная на модели виртуальной системы.[26] Система была создана доктором Б. Клиффордом Нойманом из Института информационных наук Университета Южной Калифорнии.
- Файловая система RSRE FLEX - написано в АЛГОЛ 68
- Файловая система Терминальная система Мичигана (MTS) интересен тем, что: (i) он предоставляет «строковые файлы», в которых длины записей и номера строк связаны как метаданные с каждой записью в файле, строки могут быть добавлены, заменены, обновлены записями той же или другой длины, и удалить в любом месте файла без необходимости читать и перезаписывать весь файл; (ii) использование файлов программных ключей может быть совместным или разрешенным для команд и программ в дополнение к пользователям и группам; и (iii) существует комплексный механизм блокировки файла, который защищает как данные файла, так и его метаданные.[27][28]
Ограничения
Преобразование типа файловой системы
Может быть полезно или необходимо иметь файлы в файловой системе, отличной от существующей в настоящее время. Причины включают необходимость увеличения требований к пространству за пределами текущей файловой системы. Возможно, потребуется увеличить глубину пути сверх ограничений файловой системы. Могут быть соображения производительности или надежности. Другой причиной является предоставление доступа к другой операционной системе, которая не поддерживает существующую файловую систему.
Преобразование на месте
В некоторых случаях преобразование может быть выполнено на месте, хотя миграция файловой системы является более консервативной, поскольку она включает в себя создание копии данных и рекомендуется.[29] В Windows файловые системы FAT и FAT32 можно преобразовать в NTFS с помощью утилиты convert.exe, но не наоборот.[29] В Linux ext2 можно преобразовать в ext3 (и преобразовать обратно), а ext3 можно преобразовать в ext4 (но не обратно),[30] и ext3 и ext4 могут быть преобразованы в btrfs, и конвертируется обратно до тех пор, пока информация об отмене не будет удалена.[31] Эти преобразования возможны благодаря использованию одного и того же формата для самих данных файла и перемещению метаданных в пустое пространство, в некоторых случаях с использованием разреженный файл поддержка.[31]
Переход на другую файловую систему
Недостаток миграции состоит в том, что требуется дополнительное пространство, хотя он может быть быстрее. Лучше всего, если на носителе есть неиспользуемое пространство, которое будет содержать окончательную файловую систему.
Например, чтобы перенести файловую систему FAT32 в файловую систему ext2.Сначала создайте новую файловую систему ext2, затем скопируйте данные в файловую систему, затем удалите файловую систему FAT32.
Альтернативой, когда недостаточно места для сохранения исходной файловой системы до создания новой, является использование рабочей области (например, съемного носителя). Это занимает больше времени, но резервное копирование данных - хороший побочный эффект.
Длинные пути к файлам и длинные имена файлов
В иерархических файловых системах доступ к файлам осуществляется с помощью дорожка это список ветвления каталогов, содержащих файл. Различные файловые системы имеют разные ограничения на глубину пути. Файловые системы также имеют ограничение на длину отдельного имени файла.
Копирование файлов с длинными именами или файлов, находящихся на значительной глубине, из одной файловой системы в другую может привести к нежелательным результатам. Это зависит от того, как утилита, выполняющая копирование, обрабатывает несоответствие.
Смотрите также
- Сравнение файловых систем
- Дисковая квота
- Список файловых систем
- Список команд Unix
- Структура каталогов
- Совместное использование диска
- Распределенная файловая система
- Распределенная архитектура управления данными
- Файловый менеджер
- Фрагментация файловой системы
- Расширение имени файла
- Глобальная файловая система
- Хранилище объектов
- Физическое и логическое хранилище
- Эффективность хранения
- Виртуальная файловая система
Заметки
- ^ На ленту LTO-6 2,5 ТБ требуется более 4 часов для записи со скоростью 160 МБ / с.
использованная литература
- ^ «Хранение, ИТ-технологии и рынки, состояние и развитие» (PDF). 20 сентября 2018.
Жесткие диски по-прежнему являются ключевыми хранилищами в обозримом будущем, твердотельные накопители не рентабельны по емкости
- ^ Arpaci-Dusseau, Remzi H .; Арпачи-Дюссо, Андреа К. (2014), Реализация файловой системы (PDF), Книги Арпачи-Дюссо
- ^ Arpaci-Dusseau, Remzi H .; Арпачи-Дюссо, Андреа К. (2014), Сетевая файловая система Sun (PDF), Книги Арпачи-Дюссо
- ^ Макгилл, Флоренс Э. (1922). Офисная практика и бизнес-процедуры. Издательство Грегг. п.197. Получено 1 августа, 2016.
- ^ Уоринг, Р.Л. (1961). Технические исследования добавления печатных копий к элементам механизированной библиотечной системы: окончательный отчет, 20 сентября 1961 г.. Цинциннати, Огайо: Svco Corporation. OCLC 310795767.
- ^ Приложения для дисковых файлов: доклады, представленные на Первом национальном симпозиуме по дисковым файлам. Обработка данных в США. 1964 г.. Получено 1 августа, 2016.
- ^ а б c Амир, Яир. «Операционные системы 600.418 Файловая система». Департамент компьютерных наук Университета Джона Хопкинса. Получено 31 июля, 2016.
- ^ а б Корпорация IBM. «Компонентная структура логической файловой системы». Центр знаний IBM. Получено 31 июля, 2016.
- ^ Р. К. Дейли; П. Г. Нейман (1965). Файловая система общего назначения для вторичного хранилища. Осенняя совместная компьютерная конференция. AFIPS. С. 213–229. Дои:10.1145/1463891.1463915. Получено 2011-07-30.
- ^ Мохан, И. Чандра (2013). Операционные системы. Дели: PHI Learning Pvt. ООО п. 166. ISBN 9788120347267. Получено 2014-07-27.
Слово dentry является сокращением от слова «запись в каталоге». Дентри - это не что иное, как определенный компонент на пути от корня. Они (имя каталога или имя файла) обеспечивают доступ к файлам или каталогам [.]
- ^ "KSAM: метод последовательного доступа на основе B + -дерева с ключами". ResearchGate. Получено 29 апреля 2016.
- ^ «Окна в базе данных - нарезаны и нарезаны ветеринарами BeOS». theregister.co.uk. 2002-03-29. Получено 2014-02-07.
- ^ "IBM DB2 для i: Обзор". 03.ibm.com. Получено 2014-02-07.
- ^ "IBM developerWorks: Новое в IBM i". Ibm.com. 2011-03-08. Получено 2014-02-07.
- ^ «Преемник XP Longhorn переходит на SQL, P2P - утечки Microsoft». theregister.co.uk. 2002-01-28. Получено 2014-02-07.
- ^ «Альтернативы использованию транзакционной NTFS (Windows)». Msdn.microsoft.com. 2013-12-05. Получено 2014-02-07.
- ^ Спиллейн, Ричард; Гайквад, Сачин; Чинни, Манджунатх; Zadok, Erez and Wright, Charles P .; 2009; «Включение транзакционного доступа к файлам через облегченные расширения ядра»; Седьмая конференция USENIX по файловым технологиям и технологиям хранения (FAST 2009)
- ^ Райт, Чарльз П .; Спиллейн, Ричард; Шиватхану, Гопалан; Садок, Эрез; 2007; "Расширение семантики ACID в файловой системе; ACM-транзакции в хранилище
- ^ Зельцер, Марго I .; 1993; «Поддержка транзакций в файловой системе с лог-структурой»; Труды Девятой Международной конференции по инженерии данных
- ^ Портер, Дональд Э .; Hofmann, Owen S .; Россбах, Кристофер Дж .; Бенн, Александр и Витчел, Эммет; 2009; «Операции с операционной системой»; В материалах 22-го симпозиума ACM по принципам операционных систем (SOSP '09), Big Sky, MT, октябрь 2009 г.
- ^ Гал, Эран; Толедо, Сиван; «Транзакционная файловая система Flash для микроконтроллеров»
- ^ «Mac OS X: о ведении журнала файловой системы». яблоко. Получено 8 февраля 2014.
- ^ «Mac OS X 10.5 Leopard: установка на том в формате UFS». apple.com. 19 октября 2007 г. Архивировано с оригинал 16 марта 2008 г.. Получено 29 апреля 2016.
- ^ OSXDaily (2 октября 2013 г.). «Как включить поддержку записи NTFS в Mac OS X». Получено 6 февраля 2014.
- ^ а б Стив Бантинг (14 августа 2012 г.). EnCase Computer Forensics - Официальный EnCE: сертифицированный эксперт EnCase. ISBN 9781118219409. Получено 2014-02-07.
- ^ Файловая система Просперо: глобальная файловая система, основанная на модели виртуальной системы. 1992.
- ^ «Файловая система для универсальной среды с разделением времени», Г. К. Пиркола, Труды IEEE, Июнь 1975 г., том 63, вып. 6. С. 918–924, ISSN 0018-9219.
- ^ «Защита информации в среде общего назначения с разделением времени», Гэри С. Пиркола и Джон Сангинетти, Материалы симпозиума IEEE по тенденциям и приложениям 1977 г .: Компьютерная безопасность и целостность, т. 10 шт. 4. С. 106-114.
- ^ а б Как конвертировать диски FAT в NTFS, Microsoft, 25 октября 2001 г.
- ^ "Ext4 Howto". kernel.org. Получено 29 апреля 2016.
- ^ а б Конвертация из Ext3, Btrfs вики
Источники
- де Бойн Поллар, Джонатан (1996). "Ограничения на размер диска и тома". Часто задаваемые ответы. Получено 9 февраля, 2005.
- «Исправление исправления OS / 2 JR09427». IBM. Получено 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). Криминалистический анализ файловой системы. Эддисон Уэсли.
дальнейшее чтение
Книги
- Arpaci-Dusseau, Remzi H .; Арпачи-Дюссо, Андреа К. (2014). Операционные системы: три простых штуки. Книги Арпачи-Дюссо.
- Перевозчик, Брайан (2005). Криминалистический анализ файловой системы. Эддисон-Уэсли. ISBN 0-321-26817-2.
- Кастер, Хелен (1994). Внутри файловой системы Windows NT. Microsoft Press. ISBN 1-55615-660-X.
- Джампаоло, Доминик (1999). Практическое проектирование файловой системы с файловой системой Be (PDF). Издательство Морган Кауфманн. ISBN 1-55860-497-9. В архиве (PDF) из оригинала на 2018-09-03. Получено 2019-12-15.
- Маккой, Кирби (1990). Внутреннее устройство файловой системы VMS. VAX - серия VMS. Цифровая пресса. ISBN 1-55558-056-4.
- Митчелл, Стэн (1997). Внутри файловой системы Windows 95. О'Рейли. ISBN 1-56592-200-X.
- Нагар, Раджив (1997). Внутреннее устройство файловой системы Windows NT: Руководство разработчика. О'Рейли. ISBN 978-1-56592-249-5.
- Пэйт, Стив Д. (2003). Файловые системы UNIX: эволюция, дизайн и реализация. Wiley. ISBN 0-471-16483-6.
- Розенблюм, Мендель (1994). Разработка и реализация файловой системы с лог-структурой. Серия Springer International в области инженерии и информатики. Springer. ISBN 0-7923-9541-7.
- Руссинович, Марк; Соломон, Дэвид А .; Ионеску, Алекс (2009). «Файловые системы». Внутреннее устройство Windows (5-е изд.). Microsoft Press. ISBN 978-0-7356-2530-3.
- Прабхакаран, Виджаян (2006). Файловые системы IRON. Докторская диссертация, Университет Висконсин-Мэдисон.
- Зильбершац, Авраам; Галвин, Питер Баер; Ганье, Грег (2004). «Управление хранилищем». Понятия операционной системы (7-е изд.). Вайли. ISBN 0-471-69466-5.
- Таненбаум, Эндрю С. (2007). Современные операционные системы (3-е изд.). Prentice Hall. ISBN 978-0-13-600663-3.
- Таненбаум, Эндрю С.; Вудхалл, Альберт С. (2006). Операционные системы: разработка и реализация (3-е изд.). Prentice Hall. ISBN 0-13-142938-8.
онлайн
- Бенчмаркинг файловых систем (устарело) Джастин Пищ, Linux Gazette 102, май 2004 г.
- Тестирование файловых систем, часть II с использованием ядра 2.6, Джастин Пищ, Linux Gazette 122, январь 2006 г.
- Сравнение файловых систем (ext3, ReiserFS, XFS, JFS) на Debian Etch 2006
- Интервью с людьми, стоящими за JFS, ReiserFS и XFS
- Производительность файловой системы журнала (устарело): ReiserFS, JFS и Ext3FS демонстрируют свои достоинства на быстром RAID-устройстве
- Тесты журналируемой файловой системы (устарело): Сравнение ReiserFS, XFS, JFS, ext3 и ext2
- Большой список сводок по файловой системе (последнее обновление 19.11.2006)
- Тесты файловой системы Linux ядро v2.6 с упором на использование ЦП
- Тесты файловой системы Linux 2.6 (предыдущая версия) на Wayback Machine (Архивировано 15 апреля 2016 г.)
- Поддержка больших файлов Linux (устарело)
- Локальные файловые системы для Windows
- Обзор некоторых файловых систем (устарел)
- Поддержка разреженных файлов (устарело)
- Джереми Реймер (16 марта 2008 г.). «От BFS к ZFS: прошлое, настоящее и будущее файловых систем». arstechnica.com. Получено 2008-03-18.