В linux все файлы относящиеся к той или иной программе помещаются в один файл

В программировании для упрощения разработки программ принято использовать различные шаблоны, паттерны и абстракции. Разработчики Linux не делали исключений и одна из таких абстракций, это основная концепция Linux — всё есть файл. Эта концепция была перенята от Unix. Она была выбрана для того чтобы предоставить простой доступ ко всем возможностям операционной системы не разрабатывая специальных интерфейсов.

К почти любой возможности можно обратиться как к файлу, попытаться открыть его с помощью текстового редактора, записать туда данные или сделать что-либо подобное. В этой статье мы подробно рассмотрим что на деле означает эта концепция и немного поэкспериментируем с ней.

Всё есть файл

Давайте сначала разберемся как вообще это может работать. В Linux есть такое понятие как корневая файловая система. В качестве неё монтируется раздел жесткого диска, на котором установлен Linux. В различные подпапки подключаются другие реальные разделы жесткого диска, например, домашний раздел подключается в папку /home, а загрузочный в папку /boot. Но существуют не только реальные файловые системы, но и виртуальные файловые системы, созданные ядром, например в папку /proc монтируется файловая система procfs, которая позволяет получить доступ к параметрам ядра, а в папку /dev монтируется devfs содержащая устройства, подключённые к компьютеру и тоже в виде файлов.

Linux — копирование перемещение переименование файла(ов) и каталога(ов)

Конечно, в этих файловых системах размещены не совсем обычные файлы. В статье типы файлов Linux мы рассматривали все существующие типы файлов. Если вы посмотрите на обычный файл, например, /etc/passwd с помощью утилиты file, то увидите информацию об этом файле:

Это текстовый файл в реальной файловой системе и вы можете открыть его с помощью текстового редактора, посмотреть содержимое или записать туда данные.

1. Устройства Linux — это файлы

Давайте начнём с устройств. В каталог /dev монтируется файловая система devfs и тут находятся все подключённые к Linux устройства, а также некоторые интерфейсы для доступа к возможностям ядра:

Если попытаться посмотреть информацию, например, о файле /dev/sda1, то утилита сообщит нам что это блочный файл:

Это значит, что такой файл можно открыть с помощью какого-либо редактора разделов диска и настроить этот диск. Конечно, его можно попытаться посмотреть содержимое файла с помощью cat, но из этого ничего хорошего не выйдет потому что там хранятся двоичные данные:

Работает это и в обратную сторону. Вы можете открыть любой обычный файл в редакторе разделов диска и создать в нём файловую систему вместо его содержимого:

Linux команда mkdir и команды создания файлов.

Например, здесь я открыл изображение. Важно отметить что всё содержимое файла будет стёрто.

Ещё в каталоге /dev существуют символьные файлы, например, /dev/random, /dev/null и /dev/zero. Открывая первый вы всегда будете получать случайную последовательность данных, во второй можно записывать любые данные и они никуда не будут сохранены, а третий всегда пустой, если копировать из него данные на какой-нибудь раздел, там всегда будут нули.

2. Информация о ядре — тоже файлы

Информация об операционной системе, ядре и выполняемых в системе процессах находится в директории /proc. Все эти файлы можно посмотреть с помощью утилиты ls:

Например, информация об использовании оперативной памяти размещена в файле /proc/meminfo. Вы можете попытаться посмотреть информацию об этом файле:

Это файл, но утилита сообщает, что он пустой. Однако, если вы попытаетесь прочитать из него данные, то получите вполне интересную информацию о состоянии памяти. Например, откроем его в текстовом редакторе:

Но записать туда ничего не получится, эта файловая система доступна только для чтения. Таких файлов здесь много. Самые интересные из них описаны здесь.

3. И настройки ядра — файлы

Настройки ядра находятся в директории /sys и /proc/sys. Эти файлы можно выводить списком, читать их содержимое и даже записывать новые значения чтобы изменить нужные параметры. Один из самых часто изменяемых файлов — это /proc/sys/net/ipv4/ip_forward. Давайте посмотрим информацию о нём:

Он тоже вроде как пустой. Но в нём содержаться данные:

И их можно изменить:

echo «0» | sudo tee /proc/sys/net/ipv4/ip_forward

Фактически, можно было просто сделать так:

echo «0» > /proc/sys/net/ipv4/ip_forward

Или даже попытаться редактировать файл в текстовом редакторе. Но такая команда не будет работать, если её не выполнить в оболочке суперпользователя. А текстовый редактор обычно пытается сначала создать резервную копию файла, который он будет менять, а ничего создать в этой папке у него не выйдет.

4. Сокеты — странные, но файлы

Для сетевого взаимодействия и взаимодействия между программами используются сокеты. И это тоже файлы, хотя они чуть отличаются от привычных нам файлов. Сокеты используются для того чтобы программно писать и читать их них данные, таким образом программы могут взаимодействовать между собой. Давайте создадим свой сокет. Для этого выполните:

nc -lU socket.sock

Утилита file сообщит, что это сокет:

Но открыть сокет в текстовом редакторе или с помощью утилиты cat не получится, придется подключится к нему с помощью той же утилиты nc:

nc -U socket.sock

После этого любые данные, которые вы будете набирать в одной консоли, будут отображаться в другой. Но это всё ещё файл, потому что вы можете вывести список сокетов из определённой папки с помощью ls.

Выводы

Вот так и работает концепция всё есть файл в Linux. Все возможные функции операционной системы представлены в виде файлов и это удобно, потому что для доступа к любой из функций не надо писать отдельный инструмент, а можно использовать уже существующие и проверенные программы. Такие утилиты для работы с файлами как cat, ls и echo справляются в большинстве случаев.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник: losst.pro

Файловая структура Linux: каталоги и файлы; управление файлами и файловыми системами

В ОС Linux все файлы организованы в каталоги, которые, в свою очередь, иерархически соединены друг с другом, образуя одну общую файловую структуру. При обращении к файлу необходимо указывать не только его имя, но и место, которое он занимает в этой файловой структуре. Можно создавать любое количество новых каталогов, добавляя их к файловой структуре. Команды для работы с файлами:

Читайте также:
Программа жкт тенториум отзывы

find; cp; mv; ln, — позволяет находить файлы, копировать их и перемещать из одного каталога в другой. В совокупности все эти элементы и образуют файловую структуру ОС Linux.

Файлы в ОС Linux.

Имя файла может содержать любые буквы, знаки подчеркивания и цифры. Можно включать в имена точки и запятые. При этом имя файла не должно начинаться ни с цифры, ни с точки (за исключением некоторых особых случаев). Символы: / ? * (косая черта, вопросительный знак, звездочка), – зарезервированы в системе в качестве специальных и в именах файлов использоваться не должны.

Максимальная длина имени файла 256 символов. Имя файла может включать и расширение. Для отделения расширения от собственно имени файла служит точка.

Типы файлов.

Все файлы в ОС Linux имеют один и тот же формат байтовый поток. Это позволяет системе Linux распространять файловую концепцию на все компоненты данных. Каталоги и устройства классифицируются как файлы. Рассматривая такую организацию как файлы, Linux позволяет упростить организацию данных и обмен ими. Данные, записанные в файле, можно посылать непосредственно в устройство.

Каталоги, сами по себе являются файлами, но имеют собственную внутреннюю организацию. Файл каталога содержит информацию о каталоге, организованную в специальные структуры. Поскольку все эти различные компоненты рассматриваются как файлы, можно сказать, что они представляют собой различные типы файлов. Байт ориентированное устройство – один тип файла, каталог другой тип файла. Независимо от конкретной реализации ОС Linux существуют четыре стандартных типа файлов: обычные; файлы каталогов; байт-ориентированные файлы устройств; блок-ориентированные файлы устройств.

Все обычные файлы имеют один формат, байтовый поток, но могут использоваться по-разному. Наиболее существенное различие имеет место между двоичными и текстовыми файлами. Пример двоичного файла – программный код после его компиляции. Текстовые файлы можно классифицировать по направлению использования.

Файловая структура.

Файлы в ОС Linux организованы в иерархическую систему каталогов. Из-за сходства такую структуру называют древовидной структурой. Если быть более точным, то эта структура скорее похожа на куст, перевернутый вверх ногами. Ствола здесь нет. Вниз от корня отходят ветви. Каждая ветвь отходит только от одной, а от нее самой может отходить множество ветвей до самого нижнего уровня.

В этом смысле файловую структуру скорее, можно назвать «родители-потомки». Аналогичным образом любой каталог является подкаталогом другого каталога, каждый подкаталог может содержать множество подкаталогов, но сам должен быть потомком только одного родительского каталога.

Иерархическая структура изображена на рис. 2.

Вверху находится корневой каталог (обозначается символом «косая черта») от которого ответвляется другие каталоги.

Файловая структура Linux разветвляется на несколько каталогов, начиная с корневого, / — root. В корневом каталоге имеется несколько системных каталогов, которые содержат файлы и программы, относящиеся к самой ОС Linux. Корневой каталог, кроме того, содержит каталог home, который может содержать начальные каталоги всех пользователей системы.

Зарегистрировавшись в системе, пользователь попадает в свой каталог. Имя, присвоенное этому каталогу системой, совпадает с регистрационным именем пользователя. Все файлы, создаваемые для нового пользователя, помещаются в начальный каталог. Получить доступ к каталогу можно либо по имени, либо сделав его каталогом по умолчанию.

Путевые имена.

Имя, которое присваивается каталогу или файлу при его создании, не является полными. Полным именем файла или каталога является его путевое имя. Иерархические связи, существующие между каталогами, образуют пути, и эти пути используются для указания каталога или файла и обращения к нему. На рис. 6 показан путь от корневого каталога / к конечному каталогу.

То есть, можно сказать, что каждый каталог в системе имеет свой собственный уникальный путь. Фактическое имя, которым система обозначает каталог, всегда начинается с корневого каталога и состоит из имен всех каталогов, ведущих и данному каталогу. Путевые имена даются и файлам. Фактическое имя, которым система обозначает этот файл, представляет собой комбинацию имени файла с именами каталогов, образующих путь от корневого каталога до каталога данного файла.

Путевые имена могут быть абсолютными и относительными. Абсолютное имя – это имя или каталог, начинающееся символом корневого каталога. Относительное путевое имя начинается символом рабочего каталога и представляет собой обозначение пути к файлу относительно рабочего каталога.

Системные каталоги.

Корневой каталог являющийся каталогом файловой структуры Linux, содержит ряд системных каталогов. Системные каталоги содержат файлы и программы, сужающие для управления системой и ее сопровождение. Основные системные каталоги следующие (рис.4).

/root – служит начальной структурной единицей файловой системы;

/bin — содержит стандартные системные утилиты;

/lib – содержит библиотеки языков программирования;

/dev — содержит драйверы устройств;

/home — содержит исходные каталоги пользователей;

/sbin — содержит стандартные инструменты администрирования;

/usr — содержит дополнительные системные программы и инструменты администрирования;

/var — содержит файлы протоколов (log files) и буферные файлы принтеров (print spools). Обычно он монтируется с ограничением размера на Web-серверах, поскольку в противном случае log-файлы легко «затопят» все свободное пространство в разделе;

/spool – содержит буферные файлы (например, генерируемые при печати и пересылке по сети);

/etc — содержит администраторские и конфигурационные файлы. Находившиеся ранее здесь командные утилиты должны быть перенесены в разделы /bin и /sbin.

Система команд в Linux

В ОС Linux команда – это любой выполняемый файл. Командой является любой файл, предназначенный для выполнения, а не для хранения данных или конфигурационных параметров.

Чтобы выполнить команду, ее нужно ввести в командной строке:

$ команда опции аргументы

Если файл команды не находится в текущем каталоге, то необходимо ввести команду с указанием полного пути:

$ /usr/bin/command

Каждому пользователю, вошедшему в систему, предоставляется путь по умолчанию. Узнать его можно с помощью команды:

Результат ее выполнения может выглядеть так:

$ /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/mj/bin

Файлы располагаются на физических устройствах и на каждом организуются в файловую систему. Для того чтобы получить доступ к файлам, находящимся на каком либо устройстве, необходимо присоединить его файловую систему к определенному каталогу. Эта операция называется монтирование файловой системы.

Вывод информации о файлах.

Команда ls –l имя_файла позволяет получить подробную информацию о файле (рис.5).

Сначала указывается права доступа, затем количество ссылок, имя владельца, имя группы, к которой он относится, размер файла в байтах, дата и время последнего изменения и имя файла.

Источник: infopedia.su

Структура и типы файловых систем в Linux

Ядро операционной системы Linux содержит целый набор предустановленных файловых систем, каждая из которых помогает пользователю успешно решать стоящие перед ним задачи. В зависимости от того, что необходимо, — быстродействие, высокая гарантия восстановления данных или производительность, можно выбрать стандартную файловую систему для конкретного раздела, специальную или виртуальную. Разобрались, как устроены файловые системы 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, выглядит так:

. ├── bin -> usr/bin ├── boot │ ├── grub │ └── lost+found ├── dev │ ├── block │ └── . ├── etc │ ├── . │ ├── update-manager │ ├── update-motd.d │ └── xdg ├── home ├── lib -> usr/lib ├── lib32 -> usr/lib32 ├── lib64 -> usr/lib64 ├── libx32 -> usr/libx32 ├── lost+found ├── media ├── mnt ├── opt ├── proc │ ├── . │ └── tty ├── root ├── run │ └── . ├── sbin -> usr/sbin ├── srv ├── sys ├── tmp │ └── . ├── usr └── var

При монтировании происходит ассоциирование каталога с устройством, содержащим ФС (драйвер).

Соответствующая ссылка на устройство передается драйверу. Именно он и определяет ФС. Если процедура завершается успешно, ядро заносит информацию (каким драйвером обслуживаются и где расположены файлы и каталоги) в таблицу монтирования. Она находится в файле /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.

JFS

Журналируемая ФС — первая альтернатива для ФС группы Ext. Ее разработали в IBM специально для операционной системы AIX UNIX. Главные плюсы этой системы: стабильность и минимальные требования для работы. Разработчики JFS ставили перед собой цель создать ФС, которая бы эффективно работала на многопроцессорных компьютерах. Кроме того, эта система также относится к журналируемым ФС.

Но есть и очевидные недостатки. Если случится непредвиденный сбой в работе системы, ФС может использовать версии файлов, которые уже устарели. Причина заключается в том, что журнал сохраняет только метаданные.

ReiserFS

Эта ФС разработана под руководством Ганса Райзера и названа в честь него. Подходит исключительно под Linux, чаще всего ее используют в качестве возможной замены Ext3. Главные особенности: увеличенная производительность и более широкие возможности. Изменяющийся размер блока дает пользователю возможность объединять небольшие файлы в один блок, таким образом удается избежать фрагментации и повысить качество работы ФС в целом. Размер разделов можно менять прямо в процессе работы, однако эта ФС может показать нестабильные результаты и потерять данные, например, при отключении энергии.

XFS

Еще одна журналируемая ФС. Однако, в отличие от аналогов, в логи записывает исключительно те изменения, которые претерпевают метаданные. Разработана для ОС в Silicon Graphics. Важные особенности: быстро работает с файлами сравнительно большого размера, умеет выделять место в отложенном режиме, а также менять размеры разделов в процессе работы.

Часто встречается в дистрибутивах на основе Red Hat. Минусы: нельзя уменьшить размер разделов, сложно восстанавливать данные и можно потерять информацию при отключении питания.

Btrfs

Современная ФС, главной особенностью которой является высокая отказоустойчивость. Из дополнительных «бонусов»: удобна для сисадминов и поддерживает сравнительно простой процесс восстановления данных. Поддерживает подтома, разрешает менять размеры разделов в динамическом режиме и позволяет делать снапшоты. Отличается высокой производительность.

Применяется как ФС, установленная по умолчанию, в OpenSUSE и SUSE Linux. Главный минус — нестабильность (нарушена обратная совместимость, сложная для поддержки и так далее).

F2FS

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.

Источник: selectel.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru