Файловая система Linux — древовидная (tree-shared) сложная структура, начинающаяся с корня. Она состоит из каталогов (директорий - directory), подкаталогов (subdirectory). Каждый файл и файловая система взаимосвязаны между собой. Эта структура соответствует типичной схеме, предложенной FHS — стандарт, поддерживаемый System Linux Foundation.
Файловая система — это способ, которым файлы именуются, хранятся, извлекаются, а также обновляются на диске или в разделе хранилища. Структура файловой системы должна иметь предопределенный формат, понятный операционной системе.
Организация файловой системы — это форматирование, разметка и способ хранения организованных структур данных на жестком (гибком) диске. Разделена такая системная оболочка на два сегмента: meta-данные (имя файла, дата создания, размер) и пользовательские данные. Ваш компьютер использует эту файловую систему для определения расположения файлов в вашем хранилище.
К примеру, основные файловые системы Windows: файловая система NTFS, файловая система FAT и FAT32. В файловой системе NTFS поддерживаются три типа ссылок на файлы: жесткие связи, точки соединения и символьные ссылки (NTFS Links). Структура NTFS — одна из самых удачных и сложных на данный момент. Каждый кластер на носителе имеет запись в таблице FAT. Записи указывают на назначение частей файла кластеру. Каждая запись файла конкатенируется с другими записями файла, начиная с первого кластера. Поскольку первая система распределения FAT могла обрабатывать только восьмибуквенные имена файлов, существовали некоторые ограничения, которые были сняты в FAT16, а затем в FAT32.
Виды файловых систем, предлагаемых при установке ОС на базе Linux:
Ext — extended (расширенная) file system. Она была предложена в 1992 году и считается одной из первых.
Ее функциональность была разработана частично на основе файловой системы UNIX. Начальная цель — выйти за рамки файловой системы, использовавшейся до нее (MINIX), и преодолеть ее ограничения. Сегодня практически не используется.
Ext2 — «вторая расширенная система». Известна с 1993 года. Она была разработана как аналог предыдущей файловой системы.
В ней были реализованы инновации в рамках объема памяти, изменена общая производительность. Она позволяет хранить до 2 ТБ данных. Как и ext, она малоперспективная, поэтому ее следует избегать.
Ext3 — третья расширенная файловая система. Ее предложили в 2001 году. Превосходит предыдущую тем, что является журналируемой. Журналируемая (journaling) ФС — это система, которая записывает в отдельный журнал изменения (обновления) файлов и данных до того, как эти действия были завершены.
В этой файловой системе используется алгоритм, позволяющий восстановить файлы после перезагрузки.
Ext4 — fourth extended system (четвертая версия расширенных систем). Ее создали в 2006 году. Она преодолела многочисленные ограничения, которые были в третьей версии. И сегодня широко используется, и является файловой системой по умолчанию в большинстве дистрибутивов Linux.
Хотя она, возможно, не самая передовая, она достаточно надежна и стабильна, поэтому находит повсеместное применение среди обширного списка Unix систем.
Поэтому, если вам не очень хочется ломать голову над плюсами и минусами всех многочисленных файловых систем, которые вы можете выбрать, специалисты рекомендуют остановиться на этой системе.
JFS — была создана компанией IBM в 1990 году. Название JFS — акроним, означающий Journaling File System. Она легко восстанавливает данные после сбоя питания и довольно надежна. Более того, она потребляет меньше процессорной мощности, чем другие файловые системы.
XFS — высокопроизводительная файловая система. Она была создана компанией Silicon Graphics. Изначально предназначалась для их ОС «IRIX», но позже была передана Linux. Сегодня также встречается XFS Windows.
Созданная в 1990 году, XFS — это 64-битная высокопроизводительная журналируемая (journaling) системная оболочка. Она хорошо работает с файлами большого объема, но не особенно с файлами меньшего размера.
Btrfs — альтернативная файловая система, предложенная фирмой Oracle в 2009 году. Она считается конкурирующей файловой системой с Ext4, хотя, по общему мнению, последняя представляет собой лучшую версию (быстрее передает данные, обеспечивает большую стабильность). Однако в Btrfs есть несколько уникальных преимуществ. В целом она обладает отличной производительностью.
Выделяют такие типы файлов Linux:
Типы файлов |
Обозначение |
Назначение |
Обычные файлы |
– |
Хранение символьных и двоичных данных |
Каталоги |
d |
Организация доступа к файлам |
Символьные ссылки |
l |
Предоставление доступа к файлам, расположенных на любых носителях |
Блочные устройства |
b |
Предоставление интерфейса для взаимодействия с аппаратным обеспечением компьютера |
Символьные устройства |
c |
|
Каналы |
p |
Организация взаимодействия процессов в операционной системе |
Сокеты |
s |
Каталог (directory) — файл, содержащий другие организованные структуры данных (директории), который обеспечивает указатели на них. Играет роль папки в картотеке (группирует связанные файлы). Но если папки содержат только файлы, то директории могут содержать дополнительные каталоги (subdirectories).
Символическая (мягкая, soft) ссылка указывает на имя и местоположение отдельного файла. Когда пользователь копирует, перемещает или другим образом указывает на ссылку, операция проводится над файлом, на который ссылаются.
Отдельно создают жесткие ссылки. Жесткая (hard) ссылка указывает на фактические данные в файле аналогично, как и в regular file. Помимо имени, нет никакой разницы между оригинальным файлом и жесткой ссылкой, указывающей на те же данные. Оба файла представляют собой обычные файлы. Отличить жесткую ссылку от любого другого обычного файла можно только по количеству ссылок, которые есть у каждого из них. Количество ссылок отображается во втором поле листинга ls -l. Если это число >1, то значит, что существуют дополнительные жесткие ссылки на данные.
Все физические устройства, которые использует Linux, представлены файлами устройств. Файлы устройств (device file) классифицируют как специальные символы или специальные блоки. Специальные символьные файлы представляют устройства, которые взаимодействуют с Linux посимвольно. Принтеры — пример такого устройства. Файлы block-special — это жесткие и гибкие диски, а также CD-ROM, взаимодействующие с ОС, используя блоки данных.
Device file чрезвычайно мощны, поскольку они позволяют пользователям получать доступ к аппаратным устройствам, таким как дисководы, модемы и принтеры, как если бы они были файлами данных. Их легко можно перемещать, копировать и передавать данные между устройствами, часто без использования специальных команд или синтаксиса.