2.3.3 Файловая система в РЕД ОС
Скачать документ Журналируемые и нежурналируемые файловые системы
Файлы
Устройства
Монтирование устройств
Каталоги файловой системы РЕД ОС
Основные команды для работы с файлами и файловой системой
Навигация
Операции с файлами
Операции с каталогами
Мягкие и жесткие ссылки
Примеры создания ссылок
Файл — это поименованная область памяти. Если память «долгосрочная» и информация в ней хранится на дисковых или подобных им носителях (например, USB-накопители), то поименованными областями являются имеющиеся на них файлы.
Упрощённо можно сказать, что совокупность файлов, структурированная в соответствии с унифицированными требованиями на физическом носителе, представляет собой файловую систему (ФС). Файловая система определяет порядок/способ хранения данных на носителях, допустимый размер имён файлов и каталогов, формат, количество и объём метаданных.
Метаданные — это дополнительная информация о файле, то, что в повседневном использовании называется «свойства файла».
Вы можете подробнее ознакомиться с поддерживаемыми файловыми системами в РЕД ОС, просмотрев наши обучающие видео:
на RuTube — Файловая система в РЕД ОС;
в Яндекс.Дзен — Файловая система в РЕД ОС;
в VK Видео — Файловая система в РЕД ОС.
На наших каналах вы также сможете найти много другой полезной информации.
Журналируемые и нежурналируемые файловые системы
Файловые системы можно классифицировать по различным признакам, далее будет рассмотрен вариант классификации на журналируемые и нежурналируемые файловые системы.
К журналируемым файловым системам относятся те, которые сохраняют список изменений, осуществляемых с файловой системой, перед фактическим их применением. Такие записи хранятся в отдельной части файловой системы, называемой журналом. Как только изменения файловой системы внесены в журнал, она применяет изменения к файлам или метаданным, а затем удаляет эти записи из журнала.
К нежурналируемым файловым системам относятся ext2 и FAT (FAT12, FAT16, FAT32). Ядро ОС их также поддерживает.
При перезагрузке компьютера программа монтирования может гарантировать целостность журналируемой файловой системы простой проверкой журнала на наличие ожидаемых, но не произведённых изменений и последующей записью их в файловую систему. Т.е. при наличии журнала в большинстве случаев системе не нужно проводить проверку целостности файловой системы. Соответственно, шансы потери данных в связи с проблемами в файловой системе значительно снижаются.
Для рабочих станций в РЕД ОС используется журналируемая файловая система ext4 — логическое продолжение ext3, которая является журналируемым вариантом системы ext2 — «материнской» файловой системы Linux.
В зависимости от указанных администратором настроек файловая система ext4 может работать в любом из трёх известных для журналируемых систем режиме:
в режиме обратной связи — журналируются только метаданные;
упорядочивание — журналируются только метаданные синхронно относительно данных;
в режиме данных — журналируются как метаданные, так и данные.
Для серверного варианта РЕД ОС рекомендуется использовать файловую систему XFS, которая также является журналируемой.
Обе файловые системы — ext4 и XFS — являются не только журналируемыми, но и:
поддерживают большие объёмы дисковых накопителей (до 260 байт);
поддерживают файлы большого размера (до 244 байт);
используют механизм пространственной записи файлов, уменьшающий фрагментацию и повышающий производительность. Суть механизма заключается в том, что новая информация добавляется в конец области диска, выделенной заранее рядом с областью, занятой содержимым файла.
Важными отличиями представленных файловых систем является то, что XFS:
может производить дефргаментацию «на лету»;
имеет API ввода-вывода реального времени (для приложений жёсткого или мягкого реального времени, например, для работы с потоковым видео);
имеет малые «накладные расходы» — размер служебных структур данных.
Ext4 в отличие от XFS менее агрессивно использует оперативную память при работе с файлами на носителе, поэтому её оптимально применять на вычислительных системах с небольшим объёмом ОЗУ.
При выборе файловой системы при создании/форматировании раздела рекомендуется определить, для чего будет использоваться этот раздел. Также следует обратить внимание на параметры процессора и оперативной памяти компьютера, и на основании этого принимать решение о необходимости выбора той или иной ФС.
РЕД ОС поддерживает и другие файловые системы, такие как FAT, NTFS, а также ISO-9660 для оптических накопителей, сетевые файловые системы.
Файлы
У всех файловых систем в РЕД ОС есть одно принципиальное отличие от файловых систем Windows — имена файлов регистрозависимы, т.е «заявление.odt», «Заявление.odt» и «ЗАЯВЛЕНИЕ.odt» — это три разных файла. Необходимо обращать на это внимание, если вы только начинаете миграцию на РЕД ОС с других операционных систем. Особенно следует быть внимательными, когда такие файлы копируются на USB-накопитель — FAT и NTFS не разборчивы в символах, поэтому при выполнении данной операции возникнет ошибка.
Другим принципиальным отличием файловых систем Linux от файловых систем Windows является разделитель в именах каталогов — в РЕД ОС им служит «слэш» (или «прямой слэш») — «/», а в Windows применяется «обратный слэш» — «\». Например:
/var/log/boot.log — путь к файлу в РЕД ОС;
C:\Windows\System32\example.exe — путь к файлу в Windows.
В РЕД ОС (как и вообще в Linux) нет как такового понятия «расширение файла», поскольку точки интерпретируются как часть названия, а не как разделитель. Но прикладные программы и файловые менеджеры анализируют имя файла после последней точки и могут выполнять определённые действия над файлами с теми или иными «окончаниями» (например, двойной клик по файлу с окончанием .odt в файловом менеджере приведёт к запуску LibreOffice и открытию файла в нём).
Существует еще одно отличие в организации файловых систем — чтобы в РЕД ОС сделать файл скрытым — надо первым символом его имени указать символ точки «.». «Скрытость» файла в РЕД ОС — не метаданные, а непосредственное имя файла, т. е. для того чтобы сделать файл скрытым, его нужно переименовать, поставив первым символом имени «.»
Устройства
Следует особенно отметить, что в Unix-подобных операционных системах существует парадигма, относящаяся к идеологии UNIX, называемой UNIX-Way. Формулируется она как «Всё — есть файл». То есть всё, до чего «дотягивается» операционная система, можно представить в виде файла, будь то клавиатура, монитор, процессор, веб-камера и т. д.
То, что обычно считается файлом (текст или бинарный файл) называется простым (или регулярным) файлом, а файлы, связанные с каким-либо оборудованием (включая виртуальное) — файлом устройства. Например:
/dev/sda — файл первого «жесткого» диска;
/dev/sda1 — файл устройства раздела на первом «жестком» диске;
/dev/dvd — файл привода DVD;
/dev/lp0 — файл первого (по подключению) печатающего устройства (принтера).
В свою очередь, файлы устройств бывают двух типов — блочные и символьные. Обмен информации с блочными устройствами, например, с «жёстким» диском, осуществляется блоками информации, а с символьными — отдельными символами. Примеры символьных устройств: последовательный порт, клавиатура. С символьными файлами можно работать так же, как и с регулярными файлами, т.е. с помощью тех же утилит.
Также не стоит забывать и про каталоги — это специализированные файлы, которые содержат в себе список других файлов.
Файловая система РЕД ОС (как и у любого Linux), в отличие от операционных систем семейства Windows, не разделена по томам (дискам, устройствам), а имеет единую древовидную структуру. Корневой каталог — это уровень файловой системы, выше которого по дереву каталогов подняться невозможно. В РЕД ОС корневой каталог обозначается как «/».
Монтирование устройств
Для подключения любого устройства к файловой системе — монтирования — используется так называемая точка монтирования — каталог, все вложенные уровни которого являются файловой системой на устройстве-носителе. Например, если подключить флэш-носитель к USB-порту, РЕД ОС автоматически смонтирует устройство в каталог /var/run/<имя_пользователя>/media, и все папки и файлы, находящиеся после монтирования в данном каталоге, на самом деле будут располагаться на флэш-накопителе. Для монтирования файловых ресурсов и внешних устройств используется утилита mount. Общий синтаксис команды имеет следующий вид:
mount -t <тип_ФС> <имя_устройства> <точка монтирования>
Каталоги файловой системы РЕД ОС
У структуры файловой системы РЕД ОС есть ещё одна особенность: пользователям выделяется в ней домашний каталог — специальная папка, необходимая для хранения пользовательских данных. При входе пользователя в систему, он сразу оказывается в своём домашнем каталоге. Обычно права доступа к домашней папке устанавливаются таким образом, что доступ к ней имеют только пользователь и администратор (root). В других папках системы пользователю, как правило, разрешен только просмотр содержимого.
Файловая система РЕД ОС содержит следующие каталоги:
/ — корневой каталог;
/bin — каталог основных исполняемых файлов, необходимых для функционирования системы;
/boot — каталог загрузчика, содержит образы ядра и Initrd, может содержать конфигурационные и вспомогательные файлы загрузчика;
/dev — содержит файлы устройств;
/etc — конфигурационные файлы системы и основные файлы настроек системных приложений;
/home — папка для домашних каталогов пользователей;
/lib — содержит основные библиотеки и модули, необходимые для работы системы;
/lib64 — то же, что и /lib, для 64-битных систем;
/media — обычно используется для вручную смонтированных «внешних» носителей;
/mnt — обычно содержит точки монтирования сетевых и файловых ресурсов (смонтированных ISO-файлов);
/opt — альтернатива /usr для проприетарного ПО или ПО, не входящего в основной дистрибутив;
/ргос — содержит виртуальную файловую систему proc, создаваемую «на лету», а также общую информацию о системе и о каждом процессе;
/root — каталог администратора (суперпользователя) root;
/run – каталог для хранения данных, которые были запущены приложениями, требующимися в процессе работы (к ним относятся службы, запускаемые самой системой, и программы, которые запускаются пользователем вручную). Каталог также представляет собой смонтированную виртуальную ФС, чтобы при выключении/перезагрузке ПК вся текущая информация в данном каталоге (информация является временной) удалялась и не занимала пространство на диске;
/sbin — каталог системных утилит, выполнять которые имеет право пользователь root;
/srv – содержит файлы серверов и сервисов. Например, могут содержаться файлы веб-сервера apache.
/sys — содержит виртуальную файловую систему, а также подробную информацию о процессах;
/tmp — каталог для временных файлов;
/usr — программы, библиотеки, документация пользовательских приложений, также может содержать исходные коды программ и ядра;
/var— постоянно изменяющиеся данные системы, например, очереди системы печати, протоколы и т. д.
Основные команды для работы с файлами и файловой системой
Навигация
Для навигации по содержимому файловой системы используются следующие команды:
ls
— вывод содержимого текущей или явно указанной папки;pwd
— вывод полного имени текущего каталога;cd
— изменение текущего каталога на указанный. Если аргумент не указан или указан как «~», то смена происходит на домашний каталог текущего пользователя. Аргумент «..» меняет каталог на вышестоящий в иерархии дерева каталогов;pushd
,popd
— команды работают в связке. Команда pushd изменяет каталог на указанный, история запоминается в стек и потом может быть использована для быстрой обратной навигации с помощью команды popd.
Операции с файлами
Для операций с файлами используются следующие команды:
touch <файл>
— создание пустого файла.cat <файл>
— вывод текстового файла на экран.tac <файла>
— вывод содержимого текстового файла в обратном порядке, т. е. сначала выводится последняя строка файла, потом предпоследняя и т. д.ср <файл1> <файл2>
— копирование файла <файл1> в <файл2>. Если <файл2> существует, программа спросит разрешение на перезапись.mv <файл1> <файл2>
— перемещение файла <файл1> в <файл2 >. Эту же команду можно использовать для переименования файла.rm <файл>
— удаление файла (с ключом -i выводит запрос на разрешение удаления, ключ -f подавляет все запросы).locate <файл>
— быстрый поиск файла.which <программа>
— вывод каталога, в котором находится программа, если она установлена. Поиск производится в каталогах, указанных в переменной окружения path (путь поиска программ).less <файл>
— удобный просмотр файла с возможностью постраничной прокрутки с использованием клавиш навигации.
Операции с каталогами
Для операций с каталогами используются следующие команды:
mkdir <каталог>
— создание каталога;rmdir <каталог>
— удаление пустого каталога;rm -r <каталог>
— рекурсивное удаление каталога;cp -r <каталог1> <каталог2>
— копирование <каталога1> в каталог с именем <каталог2>, причём <каталог1> должен быть пустым. Если каталог требуется скопировать со всем содержимым, то необходимо указать ключ -r;mv <каталог1> <каталог2>
— переименование каталогов. Для переноса каталога с именем <каталог1> в каталог с именем <каталог2> необходимо указать ключ -r.
Мягкие и жесткие ссылки
В РЕД ОС имеются также дополнительные файлы и называются они ссылками. Ссылки бывают двух типов - «мягкие» ссылки (softlink) и «жёсткие» ссылки (hardlink). «Мягкие» ссылки являются указателями на имеющиеся файлы и каталоги. «Жёсткие» ссылки являются ещё одним именем файла.
Создаются ссылки с помощью утилиты ln. Для создания «мягких» ссылок необходимо передавать команде ключ -s.
Общий синтаксис команды имеет следующий вид:
ln [ -s ] <имя_файла_или_каталога> <имя_ссылки>
Примеры создания ссылок
Мягкие ссылки
cd ~ mkdir FirstDir ls FirstDir test-ca.conf Видео Документы Загрузки Изображения Музыка Общедоступные 'Рабочий стол' Шаблоны ln -s FirstDir SecondDir ls FirstDir SecondDir test-ca.conf Видео Документы Загрузки Изображения Музыка Общедоступные 'Рабочий стол' Шаблоны cd SecondDir touch file1.txt ls ~/FirstDir file1.txt
При создании пустого файла в каталоге SecondDir на самом деле действие производится в каталоге FirstDir, что подтверждает последний листинг.
Если удалить исходный файл или каталог, на который ссылается «мягкая» ссылка, то она становится недействительной, т.е. как файл она продолжит существовать, но уже ни на что указывать не будет, и операции с ней (просмотр и т.д.) будут завершаться с ошибкой.
cd ~ rm -rf ~/FirstDir ls SecondDir test-ca.conf Видео Документы Загрузки Изображения Музыка Общедоступные 'Рабочий стол' Шаблоны
Жёсткие ссылки
В примере будет создан текстовый файл путём перенаправления в него вывода строки и жёсткая ссылка на него:
cd ~ echo "One small test…" > File1.txt ls File1.txt test-ca.conf Видео Документы Загрузки Изображения Музыка Общедоступные 'Рабочий стол' Шаблоныln File1.txt File2.txt
Затем будут внесены изменения в файл File2.txt и просмотрено содержимое файла File1.txt:
echo "Second string…" >> File2.txt cat File1.txt One small test… Second string… cat File2.txt One small test… Second string…
Файлы содержат одну и ту же информацию, поскольку указывают на одну и ту же область памяти на диске. После удаления первого файла область информации на диске остаётся, поскольку остаётся «жёсткая» ссылка, которая становится единственным именем данного файла:
rm -f File1.txt ls File2.txt test-ca.conf Видео Документы Загрузки Изображения Музыка Общедоступные 'Рабочий стол' Шаблоны cat File2.txt One small test… Second string…
Дата последнего изменения: 06.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.