Мы все используем файлы или файлы каждый день, и мы все тоже этим пользуемся папки или каталоги, будь то в файловых системах настольных ПК, на ноутбуках, мобильных устройствах и т. д. Поэтому в этой статье я объясню все, что вам нужно знать об этом, чтобы вы могли понять что такое информация и как она хранится в память о.
Что такое файловая система?
Un файловая система Файловая система (ФС) — это метод и структура данных, используемые операционной системой для управления хранением и извлечением информации. Без файловой системы данные, хранящиеся на носителе, представляли бы собой единый объект данных, не имеющий возможности отличить, где заканчивается один набор данных и начинается другой, или где находится набор данных при его извлечении. Это были бы так называемые «сырые» данные.
Форматируя накопитель в файловых системах NTFS, FAT, ext4, BTRFS, HFS+ и т. д., вы фактически создаёте файловую систему для управления данными на нём. Другими словами, то, что мы называем форматированием, на самом деле представляет собой файловую систему.
Разделив данные на части и назвав каждую часть,Данные могут быть легко изолированы и идентифицированы.Чтобы всё это стало возможным, файловая система состоит из двух или трёх слоёв. Иногда эти слои явно разделены, а иногда функции объединены. Речь идёт о следующих слоях:
- Логическая файловая система: отвечает за взаимодействие с пользовательским приложением. Предоставляет API для файловых операций, таких как Открыть, закрыть, прочитать и т. д.и пересылает запрошенную операцию на нижележащий уровень для обработки. Логическая файловая система управляет записями таблицы открытых файлов и файловыми дескрипторами для каждого процесса. Этот уровень обеспечивает доступ к файлам, операции с каталогами, безопасность и защиту.
- Виртуальная файловая система: Этот интерфейс обеспечивает поддержку нескольких одновременных экземпляров физических файловых систем. Этот уровень необязателен и присутствует не всегда.
- Физическая файловая система: управляет физическими операциями устройства хранения данных. Обрабатывает чтение и запись физических блоков. Обеспечивает буферизацию, управление памятью и отвечает за физическое размещение блоков в определённых местах на носителе данных. Физическая файловая система взаимодействует с драйверами устройств хранения данных или каналом для управления устройством хранения данных.
Особенности FS
Каждая существующая файловая система имеет свои ограничения и характер которые вы должны знать, например:
- Управление или распределение пространства: Файловые системы распределяют пространство гранулярно, обычно между несколькими физическими дисками устройства. Файловые системы отвечают за организацию файлов и каталогов, а также отслеживают, какие области носителя принадлежат тем или иным файлам, а какие не используются.
- Фрагментация: Это происходит, когда один и тот же файл хранится в разных частях накопителя, то есть отдельные части файла не являются смежными. По мере создания, изменения и удаления файлов могут возникать области используемого и неиспользуемого пространства разного размера. Более того, это влияет на некоторые файловые системы (например, FAT и NTFS от Microsoft), замедляя чтение файлов.
- Имена файлов: Файловые системы управляют ограничениями длины, чувствительностью к регистру и использованием специальных символов в именах файлов.
- Каталоги: В них часто есть каталоги для организации файлов в отдельные коллекции. Они могут быть как плоскими, так и иерархическими. Я расскажу об этом подробнее позже, поскольку именно в этом и заключается суть...
- Метаданные: Он содержит связанную метаданную информацию, которая включает такие сведения, как длина данных, временные метки, разрешения на доступ и атрибуты файла.
- Коммунальные услуги и доступ: Они используются для инициализации, изменения и удаления экземпляров файловой системы, а также для создания, переименования и удаления каталогов и файлов, шифрования, квот, миграции, преобразования, резервного копирования и т. д.
- Целостность и управление неисправностями: ФС должна поддерживать целостность структур файловой системы на вторичных хранилищах или внешних дисках даже в случае сбоев операционной системы или отключения электроэнергии.
- Данные пользователя: необходимо обеспечить возможность управления данными пользователей, включая хранение, извлечение и обновление данных.
- Несколько файловых систем: В одной системе может быть несколько файловых систем.
- Ограничения дизайна: Файловые системы имеют функциональные ограничения, которые определяют максимальную емкость хранилища в этой системе, максимальный размер файлов, количество файлов и т. д.
Что такое перегородка?
Una раздел Раздел — это логический раздел или подраздел устройства хранения данных, такого как жёсткий диск, твердотельный накопитель, флеш-накопитель и т. д. Этот раздел служит нескольким целям, позволяя лучше организовать и управлять хранимыми данными. Например, каждый раздел может использоваться для определённой цели, на нём можно установить несколько операционных систем и т. д.
Важно отметить, что создание, удаление и изменение размера Изменения разделов могут привести к потере данных, поэтому важно выполнять эти операции с осторожностью и создавать резервные копии критически важных данных перед внесением серьезных изменений в структуру разделов.
С другой стороны, подводя итог, вы также должны понимать, что существуют различные типы перегородок основополагающий в системе MBR (в GPT возможности расширены до 128 возможных разделов на одном устройстве, хотя это уже другая тема…):
- Основной раздел: Каждый накопитель может иметь до четырёх основных разделов. Это основные разделы, на которых устанавливаются операционные системы и хранятся данные. Один из основных разделов может быть назначен активным или загрузочным, с которого загружается операционная система.
- Расширенный раздел: Расширенный раздел — это специальный основной раздел, используемый для создания внутри него дополнительных логических разделов. Он не содержит данных напрямую, а служит контейнером для логических разделов. В расширенном разделе может быть несколько логических разделов. Это позволяет обойти ограничение в четыре основных раздела на жёстком диске.
- Логический раздел: Они создаются внутри расширенного раздела. Они не используются для загрузки операционной системы и обычно используются для организации данных или файлов. Внутри расширенного раздела можно создать несколько логических разделов, что упрощает организацию данных.
Что такое таблица разделов?
La таблица разделов Это структура данных, расположенная в начале жёсткого диска и содержащая информацию о разделах диска. Она обычно хранится в главном загрузочном секторе (MBR) в системах с BIOS или в таблице разделов GPT (GUID Partition Table) в более современных системах с UEFI. Таблица разделов содержит такие сведения, как размер каждого раздела, его тип (например, NTFS, FAT32, ext4 и т. д.) и его расположение на носителе.
Таким образом, связь между таблицей разделов и файловой системой заключается в том, что таблица разделов указывает где начинается и заканчивается каждый раздел на физическом диске. Каждый раздел отформатирован в определённой файловой системе. При доступе к разделу для чтения или записи файлов операционная система использует информацию из таблицы разделов, чтобы определить структуру файловой системы на данном разделе.
Типы файловых систем
Среди различных файловых систем следует выделить следующие типы:
- Дисковые файловые системы: Эти системы используют возможность дисковых носителей к быстрому и произвольному доступу к данным. Они позволяют нескольким пользователям или процессам получать доступ к данным на диске независимо от их последовательного расположения. Примеры включают FAT, exFAT, NTFS, Reiser FS, HFS, HFS+, HPFS, APFS, UFS, ext2, ext3, ext4, XFS, btrfs, VMFS, ZFS, ReiserFS, NSS и ScoutFS. Кроме того, можно рассмотреть следующие варианты:
- Оптические диски: распространенные форматы, такие как ISO 9660 и Universal Disk Format (UDF), используемые на CD, DVD и Blu-ray.
- Файловые системы Flash: Эти системы разработаны специально для устройств флэш-памяти и учитывают их характеристики и ограничения. Рекомендуется использовать файловые системы, разработанные для флэш-устройств, а не адаптировать дисковые системы. Примерами таких систем являются JFFS, JFFS2, YAFFS, UBIFS, LogFS и F2FS.
- Файловые системы на магнитной ленте: Эти системы управляют хранением на лентах, которые имеют более длительное время произвольного доступа, чем диски. Они отличаются управлением каталогами и подчёркивают необходимость избегать частых линейных перемещений на лентах. Примером может служить LTFS от IBM.
- Файловые системы баз данных: Файловые системы на основе баз данных, где файлы идентифицируются по таким характеристикам, как тип, автор или метаданные. Примерами таких систем являются IBM DB2 и другие.
- Транзакционные файловые системы: Эти системы гарантируют атомарность и изоляцию операций с файлом. Примерами служат NTFS в Microsoft Windows и другие прототипы транзакционных файловых систем для UNIX/Linux, такие как LFS, ext3 и т. д.
- Сетевые файловые системы: Сетевые файловые системы, обеспечивающие доступ к файлам на удалённых серверах по таким протоколам, как NFS, AFS, SMB, FTP и WebDAV. То есть они предназначены для распределённых вычислений.
- Общие файловые системы: Эти системы позволяют нескольким серверам безопасно получать доступ к одной и той же дисковой подсистеме. Примеры включают GFS2, GPFS, SFS, CXFS, StorNext и ScoutFS.
- Специальные файловые системы: Они довольно специфичны и не имеют элементов файла как таковых, но к ним можно получить доступ через API. Например, мы определяем файловую систему устройства как devfs, используемую в Linux и т. д. С другой стороны, у нас есть и другие специальные системы, такие как configfs, sysfs и procfs, также известные в мире Linux.
- Минимальная файловая система / хранилище аудиокассет: Аудиокассеты использовались в качестве систем хранения данных для питания некоторых моделей микрокомпьютеров того времени, таких как Commodore PET.
- Плоские файловые системы (Flat File System): Эти системы не имеют подкаталогов и хранят все записи каталогов в одном главном каталоге. Примерами таких файловых систем являются файловая система, используемая в системе CP/M и файловой системе Macintosh для классических компьютеров Mac от Apple.
ФС Технологии

Каждая файловая система имеет свои особенности, и они поддерживают разные технологии. Вот некоторые из наиболее важных:
- Самоисцеление: Относится к способности файловой системы автоматически обнаруживать и исправлять ошибки и проблемы, которые могут возникнуть в системе хранения данных. К таким ошибкам могут относиться поврежденные сектора на жестком диске или другие типы повреждения данных. При обнаружении ошибки файловая система может попытаться восстановить затронутые данные, восстановив их из резервных копий или исправив поврежденные данные. Это помогает поддерживать целостность данных, хранящихся в файловой системе.
- Сжатие: Эта функция позволяет уменьшить размер файлов и данных, хранящихся в файловой системе. Сжатие данных может сэкономить место на диске и ускорить передачу файлов. При включении сжатия файловая система автоматически сжимает записываемые в неё файлы и распаковывает их при чтении. Это может быть полезно в системах хранения с ограниченными ресурсами, хотя и может замедлить доступ.
- Шифрование: Это метод защиты конфиденциальности данных, хранящихся в файловой системе. Данные шифруются перед записью на диск и расшифровываются при чтении. Шифрование гарантирует, что данные не могут быть прочитаны без соответствующего ключа дешифрования. Это необходимо для защиты конфиденциальности и безопасности конфиденциальных данных. Как и сжатие, оно также может замедлить доступ.
- Ведение журнала (журнал транзакций): Это функция, которая ведёт учёт всех операций, выполненных в файловой системе, таких как создание, изменение или удаление файлов. Эта запись называется «журналом» или «журналом транзакций». В случае сбоя системы, например, неожиданного отключения питания, файловая система может использовать журнал транзакций для восстановления до согласованного состояния. Это предотвращает повреждение данных и обеспечивает целостность файловой системы.
- Емкость моментального снимка: Снимки — это копии файловой системы на определенный момент времени. Эти копии являются моментальными снимками и хранятся вместе с текущими данными в файловой системе. Снимки позволяют восстановить файловую систему в предыдущее состояние в случае возникновения ошибок или нежелательных изменений. Это полезно для резервного копирования, восстановления данных и тестирования изменений перед их окончательным внедрением в систему.
Что такое каталог или папка?

Теперь, когда мы знаем, как данные хранятся в единицах хранения и какие структуры данных необходимы, пора перейти к объяснению того, что такое папка или каталог.
Каталог или папка — это структура для каталогизации других файлов внутри файловой системы, обеспечивая более интуитивно понятную иерархию или организацию для пользователя или операционной системы. Для этого она содержит ссылки на другие файлы и, возможно, другие каталоги или папки, в данном случае называемые подкаталогами или подпапками.
В некоторых операционных системах с иерархической файловой системой, таких как Unix, обычно имеется кэш каталогов с последними путями, хранящимися в области оперативной памяти. В Unix этот кэш называется DNLC (Directory Name Lookup Cache), а в Linux — dcache. Этот раздел памяти обновляется последними использованными путями, тогда как в сетевых файловых системах требуется механизм обеспечения согласованности путём управления недействительными или созданными пользователями записями.
В одном иерархическая файловая система Хранилище данных имеет древовидную структуру. Термины «родитель» и «дочерний» часто используются для описания отношений между подкаталогом и каталогом, в котором он каталогизирован, причём последний является родительским. Каталог самого высокого ранга в такой файловой системе, не имеющий собственного родительского каталога, называется корневым. Это лучше всего видно в Unix или Linux, где существует определённая иерархия, а корневой каталог — это root или /, от которого зависят все остальные каталоги, даже если они находятся на разных разделах.
Виртуальный каталог — это тип организации файлов, не привязанный к местоположению в иерархическом дереве каталогов. Вместо этого он собирает результаты из источника данных, например, базы данных или пользовательского индекса, и представляет их визуально в том же формате, что и представления папок.
Эти папки или каталоги можно управлять Используя инструменты, как с графическим интерфейсом, так и с интерфейсом командной строки. Например, мы можем использовать команды или сам файловый менеджер для создания, удаления, переименования, перемещения, копирования и т. д. Хотя в некоторых операционных системах могут быть определённые ограничения на разрешения и действия, которые можно выполнять с определёнными папками...
Подробная информация о папке или каталоге в разных операционных системах
Ан када файловая система и операционная системафайлы и папки обрабатываются по-разному:
- Корень: Это точка, от которой отталкивается остальная иерархия папок системы, или место её расположения. В Windows это обычно C:\, а в Unix/Linux — корневой раздел или /.
- Путь или маршрут: Это путь к папке или файлу в файловой системе. Например, в Windows это может быть C:\Program Files\Office\Word.exe. В Unix/Linux это будет что-то вроде /home/user/example.c. Как видим, в Windows используется обратная косая черта, тогда как в *nix используется традиционная косая черта.
- Имя файла или имя файла: это имя, присваиваемое каждому файлу в конкретной файловой системе. Каждая файловая система имеет свои ограничения на максимальное количество символов в имени файла. Кроме того, необходимо различать базовое имя и расширение. В некоторых ранних системах также существовали ограничения на длину расширения, обычно три. Именно поэтому иногда встречается расширение .htm вместо .html, что обеспечивает совместимость с системами DOS. Пример имени файла: example.txt, где «example» — имя, а «txt» — расширение, что в данном случае указывает на текстовый файл.
Частный случай Unix/Linux
Что такое суперблок?
Un суперблок Это фундаментальная структура данных, находящаяся в начале файловой системы. Суперблок содержит важнейшую информацию о самой файловой системе и используется для управления данными, хранящимися в ней, и доступа к ним. Каждая файловая система Unix имеет свой собственный суперблок, и его конкретный формат может различаться в зависимости от используемой файловой системы (например, ext4, XFS, UFS и т. д.).
La информация, которая хранится в суперблок могут входить:
- Размер файловой системы: указывает общий размер файловой системы.
- Количество инодов: Указывает количество инодов, доступных в файловой системе. Иноды — это структуры данных, представляющие файлы и каталоги.
- Бесплатные блоки: Регистрирует количество свободных блоков данных, оставшихся в файловой системе для хранения информации.
- Точка крепления: указывает каталог, в котором смонтирована файловая система в операционной системе.
- Идентификация файловой системы: уникальный идентификатор файловой системы, который отличает ее от других файловых систем в той же системе.
- Дата и время сборки: записи о том, когда файловая система была смонтирована в последний раз.
- Используемые счетчики инодов и блоков: отслеживает, сколько инодов и блоков данных используется в файловой системе.
- Контрольная сумма и другие метаданные целостности: Некоторые современные суперблоки могут включать дополнительную информацию для проверки целостности данных, хранящихся в файловой системе.
При монтировании файловой системы (форматированного раздела) операционная система обращается к суперблоку для получения важной информации о структуре и состоянии файловой системы. Эта информация необходима для чтения и записи данных в файловую систему, а также для обеспечения целостности и согласованности хранимых данных.
Иноды и каталоги
En Unix/Linux, Всё является файлом, например, разделы, диски устройств и т. д. В других системах, например, в Windows, это не так. Однако, когда всё является файлом, даже папки и каталоги считаются особыми типами файлов.
Таким образом, каталог – это специальный файл, содержащий имена файлов (и подкаталогов) и номера инодов для файлов в той же файловой системе или имён символических ссылок на файлы или каталоги в той же или разных файловых системах. В случае жёстких ссылок индексный дескриптор отслеживает количество записей каталога, содержащихся в нём, и удаляет блоки файлов, когда счётчик ссылок достигает нуля. В случае мягкой ссылки или символической ссылки всё иначе. Удаление символической ссылки не влияет на целевой файл. Однако при удалении файла, на который имеются символические ссылки, ссылки становятся непригодными для использования.
В файловых системах Unix/Linux файл может иметь несколько названий, с записью каталога для каждого имени в одном и том же или разных каталогах, все из которых указывают на одну и ту же структуру inode, которая поддерживает список блоков диска, где хранятся данные.
Чтобы лучше понять всё это, важно вспомнить, что такое инод (индексный узел). Это фундаментальная структура данных в файловых системах *nix. Представляет и хранит важную информацию на файле или каталоге в файловой системе. Таким образом, и папка, и файл будут рассматриваться системой как inode.
Чтобы это было возможно, каждый узел указывает на следующий информация:
- Номер инода: уникальный идентификатор для каждого файла или каталога.
- Тип файла: Указывает, относится ли индексный дескриптор к обычному файлу (f), каталогу (d), символической ссылке (l) или другому типу файла.
- Размер: текущий размер файла в байтах.
- Разрешения и владелец: Информация о том, кто имеет разрешение на доступ (чтение, запись, выполнение) и изменение файла, а также о владельце файла (пользователь или root). Владелец может быть даже не существующим пользователем, а устройством и т. д.
- Дата и время создания/изменения: Записывает дату создания и дату последнего изменения индексного дескриптора. Могут также включаться другие метаданные или расширенные разрешения.
- Количество ссылок: Указывает, сколько имён файлов или каталогов связано с этим индексным дескриптором. У каталогов есть как минимум две ссылки: одна на себя и одна на родительский каталог.
- Указатели на блоки данных: Содержит ссылки на блоки данных на устройстве хранения, в которых хранится фактическое содержимое файла. Эти блоки могут иметь прямые, косвенные или дважды косвенные адреса, в зависимости от реализации файловой системы и размера файла.
Иноды играют ключевую роль в функционировании файловой системы, поскольку позволяют операционной системе отслеживать физическое местоположение и информацию, связанную с каждым файлом и каталогом. При обращении к файлу или каталогу операционная система обращается к соответствующему номеру инода, чтобы определить местоположение данных и другую информацию, связанную с этим файлом.