- Структура и типы файловых систем в Linux
- Организация файловой системы Linux
- Структура и иерархия файловой системы Linux
- Типы ФС Linux
- Особые файловые системы
- 1.1. Модель файловой системы Linux/Unix
- Читайте также
- 4.1. Введение в модель ввода/вывода Linux/Unix
- 10.2.3. Идентификатор uid файловой системы
- Структура файловой системы UNIX
- Мнемоника названий специальных файлов устройств в файловой системе UNIX
- Целостность файловой системы
- 5.14.2 Демонтирование файловой системы
- 5.16.1 Целостность файловой системы
- 5.18 СОПРОВОЖДЕНИЕ ФАЙЛОВОЙ СИСТЕМЫ
- 4.13. Обслуживание файловой системы
- 2.2. Изнанка файловой системы
- 4.2.4. Проверка файловой системы
- Ускорение файловой системы
- Выбор файловой системы
- Дефрагментация файловой системы
Структура и типы файловых систем в Linux
Файловая система (file system, ФС) — важная составляющая любой операционной системы (ОС), отвечающая за организацию, хранение, чтение, запись файлов. От ФС зависит физическая и логическая структура файлов, политика создания и управления ими, максимальный размер файла и длина его имени. Linux поддерживает множество разных file system, включая FAT, FAT32, NTFS из Windows. Но использовать рекомендуем «родные» системы: Ext3, Ext4, ReiserFS, XFS, Btrfs и пр. Особенно если вы намерены работать с облачной инфраструктурой.
Организация файловой системы Linux
Linux позволяет установить отдельную ФС для каждого раздела. Выбранная система определяет, как быстро будет выполняться работа с файлами, запись и чтение информации. Как в оперативной памяти будет храниться информация (и будет ли она вообще храниться), каким образом можно вносить изменения в конфигурацию ядра ОС — это тоже зависит от ФС.
File system Linux — пространство раздела, состоящее из кратных размеру сектора блоков. Обмен данными производится через VFS или с помощью драйверов. VFS (virtual file system) — это слой абстракции, необходимый для взаимодействия между ядром и софтом. VFS позволяет не думать о специфике работы той или иной ФС. Драйверы ФС обеспечивают взаимодействие между оборудованием (железом) и приложениями.
File system Linux организована следующим образом
Такая архитектура позволяет обеспечивать поддержку добавляемой ФС без вмешательства в ядро ОС. Ядро Linux поддерживает более 100 типов файловых систем, причём не только современных, но и старых. Чтобы увидеть список ФС, поддерживаемых ядром, откройте /proc/filesystems.
Структура и иерархия файловой системы Linux
В Linux имеется своя особая структура каталогов, политика распределения файлов конфигурации, исполняемых и временных файлов. Здесь работает логика, отличная от Windows.
Ключевое отличие в том, что обычно в линуксе программа не сохраняется в одной папке. Она распределяется по корневой файловой системе. По сути, file system в Linux начинается с директории «/» (которая называется корнем — от слова root) и разрастается в директории /sbin, /dev, /lib, /log, /boot и т.д. Получается древовидная иерархическая структура, в которой абсолютный путь к любой сущности начинается с корневой директории. Если файл лежит в /home/user/work, то структура каталогов идет по цепочке root->home->user->work.
Иерархичность линуксовых систем часто определяется стандартом FHS, который описывает, какая информация должна находится в том или ином месте «дерева». Ещё одной особенностью линкусовой файловой системы является её целостность. Это значит, что любые изменения, вносимые в файл, не влияют на другие файлы, которые не связаны с ним. Командой fsck вы можете проверить целостность ФС в Linux.
Типы ФС Linux
Пользователи могут использовать одну или несколько файловых систем, зашитых в линуксовый дистрибутив. Так как от них зависит метод работы с файлами, конфигурацией ядра и особенности хранения информации в оперативной памяти, то выбирать file system нужно исходя из текущих задач, учитывая сильные и слабые стороны доступных ФС.
Выделяют два типа таких систем, журналируемые и не журналируемые. Определить тип можно при помощи команды file -s. ФС первого типа ведут логи, фиксируя в отдельном файле информацию о действиях пользователя и план проверки системы. За счёт логирования система получается более устойчивой к сбоям. ФС второго типа не имеют логов. Они обладают хорошим быстродействием, но более уязвимы, так как не обеспечивают сохранность данных.
Если вы работали с линуксом, то file system из списка ниже вам наверняка знакомы:
Особые файловые системы
Можно привести и другие разновидности файловых систем. Например, линуксоидам известны специальные ФС. Они используются для обеспечения доступа пользователю или приложениям к настройкам ядра ОС. Среди специальных файловых систем выделяют:
- tmpfs. Записывает данные в оперативную память, создавая блочное устройство требуемого размера, которое затем подключают к папке.
- procfs. Отвечает за хранение информации о системных процессах и ядре.
- sysfs. Управляет настройками ядра ОС.
Бывают ситуации, когда наличие ФС в ядре системы не требуется. В этом случае можно использовать модуль FUSE (filesystem in userspace), который создаёт виртуальную файловую систему. Существует несколько видов виртуальных ФС с разным функционалом:
- EncFS. Шифрует файлы и сохраняет их в выбранную директорию.
- Aufs. Объединяет несколько file system в одну. Умеет делать то же самое с папками.
- NFS. Может удалённо монтировать ФС.
- ZFS. Создана для операционной системы Solaris. Отсутствие фрагментации, управление снапшотами, меняющийся размер блоков обеспечивают высокий уровень привлекательности этой ФС.
Отметим, что в этой статье даются базовые сведения о файловых системах Linux, а типов ФС существует намного больше. Если вам требуется более детальная информация о типах ФС и их отличиях, рекомендуем обратиться к документации.
1.1. Модель файловой системы Linux/Unix
Одной из движущих целей первоначального проекта Unix была простота. Простые понятия легко изучать и использовать. Когда понятия переведены в простые API, легко проектировать, писать и отлаживать простые программы. Вдобавок, простой код часто занимает меньше места и он более эффективен, чем более усложненные проекты.
Поиск простоты направлялся двумя факторами. С технической точки зрения, первоначальные мини-компьютеры PDP-11, на которых разрабатывалась Unix, имели маленькое адресное пространство: 64 килобайта на меньших системах, 64 Кб кода и 64 Кб данных на больших. Эти ограничения относились не только к обычным программам (так называемому коду уровня пользователя), но и к самой операционной системе (коду уровня ядра). Поэтому не только «Маленький — значит красивый» в эстетическом смысле, но «Маленький — значит красивый», потому что не было другого выбора!
Вторым фактором была отрицательная реакция на современные коммерческие операционные системы, которые были без надобности усложнены, со сложными командными языками, множеством разновидностей файлового ввода-вывода и слабой общностью или гармонией. (Стив Джонсон однажды заметил: «Использование TSO подобно пинанию мертвого кита на побережье». TSO — это как раз одна из только что описанных бестолковых систем с разделением времени «для мэйнфреймов.)
Читайте также
4.1. Введение в модель ввода/вывода Linux/Unix
4.1. Введение в модель ввода/вывода Linux/Unix Модель API Linux/Unix для ввода/вывода проста. Ее можно суммировать четырьмя словами. открыть, прочитать, записать, закрыть. Фактически, это имена системных вызовов: open(), read(), write(), close(). Вот их объявления:#include <sys/types.h> /* POSIX */#include <sys/stat.h>
10.2.3. Идентификатор uid файловой системы
10.2.3. Идентификатор uid файловой системы В очень специальных случаях программе может понадобиться сохранять свои права root для всего, кроме доступа к файловой системе, при котором она использует пользовательский uid. Изначально использовавшийся в Linux NFS-сервер пространства
Структура файловой системы UNIX
Структура файловой системы UNIX Использование общепринятых имен основных файлов и структуры каталогов существенно облегчает работу в операционной системе, ее администрирование и переносимость. Эта структура используется в работе системы, например при ее инициализации
Мнемоника названий специальных файлов устройств в файловой системе UNIX
Мнемоника названий специальных файлов устройств в файловой системе UNIX Названия специальных файлов устройств в большой степени зависят от конкретной версии UNIX. Тем не менее в этих названиях присутствует общая логика, позволяющая даже в незнакомой системе определить,
Целостность файловой системы
Целостность файловой системы Значительная часть файловой системы находится в оперативной памяти. А именно, в оперативной памяти расположены суперблок примонтированной системы, метаданные активных файлов (в виде системно-зависимых inode и соответствующих им vnode) даже
5.14.2 Демонтирование файловой системы
5.14.2 Демонтирование файловой системы Синтаксис вызова системной функции umount:umount(special filename);где special filename указывает демонтируемую файловую систему. При демонтировании файловой системы (Рисунок 5.27) ядро обращается к индексу демонтируемого устройства, восстанавливает
5.16.1 Целостность файловой системы
5.16.1 Целостность файловой системы Ядро посылает свои записи на диск для того, чтобы свести к минимуму опасность искажения файловой системы в случае системного сбоя. Например, когда ядро удаляет имя файла из родительского каталога, оно синхронно переписывает каталог на
5.18 СОПРОВОЖДЕНИЕ ФАЙЛОВОЙ СИСТЕМЫ
5.18 СОПРОВОЖДЕНИЕ ФАЙЛОВОЙ СИСТЕМЫ Ядро поддерживает целостность системы в своей обычной работе. Тем не менее, такие чрезвычайные обстоятельства, как отказ питания, могут привести к фатальному сбою системы, в результате которого содержимое системы утрачивает свою
4.13. Обслуживание файловой системы
4.13. Обслуживание файловой системы Обслуживание файловой системы в ОС Linux сводится к двум операциям:1. Проверка.2. Дефрагментация.Проверка и восстановление файловой системы Linux выполняется программой fsck. Перед проверкой файловая система должна быть смонтирована в режиме
2.2. Изнанка файловой системы
2.2. Изнанка файловой системы С точки зрения операционной системы, под файловой системой понимается внутренняя управляющая структура, заведующая хранением данных на физическом носителе, их поиском, извлечением и записью по запросам программ. Такие управляющие структуры
4.2.4. Проверка файловой системы
4.2.4. Проверка файловой системы Для проверки файловой системы используется программа fsck (сокращение от file system check). С помощью данной программы вы можете проверить не только файловые системы Linux, но и Windows-разделы (только vfat). Единственное требование — перед началом проверки
Ускорение файловой системы
Ускорение файловой системы Можно ускорить действие файловой системы, (если позволяет оперативная память) увеличив параметр типа DWORD °IoPageLockLimit° от заданных по умолчанию 512 КБ до 4 МБ и более в разделе HKLMSYSTEMCurrentControlSetControlSession ManagerMemory ManagementЭтот параметр представляет
Выбор файловой системы
Выбор файловой системы Файловая система необходима для систематизации файлов и управления ими. Термин FAT образовался от начальных букв словосочетания File Allocation Table (таблица размещения файлов). Файловая система создается при форматировании жесткого диска, который может
Дефрагментация файловой системы
Дефрагментация файловой системы При интенсивной работе на компьютере пользователю часто приходится создавать, копировать, перемещать, удалять большое количество файлов, кроме того, сама операционная система создает и удаляет много временных файлов. Вскоре это может