Что называется файловой системой
Файловая система
Фа́йловая систе́ма (англ. file system ) — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п. Файловая система определяет формат содержимого и способ физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имени файла (папки), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.
Файловая система связывает носитель информации с одной стороны и API для доступа к файлам — с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жёстком диске, магнитной ленте, блоке флеш-памяти или другом) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).
Однако файловая система не обязательно напрямую связана с физическим носителем информации. Существуют виртуальные файловые системы, а также сетевые файловые системы, которые являются лишь способом доступа к файлам, находящимся на удалённом компьютере.
Содержание
Иерархия каталогов
Практически всегда файлы на дисках объединяются в каталоги.
В простейшем случае все файлы на данном диске хранятся в одном каталоге. Такая одноуровневая схема использовалась в CP/M и в первой версии MS-DOS 1.0. Иерархическая файловая система со вложенными друг в друга каталогами впервые появилась в Multics, затем в UNIX.
Каталоги на разных дисках могут образовывать несколько отдельных деревьев, как в DOS/Windows, или же объединяться в одно дерево, общее для всех дисков, как в UNIX-подобных системах.
В UNIX существует только один корневой каталог, а все остальные файлы и каталоги вложены в него. Чтобы получить доступ к файлам и каталогам на каком-нибудь диске, необходимо смонтировать этот диск командой mount. Например, чтобы открыть файлы на CD, нужно, говоря простым языком, сказать операционной системе: «возьми файловую систему на этом компакт-диске и покажи её в каталоге /mnt/cdrom». Все файлы и каталоги, находящиеся на CD, появятся в этом каталоге /mnt/cdrom, который называется точкой монтирования (англ. mount point ). [2] В большинстве UNIX-подобных систем съёмные диски (дискеты и CD), флеш-накопители и другие внешние устройства хранения данных монтируют в каталог /mnt, /mount или /media. Unix и UNIX-подобные операционные системы также позволяет автоматически монтировать диски при загрузке операционной системы.
Обратите внимание на использование слешей в файловых системах Windows, UNIX и UNIX-подобных операционных системах (В Windows используется обратный слеш «\», а в UNIX и UNIX-подобных операционных системах простой слеш «/»)
Кроме того, следует отметить, что вышеописанная система позволяет монтировать не только файловые системы физических устройств, но и отдельные каталоги (параметр —bind) или, например, образ ISO (опция loop). Такие надстройки, как FUSE, позволяют также монтировать, например, целый каталог на FTP и ещё очень большое количество различных ресурсов.
Ещё более сложная структура применяется в NTFS и HFS. В этих файловых системах каждый файл представляет собой набор атрибутов. Атрибутами считаются не только традиционные только для чтения, системный, но и имя файла, размер и даже содержимое. Таким образом, для NTFS и HFS то, что хранится в файле, — это всего лишь один из его атрибутов.
Если следовать этой логике, один файл может содержать несколько вариантов содержимого. Таким образом, в одном файле можно хранить несколько версий одного документа, а также дополнительные данные (значок файла, связанная с файлом программа). Такая организация типична для HFS на Macintosh.
Классификация файловых систем
По предназначению файловые системы можно классифицировать на нижеследующие категории.
Задачи файловой системы
Основные функции любой файловой системы нацелены на решение следующих задач:
В многопользовательских системах появляется ещё одна задача: защита файлов одного пользователя от несанкционированного доступа другого пользователя, а также обеспечение совместной работы с файлами, к примеру, при открытии файла одним из пользователей, для других этот же файл временно будет доступен в режиме «только чтение».
Файловые системы накопителей
Содержание
Содержание
Именно файловые системы определяют способ хранения информации в виде привычных нам файлов, а также насколько быстро будет осуществляться доступ к данным и с какими ограничениями столкнутся пользователи.
Существует больше 30 файловых систем (ФС), большая часть которых имеет специфическое применение. Например, ФС под названием XFS создана исключительно для операционной системы IRIX, а DTFS — это файловая система, специализирующаяся на сжатии данных.
Если говорить относительно обычных пользователей ПК на Windows, MacOS и Linux, то для них список можно сократить до нескольких самых распространенных.
FAT32
Файловая система, разработанная компанией Microsoft на замену FAT16. Структурно вся область диска в FAT32 делится на кластеры размером от 512 байт до 32 Кбайт. Представьте себе тетрадь в клеточку. Каждая клетка — это кластер, в который может быть записан файл или его часть. Таким образом, большие файлы состоят из цепочки кластеров, которые совсем не обязательно будут располагаться друг за другом.
Не будем погружаться в технические дебри и расскажем о том, что больше всего интересует обычных пользователей — плюсы и минусы FAT32.
Главное и пока неоспоримое достоинство этой файловой системы — ее универсальность. FAT32 работает практически со всеми операционными системами Windows, а также без проблем распознается linux, MacOS, операционными системами игровых приставок и даже Android (если в смартфоне предусмотрена поддержка OTG).
Именно поэтому флеш-накопители чаще всего форматируют в FAT32, чтобы не иметь проблем с совместимостью на различных устройствах. С завода больше 90% всех флешек поставляется с этой ФС. Параллельно к плюсам относится высокая скорость работы с малыми и средними файлами (десятки/сотни мегабайт) и нетребовательность к объему ОЗУ.
Однако почтенный возраст FAT32 (больше 24 лет, что по меркам IT-индустрии просто огромный срок) накладывает ряд неприятных ограничений.
Несмотря на то, что размер тома с технической точки зрения может доходить до 8 ТиБ (тебибайт), что составляет около 8,7 ТБ, по факту в операционных системах Windows из-за встроенного ограничения вы не сможете создать том больше 32 ГБ. Соответственно, разметить большие жесткие диски, по крайней мере в Windows, в FAT32 не получится. Возникнут проблемы и с флешками на 64 ГБ.
Другое, более существенное ограничение — размер одного файла не может превышать 4 ГБ. Учитывая, что бэкапы, фильмы в высоком разрешении и архивы с различной информацией весят больше этого предела, ограничение доставляет массу неудобств.
exFAT
Одна из самых последних «новинок», созданная в 2008 году как расширенная версия FAT32 (extended FAT). Майкрософт решила взять лучшее и избавиться от самых неприятных недостатков.
exFAT ориентирована сугубо на переносные накопители — флешки, SD-карты и съемные жесткие диски. Размер кластера был увеличен до 32 мегабайт, благодаря чему размер файла теперь достигает целых 16 эксабайт (1 эксабайт = 1 048 576 ТБ). Задел на будущее у exFAT довольно внушительный.
Параллельно разработчики избавились от ограничения на размер тома, ввели поддержку прав доступа и минимизировали количество перезаписей, что особенно актуально для flash-памяти, ячейки памяти которой имеют ограниченное количество циклов записи, после чего выходят из строя.
Ощутимый минус только один — незначительная потеря совместимости. exFAT поддерживает Windows XP SP2 и более новые ОС. Соответственно, Windows 2000, NT и все, что старше, остается «за бортом». Усложнение структуры также привело к большим затратам вычислительной мощности компьютера. Однако на фоне современных процессоров с их потенциалом этим недостатком можно пренебречь.
New Technology File System разработали еще в 1993 году, однако, как и FAT32, используют по сей день. Сходство с FAT проявляется и в том, что, пространство делится на кластеры заданного размера. Однако высокую гибкость NTFS обеспечивает именно структура.
Первые 12% диска выделяются под MFT-зону — специальное служебное пространство, где хранится различная информация для работы всей ФС. Эта зона никогда не фрагментируется. В отличие от FAT используется бинарная структура.
Бинарное дерево располагает имена файлов таким образом, чтобы поиск выполнялся более быстрым способом — путем получения двухзначных ответов на вопросы о положении файла. Соответственно, поисковику не приходится просматривать всю цепочку файлов в каталоге.
NTFS обладает множеством достоинств. Максимальный размер тома на практике — 256 ТБ. Размера файла также хватит с запасом — около 16 ТБ. Помимо этого, за счет функции журналирования NTFS — отказоустойчивая система. Проще говоря, ФС либо выполняет действие до конца, либо откатывает все до состояния, когда действие еще не было совершено. Промежуточных «ошибочных» состояний практически не бывает. Имеется встроенное сжатие, средства разграничения прав объектов и шифрование данных.
К главному минусу NTFS относится низкая совместимость — не поддерживается все, что ниже Windows NT. Это не столь печально, но вот на MacOS и Linux записывать файлы на диски с NTFS не получится — только чтение. Игровые консоли Playstation и Xbox 360 также с этой файловой системой не работают.
Например, в PS4 можно отформатировать внешний жесткий диск, но только в формате самой приставки для обеспечения совместимости.
Таким образом, благодаря своему функционалу и поддержке больших объемов пространства NTFS — это отличный вариант для накопителей HDD и SSD. Несмотря на это, вы вполне можете создать на NTFS и флешку, но скорость ее работы по сравнению с FAT будет ниже.
Сравнительная таблица
Три приведенных файловых системы являются самыми популярными и наиболее совместимыми среди всех. Для удобства приведем основные параметры в общую таблицу.
Содержание
Происхождение термина
До с появлением компьютеров термин файловая система использовался для описания метода хранения и поиска бумажных документов. К 1961 году этот термин стал применяться к компьютеризированной архивации наряду с первоначальным значением. К 1964 году это было широко распространено.
Архитектура
Файловая система состоит из двух или трех уровней. Иногда уровни явно разделяются, а иногда функции объединяются.
Аспекты файловых систем
Управление пространством
Примечание: это применимо только к файловым системам, используемым в устройствах хранения.
Файловые системы распределяют пространство детально, обычно несколько физических единиц на устройстве. Файловая система отвечает за организацию файлов и каталогов и отслеживание того, какие области носителя принадлежат какому файлу, а какие не используются. Например, в Apple DOS начала 1980-х для 256-байтовых секторов на 140-килобайтной гибкой дискете использовалась карта дорожек / секторов.
Фрагментация файловой системы происходит, когда неиспользуемое пространство или отдельные файлы не являются смежными. При использовании файловой системы файлы создаются, изменяются и удаляются. Когда файл создается, файловая система выделяет место для данных. Некоторые файловые системы позволяют или требуют указывать начальное выделение пространства и последующие инкрементные выделения по мере роста файла. Когда файлы удаляются, пространство, которое им было выделено, в конечном итоге считается доступным для использования другими файлами. Это создает чередующиеся используемые и неиспользуемые области различного размера. Это фрагментация свободного пространства. Когда файл создается и для его начального распределения нет непрерывной области пространства, пространство должно быть выделено фрагментами. Когда файл изменяется так, что он становится больше, он может превышать пространство, изначально выделенное для него, другое выделение должно быть назначено в другом месте, и файл становится фрагментированным.
В некоторых операционных системах системный администратор может использовать дисковые квоты для ограничения выделения дискового пространства.
Имена файлов
Каталоги
Метаданные
Некоторые файловые системы позволяют связывать разные коллекции данных с одним именем файла. Эти отдельные коллекции могут называться потоками или ветвями. Apple уже давно использует разветвленную файловую систему на Macintosh, а Microsoft поддерживает потоки в NTFS. Некоторые файловые системы поддерживают несколько прошлых ревизий файла под одним именем файла; имя файла само по себе извлекает самую последнюю версию, в то время как предыдущая сохраненная версия может быть доступна с использованием специального соглашения об именах, такого как «имя файла; 4» или «имя файла (-4)» для доступа к версии, сохраненной четыре назад.
См. сравнение файловых систем # Метаданные для получения подробной информации о том, какие файловые системы поддерживают какие типы метаданных.
Файловая система как абстрактный пользовательский интерфейс
В некоторых случаях файловая система может не использовать запоминающее устройство, но может использоваться для организации и представления доступа к любым данным, будь то хранятся или генерируются динамически (например, procfs ).
Утилиты
Файловые системы включают утилиты для инициализации, изменения параметров и удаления экземпляра файловой системы. Некоторые включают возможность расширения или сокращения пространства, выделенного файловой системе.
Утилиты каталога могут использоваться для создания, переименования и удаления записей каталога, которые также известны как dentries (в единственном числе: dentry), а также для изменения метаданных, связанных с каталогом. Утилиты каталогов могут также включать возможности для создания дополнительных ссылок на каталог (жесткие ссылки в Unix ), для переименования родительских ссылок («..» в Unix-подобных операционных систем), а также для создания двунаправленных ссылок на файлы.
Файловые утилиты создают, перечисляют, копируют, перемещают и удаляют файлы, а также изменяют метаданные. Они могут обрезать данные, обрезать или увеличивать выделенное пространство, добавлять, перемещать и изменять файлы на месте. В зависимости от базовой структуры файловой системы они могут предоставлять механизм для добавления или усечения от начала файла, вставки записей в середину файла или удаления записей из файла.
Утилиты для освобождения места для удаленных файлов, если файловая система поддерживает функцию восстановления, также относятся к этой категории.
Некоторые из наиболее важных функций утилит файловой системы включают действия по контролю, которые могут включать в себя обход владения или прямой доступ к базовому устройству. К ним относятся высокопроизводительное резервное копирование и восстановление, репликация данных и реорганизация различных структур данных и таблиц размещения в файловой системе.
Ограничение и разрешение доступа
В файловую систему иногда включаются методы шифрования файловых данных. Это очень эффективно, поскольку утилитам файловой системы не нужно знать начальное значение шифрования для эффективного управления данными. Риски, связанные с использованием шифрования, включают тот факт, что злоумышленник может скопировать данные и использовать грубую силу для дешифрования данных. Потеря начального числа означает потерю данных.
Поддержание целостности
Одной из важных задач файловой системы является обеспечение целостности структуры независимо от действий программ, обращающихся к данным. Сюда входят действия, предпринимаемые, если программа, изменяющая данные, аварийно завершает свою работу или не сообщает файловой системе о завершении своей деятельности. Это может включать обновление метаданных, записи каталога и обработку любых данных, которые были буферизованы, но еще не обновлены на физическом носителе.
Другие сбои, с которыми должна справиться файловая система, включают сбои носителей или потерю соединения с удаленными системами.
В случае сбоя операционной системы или «мягкого» сбоя питания должны быть вызваны специальные процедуры в файловой системе, аналогичные тем, которые возникают при сбое отдельной программы.
Файловая система также должна иметь возможность исправлять поврежденные структуры. Это может произойти в результате сбоя операционной системы, при котором операционная система не смогла уведомить файловую систему, сбоя питания или сброса.
Файловая система также должна записывать события, чтобы можно было анализировать системные проблемы, а также проблемы с конкретными файлами или каталогами.
Пользовательские данные
Некоторые файловые системы принимают данные для хранения в виде потока байтов, которые собираются и хранятся эффективным для носителя образом. Когда программа извлекает данные, она определяет размер буфера памяти, и файловая система передает данные с носителя в буфер. Подпрограмма библиотеки времени выполнения может иногда позволять пользовательской программе определять запись на основе вызова библиотеки с указанием длины. Когда пользовательская программа считывает данные, библиотека извлекает данные через файловую систему и возвращает запись.
Некоторые файловые системы позволяют указывать фиксированную длину записи, которая используется для всех операций записи и чтения. Это облегчает поиск n записи, а также обновление записей.
Идентификация каждой записи, также известная как ключ, делает файловую систему более сложной. Программа пользователя может читать, записывать и обновлять записи независимо от их местоположения. Это сложного управления блоками мультимедиа, обычно разделяющих ключевые блоки и блоки данных. Для поиска записей можно разработать очень эффективные алгоритмы со структурой пирамиды.
Использование файловой системы
Утилиты, библиотеки времени для конкретных языков и пользовательские программы используют API файловой системы делать запросы к файловой системе. К ним защищенных данных передача, позиционирование, обновление метаданных, управление каталогами, управление спецификациями доступа и удаление.
Несколько файловых систем в одной системе
Третий подход, который в основном используется в облачных системах, заключается в использовании «образовательных дисков » для размещения дополнительных файловых систем с теми же атрибутами или без них в другом (хостовом) файле. система в виде файла. Тип примером виртуальная среда: один пользователь может запустить экспериментальный дистрибутив Linux (с использованием файлов системы ext4 ) на данной машине в своей производственной среде Windows (используя NTFS ). Файловая система ext4 в образе диска который обрабатывается как файл (или несколько файлов, в зависимости от гипервизора и настроек) в файловой системе хоста NTFS.
Проектные ограничения
Сложность файловой системы обычно зависит от доступной емкости хранилища. Файловые системы начала 1980-х домашних компьютеров объемом памяти от 50 до 512 КБ не были бы разумным выбором для современных систем хранения с емкостью в сотни гигабайт. Точно так же современные файловые системы не были бы разумным выбором для этих ранних систем хранения.
Типы файловых систем
Типы файловых систем можно разделить на дисковые / ленточные файловые системы, сетевые файловые системы и файловые системы специального назначения.
Дисковые файловые системы
Оптические диски
Файловые системы флэш-памяти
Ленточные файловые системы
В файловой системе диска обычно есть главный каталог файла и карта используемых и свободных данных. Любые добавления, изменения или удаления файлов требуют обновления каталога и используемых карт. Произвольный доступ к областям данных измеряется в миллисекундах, поэтому эта система хорошо работает с дисками.
Ленте требуется линейное движение для наматывания и разматывания маленького очень длинных рулонов носителя. Это движение ленты может заменить несколько секунд до нескольких минут, чтобы заменить головку чтения / записи одного конца на другую.
Следовательно, основные каталоги файлов и карта использования системы эффективно используемой системы. Запись обычно включает чтение карты использования блоков для поиска свободных блоков для записи, обновление карты использования и каталога для добавления данных, а затем продвижение ленты для записи данных в нужное место. Каждая запись в файл требует обновления карты и каталога и записи данных, что может занять несколько секунд для каждого файла.
Ленточные файловые системы вместо этого обычно позволяют распределить каталог файлов по ленте вместе с данными, что называется потоковой передачей, так что для записи новых данных не требуются длительные и повторяющиеся движения ленты.
. Прочитать все разрозненные записи каталога. Большинство программ для создания файлов, которые работают с ленточными хранилищами, сохраняют локальную копию ленточного каталога в файловой системе диска, так что добавление файлов на ленту может быть выполнено быстро без повторного сканирования ленточного носителя. Копия локального ленточного каталога обычно отбрасывается, если не используется в течение определенного периода времени.
Форматирование ленты
Запись данных на ленту, стирание или форматирование ленты часто требует значительных затрат времени и может занять часов на больших лентах. При использовании многих технологий ленточных данных нет необходимости форматировать ленту перед перезаписью новых данных на ленту. Это происходит из-за разрушительного характера перезаписи последовательных носителей.
Файловые системы баз данных
Некоторые другие проекты, которые не являются «чистыми» файловыми системами баз данных, но используют некоторые аспекты файловой системы базы данных:
Транзакционные файловые системы
Обеспечение согласованности между несколькими операциями файловой системы сложно, если вообще возможно, без транзакций файловой системы. Блокировка файлов может использоваться как механизм управления параллелизмом для отдельных файлов, но обычно она не защищает структуру каталогов или метаданные файла. Например, блокировка файла не может предотвратить состояние гонки TOCTTOU на символических ссылках. Блокировка файлов также не может автоматически откатить неудачную операцию, такую как обновление программного обеспечения; для этого требуется атомарность.
Системы резервного копирования данных обычно не поддерживают прямое резервное копирование данных, хранящихся в транзакционном режиме, что затрудняет восстановление надежных и согласованных наборов данных. Большинство программ резервного копирования просто отмечает, какие файлы были изменены с определенного времени, независимо от состояния транзакции, совместно используемого для нескольких файлов в общем наборе данных. В качестве обходного пути некоторые системы баз данных просто создают заархивированный файл состояния, содержащий все данные до этого момента, а программное обеспечение резервного копирования только выполняет резервное копирование и вообще не взаимодействует напрямую с активными транзакционными базами данных. Восстановление требует отдельного воссоздания базы данных из файла состояния после того, как файл был восстановлен программой резервного копирования.
Сетевые файловые системы
Файловые системы совместно используемых дисков
Специальные файловые системы
В специальной файловой системе нефайловые элементы операционной системы представлены в виде файлов, чтобы с ними можно было работать по использованию API файловой системы. Чаще всего это делается в Unix-подобных операционных системах, но устройства получают имена файлов и в некоторых не-Unix-подобных операционных системах.
Файловые системы устройства
Другие специальные файловые системы
Минимальная файловая система / хранилище аудиокассеты
Плоские файловые системы
В плоской файловой системе нет подкаталогов ; записи каталога для всех файлов хранятся в одном каталоге.
Простые, плоские файловые системы становятся неудобными по мере роста количества файлов и затрудняют организацию данных в связанные группы файлов.
Файловые системы и операционные системы
Многие операционные системы включают поддержку более чем одной файловой системы. Иногда ОС и файловая система настолько тесно взаимосвязаны, что трудно разделить функции файловой системы.
Unix и Unix-подобные операционные системы
Unix-подобные операционные системы часто включают программное обеспечение и инструменты, которые помогают в процессе монтирования и предоставляют ему новые функции. Некоторые из этих стратегий были придуманы как «автоматический монтаж» как отражение их цели.
Linux
Solaris
Solaris в более ранних выпусках по умолчанию (без ведения журнала или без ведения журнала) UFS для загрузочных и дополнительных файловых систем. Solaris по умолчанию использует UFS, поддерживает и расширяет его.
macOS
Более новые версии macOS могут читать и записывать в устаревшие файловые системы FAT (16 и 32), распространенные в Windows. Они также могут читать новые файловые системы NTFS для Windows. Для записи в файловую систему NTFS в версиях macOS до Mac OS X Snow Leopard необходимо стороннее программное обеспечение. Mac OS X 10.6 (Snow Leopard) и более поздние версии позволяют запись в файловые системы NTFS, но только после нетривиального изменения системных настроек (существует стороннее программное обеспечение, которое автоматизирует это).
Наконец, macOS поддерживает чтение и запись файловой системы exFAT начиная с Mac OS X Snow Leopard, начиная с версии 10.6.5.
OS / 2
PC-BSD
Plan 9
Операционная система Inferno разделяет эти концепции с Plan 9.
Microsoft Windows
FAT32 устраняет ограничения в FAT12 и FAT16, за исключением предельного размера файла, близкого к 4 ГБ, но он остается ограниченным по сравнению с 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.
OpenVMS
Conversational Monitor System
Файловая система AS / 400
Другие файловые системы
Ограничения
Преобразование типа файловой системы
Это может быть полезно или необходимо иметь файлы в файловой системе, отличной от существующей в настоящее время. Причины включают необходимость увеличения требований к пространству за пределами текущей файловой системы. Возможно, потребуется увеличить глубину пути сверх ограничений файловой системы. Могут быть соображения производительности или надежности. Другой причиной является предоставление доступа к другой операционной системе, которая не поддерживает существующую файловую систему.
Преобразование на месте
Миграция в другую файловую систему
Недостаток миграции состоит в том, что требуется дополнительное пространство, хотя он может быть быстрее. Лучше всего, если на носителе есть неиспользуемое пространство, которое будет содержать окончательную файловую систему.
Например, чтобы перенести файловую систему FAT32 в файловую систему ext2. Сначала создайте новую файловую систему ext2, затем скопируйте данные в файловую систему, затем удалите файловую систему FAT32.
Длинные пути к файлам и длинные имена файлов
Копирование файлов с длинными именами или файлов, находящихся на значительной глубине, из одной файловой системы в другую может привести к нежелательным результатам. Это зависит от того, как утилита, выполняющая копирование, обрабатывает несоответствие.