Jump to content

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

(Перенаправлено с Файловые системы )

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

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

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

Файловые системы были разработаны для многих типов устройств хранения данных , включая жесткие диски (HDD), твердотельные накопители (SSD), магнитные ленты и оптические диски . [3]

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

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

Этимология

[ редактировать ]

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

Архитектура

[ редактировать ]

локальной файловой системы Архитектуру можно описать как уровни абстракции , хотя конкретная конструкция файловой системы может фактически не разделять эти понятия. [7]

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

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

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

Атрибуты

[ редактировать ]

Имена файлов

[ редактировать ]

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

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

Большинство файловых систем ограничивают длину имени файла.

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

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

Каталоги

[ редактировать ]

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

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

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

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

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

Организация места хранения

[ редактировать ]

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

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

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

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

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

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

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

Фрагментация

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

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

Файл становится фрагментированным, если пространство, необходимое для хранения его содержимого, не может быть выделено в смежных блоках. Свободное пространство фрагментируется при удалении файлов. [11]

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

Контроль доступа

[ редактировать ]

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

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

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

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

Квота хранилища

[ редактировать ]

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

Целостность данных

[ редактировать ]

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

  • программа доступа не сообщает файловой системе о завершении доступа к файлу (чтобы закрыть файл)
  • программа доступа завершается ненормально (сбой)
  • провал СМИ
  • потеря связи с удаленными системами
  • сбой операционной системы
  • сброс системы ( мягкая перезагрузка )
  • сбой питания ( жесткая перезагрузка )

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

Файловая система может записывать события, чтобы обеспечить анализ таких проблем, как:

  • файловые или системные проблемы и производительность
  • гнусный доступ

Доступ к данным

[ редактировать ]

Доступ к потоку байтов

[ редактировать ]

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

Доступ к записи

[ редактировать ]

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

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

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

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

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

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

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

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

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

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

[ редактировать ]

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

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

[ редактировать ]

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

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

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

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

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

[ редактировать ]

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

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

[ редактировать ]

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

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

[ редактировать ]

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

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

[ редактировать ]

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

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

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

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

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

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

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

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

[ редактировать ]

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

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

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

[ редактировать ]

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

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

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

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

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

[ редактировать ]

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

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

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

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

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

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

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

[ редактировать ]

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

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

[ редактировать ]

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

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

[ редактировать ]

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

  • devfs , udev , TOPS-10 предоставляют устройства ввода-вывода или псевдоустройства как специальные файлы.
  • configfs и sysfs предоставляют специальные файлы, которые можно использовать для запроса и настройки Linux. информации о ядре
  • procfs предоставляет информацию о процессе в виде специальных файлов.

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

[ редактировать ]

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

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

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

[ редактировать ]

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

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

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

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

Реализации

[ редактировать ]

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

ОС обычно предоставляет пользователю доступ к файловой системе. Часто операционная система предоставляет интерфейс командной строки , такой как оболочка Unix Windows , командная строка и PowerShell , а также OpenVMS DCL . ОС часто также предоставляет с графическим интерфейсом пользователя файловые браузеры , такие как MacOS Finder и Windows File Explorer .

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

[ редактировать ]

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

Unix-подобные системы присваивают каждому устройству имя, но доступ к файлам на этом устройстве осуществляется иначе. Вместо этого, чтобы получить доступ к файлам на другом устройстве, операционная система сначала должна быть проинформирована, где в дереве каталогов должны находиться эти файлы. Этот процесс называется монтированием файловой системы. Например, чтобы получить доступ к файлам на компакт-диске , необходимо сказать операционной системе: «Возьмите файловую систему с этого компакт-диска и разместите ее в таком-то каталоге». Каталог, предоставленный операционной системе, называется точкой монтирования . Например, это может быть /медиа . Каталог /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 (ранее Mac OS X) использует файловую систему Apple (APFS), которая в 2017 году заменила файловую систему, унаследованную от классической Mac OS, под названием HFS Plus (HFS+). Apple также использует термин «Mac OS Extended» для HFS+. [29] HFS Plus — это метаданных файловая система с большим количеством , сохраняющая регистр, но (обычно) нечувствительная к регистру . Поскольку macOS имеет корни Unix, в HFS Plus были добавлены разрешения Unix. В более поздних версиях HFS Plus добавлено ведение журнала для предотвращения повреждения структуры файловой системы, а также внесен ряд оптимизаций в алгоритмы выделения с целью автоматической дефрагментации файлов без необходимости использования внешнего дефрагментатора.

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

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

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

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

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

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

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

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

Операционная система Inferno разделяет эти концепции с Plan 9.

Microsoft Windows

[ редактировать ]
Список каталогов в 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 была основана на Digital Research компании Concurrent DOS , преемнице CP/M-86 .) Таким образом, файловые системы FAT хорошо подходят в качестве универсального формата обмена между компьютерами и устройствами практически любого типа и возраста.

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

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

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

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

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

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

exFAT имеет определенные преимущества перед NTFS в отношении затрат на файловую систему . [ нужна ссылка ]

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

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

До появления 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 — это файловая система, основанная на модели виртуальной системы. [35] Система была создана Б. Клиффордом Нойманом из Института информационных наук Университета Южной Калифорнии.
  • Файловая система RSRE FLEX , написанная на ALGOL 68.
  • Файловая система Michigan Terminal System (MTS) интересна тем, что: (i) она предоставляет «файлы строк», в которых длины записей и номера строк связаны как метаданные с каждой записью в файле, строки можно добавлять, заменять, обновлять с помощью записи одинаковой или разной длины и удаляются в любом месте файла без необходимости чтения и перезаписи всего файла; (ii) с помощью программных ключей файлы могут быть доступны или разрешены командам и программам, а также пользователям и группам; и (iii) существует комплексный механизм блокировки файлов, который защищает как данные файла, так и его метаданные. [36] [37]
  • TempleOS использует RedSea, файловую систему, созданную Терри А. Дэвисом. [38]

Ограничения

[ редактировать ]

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

[ редактировать ]

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

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

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

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

[ редактировать ]

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

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

[ редактировать ]

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

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

[ редактировать ]

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

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

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

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

[ редактировать ]

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

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

См. также

[ редактировать ]

Примечания

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

Источники

[ редактировать ]

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

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 128482c88e6fb79567a3fc0e1f143c57__1722422880
URL1:https://arc.ask3.ru/arc/aa/12/57/128482c88e6fb79567a3fc0e1f143c57.html
Заголовок, (Title) документа по адресу, URL1:
File system - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)