- Файловая система Linux
- Монтирование
- Стандартные каталоги
- Структура файловой системы Linux
- Структура каталогов
- Подключение внешних носителей
- Понятие файла
- Принцип установки программ
- Регистр имен
- Что такое корневая файловая система linux
- Структура и типы файловых систем в Linux
- Файловые системы в операционной системе Linux. Базовые понятия
- Организация файловой системы Linux
- Структура и иерархия файловой системы. Структура каталога
- Команды для работы с файлами в Linux
- Типы файловых систем Linux. Какая из файловых систем используется ядром Linux
- Ext2, Ext3, Ext4
- Два типа файловых систем
- ReiserFS
- Btrfs
- OpenZFS
- Специальные файловые системы
- Виртуальные файловые системы: EncFS, Aufs, NFS и ZFS
Файловая система Linux
Операционные системы хранят данные на диске при помощи файловых систем. Классическая файловая система представляет данные в виде вложенных друг в друга каталогов (их ещё называют папками), в которых содержатся файлы 1 . Один из каталогов является «вершиной» файловой системы (а выражаясь технически — «корнем» 2 ), в нём содержатся (или из него растут) все остальные каталоги и файлы.
Если жёсткий диск разбит на разделы, то на каждом разделе организуется отдельная файловая система с собственным корнем и структурой каталогов (ведь разделы полностью изолированы друг от друга).
В Linux корневой каталог называется весьма лаконично — « / ». Полные имена (пути) всех остальных каталогов получаются из « / », к которому дописываются справа имена последовательно вложенных друг в друга каталогов. Имена каталогов в пути также разделяются символом « / » («слэш»). Например, запись /home обозначает каталог « home » в корневом каталоге (« / »), а /home/user — каталог « user » в каталоге « home » (который, в свою очередь, в корневом каталоге) 3 . Аналогичным образом составляются полные имена файлов.
Монтирование
Корневой каталог в Linux всегда только один, а все остальные каталоги в него вложены, т. е. для пользователя файловая система представляет собой единое целое 4 . В действительности, разные части файловой системы могут находиться на совершенно разных устройствах: разных разделах жёсткого диска, на разнообразных съёмных носителях (лазерных дисках, дискетах, флэш-картах), даже на других компьютерах (с доступом через сеть). Для того, чтобы соорудить из этого хозяйства единое дерево с одним корнем, используется процедура монтирования.
Монтирование — это подключение в один из каталогов целой файловой системы, которая находится где-то на другом устройстве. Эту операцию можно представить как «прививание» ветки к дереву. Для монтирования необходим пустой каталог — он называется точкой монтирования. Точкой монтирования может служить любой каталог, никаких ограничений на этот счёт в Linux нет. При помощи специальной команды ( mount ) мы объявляем, что в данном каталоге (пока пустом) нужно отображать содержимое такого-то устройства. После этой операции в каталоге (точке монтирования) появятся все те файлы и каталоги, которые находятся на соответствующем устройстве. В результате пользователь может даже и не знать, на каком устройстве какие файлы располагаются.
Подключённую таким образом («смонтированную») файловую систему можно в любой момент отключить — размонтировать (для этого имеется специальная команда umount ), после чего тот каталог, куда она была смонтирована, снова окажется пустым.
Одно из устройств для Linux является самым важным — это корневая файловая система (root filesystem). Именно к ней затем будут подключаться (монтироваться) все остальные файловые системы на других устройствах. Обратите внимание, что корневая файловая система тоже монтируется, но только не к другой файловой системе, а к «самой Linux», причём точкой монтирования служит « / » (корневой каталог). Поэтому при загрузке системы прежде всего монтируется корневая файловая система, а при останове она размонтируется (в последнюю очередь).
Пользователю обычно не требуется выполнять монтирование и размонтирование вручную: при загрузке системы будут смонтированы все устройства, на которых хранятся части файловой системы, а при останове (перед выключением) системы все они будут размонтированы. Файловые системы на съёмных носителях (лазерных дисках, дискетах и пр.) также монтируются и размонтируются автоматически — либо при подключении носителя, либо при обращении к соответствующему каталогу.
Стандартные каталоги
В корневом каталоге Linux-системы обычно находятся только подкаталоги со стандартными именами. Более того, не только имена, но и тип данных, которые могут попасть в тот или иной каталог, также регламентированы стандартом 5 . Этот стандарт довольно последовательно соблюдается во всех Linux-системах: так, в любой Linux вы всегда найдёте каталоги /etc , /home , /usr/bin и т. п. и сможете довольно точно предсказать, что именно в них находится.
Стандартное размещение файлов позволяет и человеку, и даже программе предсказать, где находится тот или иной компонент системы. Для человека это означает, что он сможет быстро сориентироваться в любой системе Linux (где файловая система организована в соответствии со стандартом) и найти то, что ему нужно. Для программ стандартное расположение файлов — это возможность организации автоматического взаимодействия между разными компонентами системы.
1Файл — область данных, имеющая собственное имя.
2Такой каталог называют корневым каталогом, поскольку он служит корнем дерева файловой системе (в математическом смысле слов «дерево» и «корень»).
3Весьма похожий способ записи полного пути используется в системах DOS и Windows, с той разницей, что корневой каталог обозначается литерой устройства с последующим двоеточием, а в качестве разделителя используется символ « \ » («обратный слэш»).
4Это отличается от технологии, применяемой в Windows или Amiga, где для каждого устройства, на котором есть файловая система, используется свой корневой каталог, обозначенный литерой, например « a », « c », « d » и т. д.
Источник
Структура файловой системы Linux
Файловая система в ОС Linux, как и в ОС Windows, представляет собой иерархическую структуру каталогов и файлов (в виде дерева), но при этом имеет ряд кардинальных отличий.
Структура каталогов
В ОС Windows жесткие диски называются латинскими буквами (С:, D:, . ), и каждый из дисков представляет собой корневой каталог с собственным деревом папок. Подключение же нового устройства приведет к появлению нового корневого каталога со своей буквой (например, F:). В ОС Linux файловая система представлена единым корневым каталогом, обозначаемым как слэш (/). Соответственно, при данной файловой структуре не диски содержат каталоги, а каталог — диски.
Подключение внешних носителей
В ОС Linux имеется процедура монтирования: когда подключается съемный носитель или диск, файл устройства будет виден в каталоге /dev (devices). Чтобы увидеть содержимое этого устройства, его нужно смонтировать в отдельную директорию /mnt. Также файловая система позволяет примонтировать его и в любое другое место, например /home.
Понятие файла
Понятие «файл» в Linux имеет несколько другое значение, нежели в Windows. «Файлом» можно назвать обычный файл, содержащий данные, и интерпретируемый программой. Директория также является «файлом», содержащим в себе ссылки на другие директории или файлы с данными. Файлы устройства указывает на драйвер, благодаря которому система взаимодействует с физическими устройствами. Имеются и многие другие типы файлов.
Принцип установки программ
Если в Windows программы, зачастую, хранят все данные в одной папке, например в «C:Program FilesProgramName», то в Linux файлы программы разделяются по каталогам в зависимости от типа. Например, исполняемые файлы в /bin, библиотеки в /lib, файлы конфигураций в /etc, логи и кэш в /var.
Регистр имен
Также стоит отметить чувствительность файловой системы Linux к регистру. Файлы Temp.txt и temp.txt будут интерпретироваться как разные файлы и могут находиться в одной директории, в отличие от ОС Windows, который не различает регистр имен. То же правило действует и на каталоги — имена в разных регистрах указывают на разные каталоги.
Назначение каждой директории регламентирует «Стандарт иерархии файловой системы» FHS (Filesystem Hierarchy Standard). Ниже опишем основные директории согласно стандарту FHS:
Стандарт иерархии файловой системы
- / — root каталог. Содержит в себе всю иерархию системы;
- /bin — здесь находятся двоичные исполняемые файлы. Основные общие команды, хранящиеся отдельно от других программ в системе (прим.: pwd, ls, cat, ps);
- /boot — тут расположены файлы, используемые для загрузки системы (образ initrd, ядро vmlinuz);
- /dev — в данной директории располагаются файлы устройств (драйверов). С помощью этих файлов можно взаимодействовать с устройствами. К примеру, если это жесткий диск, можно подключить его к файловой системе. В файл принтера же можно написать напрямую и отправить задание на печать;
- /etc — в этой директории находятся файлы конфигураций программ. Эти файлы позволяют настраивать системы, сервисы, скрипты системных демонов;
- /home — каталог, аналогичный каталогу Users в Windows. Содержит домашние каталоги учетных записей пользователей (кроме root). При создании нового пользователя здесь создается одноименный каталог с аналогичным именем и хранит личные файлы этого пользователя;
- /lib — содержит системные библиотеки, с которыми работают программы и модули ядра;
- /lost+found — содержит файлы, восстановленные после сбоя работы системы. Система проведет проверку после сбоя и найденные файлы можно будет посмотреть в данном каталоге;
- /media — точка монтирования внешних носителей. Например, когда вы вставляете диск в дисковод, он будет автоматически смонтирован в директорию /media/cdrom;
- /mnt — точка временного монтирования. Файловые системы подключаемых устройств обычно монтируются в этот каталог для временного использования;
- /opt — тут расположены дополнительные (необязательные) приложения. Такие программы обычно не подчиняются принятой иерархии и хранят свои файлы в одном подкаталоге (бинарные, библиотеки, конфигурации);
- /proc — содержит файлы, хранящие информацию о запущенных процессах и о состоянии ядра ОС;
- /root — директория, которая содержит файлы и личные настройки суперпользователя;
- /run — содержит файлы состояния приложений. Например, PID-файлы или UNIX-сокеты;
- /sbin — аналогично /bin содержит бинарные файлы. Утилиты нужны для настройки и администрирования системы суперпользователем;
- /srv — содержит файлы сервисов, предоставляемых сервером (прим. FTP или Apache HTTP);
- /sys — содержит данные непосредственно о системе. Тут можно узнать информацию о ядре, драйверах и устройствах;
- /tmp — содержит временные файлы. Данные файлы доступны всем пользователям на чтение и запись. Стоит отметить, что данный каталог очищается при перезагрузке;
- /usr — содержит пользовательские приложения и утилиты второго уровня, используемые пользователями, а не системой. Содержимое доступно только для чтения (кроме root). Каталог имеет вторичную иерархию и похож на корневой;
- /var — содержит переменные файлы. Имеет подкаталоги, отвечающие за отдельные переменные. Например, логи будут храниться в /var/log, кэш в /var/cache, очереди заданий в /var/spool/ и так далее.
Источник
Что такое корневая файловая система linux
В Linux и Unix все — файл. Директории, устройства, сами файлы — все это ФАЙЛЫ. Устройства определяются узлами (Minor node и Major node), но при этом они остаются файлами.
Файловые системы Linux и Unix организованы в виде древовидной иерархической структуры. Самый верхний уровень файловой системы это / или корневой каталог. Все остальные файлы и каталоги находятся в корневом каталоге. Например, /home/jebediah/cheeses.odt показывает правильный полный путь к файлу cheeses.odt , который находится в каталоге jebediah , который находится в каталоге home , который, в свою очередь, находится в корневом каталоге.
В корневом каталоге находится набор важных каталогов, общих для большинства систем Linux. Вот список основных каталогов, которые находятся непосредственно в корневом ( / ) каталоге:
/bin — важные бинарные (исполняемые) приложения
/boot — загрузочные конфигурационные файлы, ядра и другие файлы, необходимые во время загрузки операционной системы
/dev — файлы устройств
/etc — конфигурационные файлы, стартовые сценарии
/home — домашние каталоги пользователей
/initrd — используется при создании частного initrd процесса загрузки
/lib — системные библиотеки
/lost+found — предоставляет систему потерян+найден для файлов в корневом ( / ) каталоге
/mnt — файловые системы на вашем жестком диске, примонтированные вручную
/opt — каталог для установки дополнительных приложений
/proc — специальный динамический каталог, содержащий информацию о состоянии системы, включая процессы , исполняемые в данный момент
/root — домашний каталог пользователя root , произносится «слэш-рут»
/sbin — важные с истемные бин арные приложения
/srv — может содержать файлы веб-сервера, ftp-сервера и др.
/sys — системные файлы
/tmp — временные файлы
/usr — приложения и файлы, наиболее доступные всем пользователям
/var — изменяемые файлы, такие как логи и базы данных
Источник
Структура и типы файловых систем в Linux
Ядро операционной системы Linux содержит целый набор предустановленных файловых систем, каждая из которых помогает пользователю успешно решать стоящие перед ним задачи.
В зависимости от того, что необходимо, — быстродействие, высокая гарантия восстановления данных или производительность, можно выбрать стандартную файловую систему для конкретного раздела, специальную или виртуальную. Разобрались, как устроены файловые системы Linux, чем они отличаются и в каких случаях применяются.
Файловые системы в операционной системе Linux. Базовые понятия
ОС Linux предоставляет выбор еще на стадии установки: в ядро системы встроены разные файловые системы (ФС). При этом пользователь должен выбрать ту, что отвечает его требованиям и задачам. Перед теми, кто использует Windows, такой вопрос не стоит — эту ОС можно установить только на NTFS. Отличается от Windows и иерархическое устройство самих ФС, и структура каталогов.
Linux поддерживает деление жесткого диска на разделы. Для подсчета и определения физических границ используется специальная таблица разделов — GPT или MBR. Она содержит метку и номер раздела, а также адреса физического расположения точек начала и конца раздела.
Организация файловой системы Linux
В Linux на каждый раздел можно установить свою ФС, которая отвечает за порядок и способ организации информации. В основе файловых систем лежит набор правил, определяющий, где и каким образом хранятся данные. Следующий «слой» ФС — практический (технический) способ организации информации на каждом конкретном типе носителя (опять же, учитывая правила, заложенные в основу системы).
От выбора файловой системы зависят:
- скорость работы с файлами;
- их сохранность;
- скорость записи;
- размер файлов.
Тип ФС также определяет, будут ли данные храниться в оперативной памяти (ОП) и как именно пользователь сможет изменить конфигурацию ядра.
Файловая система (ФС) — архитектура хранения данных, которые могут находиться в разделах жесткого диска и ОП. Выдает пользователю доступ к конфигурации ядра. Определяет, какую структуру принимают файлы в каждом из разделов, создает правила для их генерации, а также управляет файлами в соответствии с особенностями каждой конкретной ФС.
ФС Linux — пространство раздела, поделенное на блоки определенного размера. Он определяется кратностью размеру сектора. Соответственно, это могут быть 1024, 2048, 4096 или 8120 байт. Важно помнить, что размер каждого блока известен изначально, ограничен максимальным размером ФС и зависит от требований, которые выдвигает пользователь к каждому из блоков.
Для обмена данными существует сразу два способа. Первый из них — виртуальная файловая система (VFS). С помощью данного типа ФС происходит совместная работа ядра и приложений, установленных в системе. VFS позволяет пользователю работать, не учитывая особенности каждой конкретной ФС. Второй способ — драйверы файловых систем. Именно они отвечают за связь между «железом» и софтом.
Список файловых систем, которые поддерживаются ядром, находится в файле /proc/filesystems:
Структура и иерархия файловой системы. Структура каталога
Файловая система в Linux определяет также организацию расположения файлов, по сути представляя собой иерархическую структуру «дерева»: начинается с корневого каталога «/» и разрастается ветвями в зависимости от работы системы.
ФС также характерно понятие целостности: в такой системе изменения, внесенные в один файл, не приведут к изменению другого файла, не связанного с первым. У всех данных есть собственная физическая память. В Linux целостность ФС проверяется специальной командой — fsck.
Типы файлов условно можно разделить на несколько групп. Некоторые из них такие же, как и в ОС Windows, — текстовые документы, медиа и изображения. Отличия начинаются с каталогов, которые являются отдельным типом файлов. Жесткие диски относят к блочным устройствам. Принтеры — к символьным. Отдельную группу составляют символические ссылки, о которых речь пойдет ниже. К типам файлов относится каналы межпроцессного взаимодействия — PIPE (FIFO), а также гнезда (разъемы центрального процессора).
Тип файла определяется с помощью команды ls (параметр -l).
В ФС каждый файл определяется конкретным индексом — Inode (от англ. index node — «индексный дескриптор»). Но при этом один файл (речь о физическом размещении) может иметь сразу несколько имен (или путей). И если в структуре ФС файлы будут отличаться, то на жестком диске им может соответствовать один файл. Это означает, что ФС Linux перекрестно-иерархична, а ветви дерева могут пересекаться.
Корневой раздел в Linux один — «/» (root, «корень)». Разделы называются подкаталогами, примонтированными к соответствующим каталогам. Типовая структура каталогов (первых двух уровней), примонтированных к корневому каталогу Linux для сервера, представленного компанией Selectel, выглядит так:
При монтировании происходит ассоциирование каталога с устройством, содержащим ФС (драйвер). Соответствующая ссылка на устройство передается драйверу. Именно он и определяет ФС. Если процедура завершается успешно, ядро заносит информацию (каким драйвером обслуживаются и где расположены файлы и каталоги) в таблицу монтирования. Она находится в файле /proc/mounts.
Данные о каждом файле содержит Inode — специфичный для UNIX-систем индексный дескриптор, хранящий различную метаинформацию (владелец файла, последнее время обращения, размер и так далее).
Когда файл (каталог) перемещается в другую ФС, его Inode тоже создается заново. И только потом удаляется исходный (в рамках той же системы меняется только путь файла). Также отметим, что файл (каталог) существует до того момента, пока хранится информация о его имени или пути к нему. После удаления всей информации блоки, отведенные под файл, становятся свободными (для выделения под другой файл).
Еще одна особенность Linux: существование сразу двух типов ссылок. Во-первых, жесткая ссылка (Hard-Link), которая представляет собой один из путей файла (команда ls -li). Во-вторых, символьная ссылка (Symbolic link) — это файл UNIX с текстовой строкой с путем к оригинальному файлу.
Общая информация о ФС хранится в суперблоке. Сюда относится суммарное число блоков и Inode, число свободных блоков, их размеры и так далее. Важно, чтобы суперблок сохранял свою целостность, поскольку от этого зависит стабильность и работоспособность системы в целом. В ОС создается сразу несколько копий, чтобы можно было восстановить всю необходимую информацию.
При загрузке ядро автоматически монтирует разделы после того, как корень уже примонтирован на чтение. Информацию ядро считывает из конфигурации /etc/fstab. Содержимое файла /etc/fstab с информацией о порядке монтирования разделов файловой системы на примере сервера Selectel:
В соответствии с этим файлом сначала монтируется корневой каталог / из раздела /dev/mapper/vg0-root / с файловой системой ext4. Потом каталог, на котором находится загрузчик /boot, из раздела с длинным именем UUID=196a5b2c-8d6b-4970-a9c8-4579ab46e220. И отдельно монтируется swap (иногда его называют разделом подкачки), но в структуре он не отображается.
Еще одна особенность: устройства монтируются по идентификатору. Это, в свою очередь, помогает не перенастраивать файл конфигурации, когда пользователь меняет блочное устройство.
Команды для работы с файлами в Linux
Команда | Что делает |
ls | Просматривает содержимое текущего каталога |
touch file_name | Создает файл file_name |
mkdir directory_name | Создает директорию directory_name |
cat file_name | Показывает содержимое файла file_name в терминале |
less file_name | Обеспечивает просмотр файла с помощью скроллинга |
rm file_name | Удаляет файл file_name |
rm -r | Удаляет рекурсивно все файлы из директории |
rmdir directory | Удаляет папку directory, которая находится в текущей папке |
ln -s /home/user/directory_name/ /home/user/test/ | Создает жесткие и символические ссылки на файлы или папки. Для создания символической ссылки используется опция -s |
pwd | Выводит каталога, в котором находится пользователь |
which program | Выводит каталог, в котором установлена программа |
mc | Запускает полнофункциональный файловый менеджер с псевдографическим интерфейсом на основе ncurses. Требуется установка mc в Ubuntu |
cd directory_name | Переходит в директорию directory_name |
cp file_name directory_name | Копирует file_name в директорию directory_name |
nano | Инициирует запуск простейшего текстового редактора командной строки Linux |
mv file_name directory_name | Перемещает file_name в директорию directory_name |
mv old_name new_name | Переименовывает файл/директориюold_name в new_name |
locate file_name | Выполняет быстрый поиск файла |
chmod 644 file_name | Изменяет права доступа к файлу или каталогу |
Типы файловых систем Linux. Какая из файловых систем используется ядром Linux
Как уже говорилось ранее, в Linux несколько предустановленных и доступных ФС. В зависимости от выбора пользователя будут меняться методы работы с файлами, обращения к конфигурации ядра и способы хранения данных в ОП. В зависимости от целей и задач пользователя (а также достоинств и недостатков самих ФС) можно выбрать любую файловую систему, доступную в дистрибутиве ОС.
Список основных файловых систем:
ФС может являться корневой в различных разделах, Linux позволяет использовать разные системы одновременно.
Ext2, Ext3, Ext4
Первая группа ФС — Extended Filesystem (Ext2, Ext3, Ext4) — является стандартом для Linux. Как следствие, это самые распространенные системы. Они редко обновляются, но зато стабильны. Ext2 создавалась специально под Linux (изначально Extended Filesystem делали еще под Minix).
Эта группа ФС поддерживает наибольшее количество доступных функций из всех, предложенных на рынке. Ext3 (2001 г.) стала еще более стабильной, чем ее предшественница, за счет использования журналирования, а версия Ext3 (2006 г.) популярна и среди современных пользователей. Среди улучшений: увеличение максимального размера раздела до 1 Эксабайта.
Два типа файловых систем
Журналируемые — данный тип ФС сохраняет историю действий пользователя, а также план проверки системы в специальном файле. Особенности: устойчивость к сбоям и сохранение целостности информации.
Не журналируемые — не предусматривают хранение логов. Особенности: работают быстрее, но не гарантируют сохранность данных.
Чтобы узнать тип ФС, существует команда file -s.
Журналируемая ФС — первая альтернатива для ФС группы Ext. Ее разработали в IBM специально для операционной системы AIX UNIX. Главные плюсы этой системы: стабильность и минимальные требования для работы. Разработчики JFS ставили перед собой цель создать ФС, которая бы эффективно работала на многопроцессорных компьютерах. Кроме того, эта система также относится к журналируемым ФС. Но есть и очевидные недостатки. Если случится непредвиденный сбой в работе системы, ФС может использовать версии файлов, которые уже устарели. Причина заключается в том, что журнал сохраняет только метаданные.
ReiserFS
Эта ФС разработана под руководством Ганса Райзера и названа в честь него. Подходит исключительно под Linux, чаще всего ее используют в качестве возможной замены Ext3. Главные особенности: увеличенная производительность и более широкие возможности. Изменяющийся размер блока дает пользователю возможность объединять небольшие файлы в один блок, таким образом удается избежать фрагментации и повысить качество работы ФС в целом. Размер разделов можно менять прямо в процессе работы, однако эта ФС может показать нестабильные результаты и потерять данные, например, при отключении энергии.
Еще одна журналируемая ФС. Однако, в отличие от аналогов, в логи записывает исключительно те изменения, которые претерпевают метаданные. Разработана для ОС в Silicon Graphics. Важные особенности: быстро работает с файлами сравнительно большого размера, умеет выделять место в отложенном режиме, а также менять размеры разделов в процессе работы. Часто встречается в дистрибутивах на основе Red Hat. Минусы: нельзя уменьшить размер разделов, сложно восстанавливать данные и можно потерять информацию при отключении питания.
Btrfs
Современная ФС, главной особенностью которой является высокая отказоустойчивость. Из дополнительных «бонусов»: удобна для сисадминов и поддерживает сравнительно простой процесс восстановления данных. Поддерживает подтома, разрешает менять размеры разделов в динамическом режиме и позволяет делать снапшоты. Отличается высокой производительность. Применяется как ФС, установленная по умолчанию, в OpenSUSE и SUSE Linux. Главный минус — нестабильность (нарушена обратная совместимость, сложная для поддержки и так далее).
Flash-Friendly File System входит в состав ядра ОС Linux и предназначена для использования с хранилищем на основе флеш-памяти. Разработчик — корпорация Samsung. F2FS разбивает носитель на части, которые снова делятся, и так далее. Эти миниатюрные зоны используются вместо повторного использования одних и тех же размеченных участков.
OpenZFS
OpenZFS — ветвь ZFS, о которой мы пишем ниже). Разработчик — компания Sun для ОС Solaris. В 2016 году Ubuntu включила ее поддержку по умолчанию. Главные плюсы: защита от повреждения данных, поддержка больших файлов и автоматическое восстановление.
Традиционные для Windows ФС NTFS, FAT, HFS применяются в Linux, но пользователь не сможет установить в такие разделы корень, поскольку структура этих ФС для этого не приспособлена.
Специальные файловые системы
Для решения задач, связанных с предоставлением доступа пользователю или программам к настройкам ядру ОС, используются так называемые специальные файловые системы. Ядро использует несколько типов специальных ФС:
- tmpfs — записывает файлы в ОП. Для этого создается блочное устройство определенного объема, после чего оно подключается к папке.
- procfs — хранит данные о системных процессах и ядре.
- sysfs — изменяет настройки ядра ОС.
Виртуальные файловые системы: EncFS, Aufs, NFS и ZFS
Если пользователю необходимо решить задачи, которые не требуют непременного наличия ФС в ядре, применяется модуль FUSE (filesystem in userspace). Он создает ФС в пространстве пользователя. Виртуальные ФС, как правило, поддерживают шифрование и сетевое администрирование. Сегодня на рынке существует целый спектр виртуальных ФС для ряда задач:
- EncFS — шифрует файлы, а затем выполняет сохранение зашифрованных файлов в необходимую пользователю директорию.
- Aufs (AnotherUnionFS) — объединяет несколько ФС (то же самое может делать с папками) в одну.
- NFS (Network Filesystem) — выполняет монтирование ФС удаленно.
- ZFS (Zettabyte File System) — ФС, созданная для ОС Solaris. Главные плюсы: отсутствие фрагментации, управление снапшотами и пулами хранения, изменяющийся размер блоков. Используется посредством FUSE.
Источник