Файловая система Linux

Понятие «файловая система» для краткости будем обозначать ФС. обычно прочно ассоциируется с неким структурированным и упорядоченным набором директорий где хранятся данных. Среди более продвинутых определений можно встретить трактовки, в которых ФС представляется не просто набором каталогов, но и способами или системными протоколами обработки, хранения и представления информации. На самом деле под «файловой системой» подразумевается гораздо более широкое и неоднозначное, в зависимости от контекста, понятие.
Например, далеко не все знают, что элементами ФС могут являться различные устройства, протоколы взаимодействия, структуры данных системного ядра и даже процессы. Но стоит отметить, что вышесказанное справедливо для Unix-подобных ОС, в число которых входит Linux. Образно говоря, ФС в Linux — это некий глобальный абстрактный интерфейс, на котором построено взаимодействие системного ядра и аппартно-программной среды всей вычислительной системы, а основным «посредником» или даже «проводящей средой» этого взаимодействия является строго организованная структура каталогов и файлов.

Экскурс в историю

С файловой системы когда-то начинала свое развитие Unix. Linux унаследовала её архитектуру, правда, с некоторыми особенностями, но сохранился принцип использования ФС как неотъемлемого абстрактного интерфейса. Поэтому говорить о том, что было, когда Linux ещё не было, подразумевая в качестве ответа «конечно Unix!» не совсем правильно. Когда Linux ещё не было, существовала ФС.
В то время программисты, трудившиеся над созданием Unix, стремились для облегчения своей работы реализовать унифицированный базис, благодаря которому не нужно каждый раз изобретать велосипед при описании новых типов и объектов. Они посчитали разумным представлять такие объекты в виде элементов в составе ФС. Это позволило задействовать единый программный интерфейс и иметь простой и удобный доступ к ресурсам из интерпретатора команд. Таким образом, целые устройства и сложные протоколы легко поддаются управлению и контролю только благодаря тому, что их можно представить и «отобразить» на ядро (т. е. предоставить ресурсы драйверов), в виде обычных файлов, файлы являются элементами ФС.

Основные компоненты файловой системы

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

  1.  API – набор программ, организованных в виде библиотеки (или нескольких систематизированных библиотек), обеспечивающих системные вызовы для управления объектами системы и доступный для использования программистам.
  2. Пространство имён — спецификация организации единой системы наименований и иерархии объектов.
  3. Безопасность — схема организации защиты объектов системы и их общего доступа (права доступа).
  4. Реализация — набор прикладных программ, обеспечивающих связку логических моделей с дисковой подсистемой.

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

Монтирование и демонтирование файловой системы

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

В данном контексте такие части принято называть также «файловыми системами», содержащими корневой каталог и список файлов и подкаталогов. Отсюда видно, насколько обширно понятие ФС — т. е. это может быть ещё дерево каталогов с подкаталогами.
Присоединение ФС к дереву осуществляется командой mount. Например команда:

$ sudo mount /dev/sda1 /home

примонтирует на диск /dev/sda1 каталог пользователей home. После этого можно просматривать её содержимое командой:

ls /home

ФС можно монтировать автоматически, в том числе и при старте системы. Это возможно благодаря инструкциям по монтированию хранящимся в файле /etc/fstab.
Демонтируются системы с помощью команды umount. Нужно учитывать, если примонтированная система занята каким либо процессом, то отмонтировать ее не получится.
Чтобы узнать, чем занята ФС, нужно воспользоваться командой fuser, например:

$ fuser -сv /usr
В результате будет выведена таблица следующего вида:
USER PID ACCESS COMMAND
/usr root 444 ....m atd
root 499 ....m sshd
root 520 ....m lpd

Буквенные значения в столбце Access поясняет нижеследующая таблица:
Коды Значение
f,o — Файл занят процессом для чтения или записи
с — В системе находится текущий каталог
e,t — Запущен исполняемая программа
r — Корневой каталог
m,s — является отображаемым или разделяемой (совместно используемой) библиотекой.

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

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

 

Каталог Описание
/ Корень, точка монтирования всей ФС
/bin/ Исполняемые файлы ОС
/boot/ Файлы которые ОС использует для загрузки
/dev/ каталог содержащий файлы  устройств, диски, cdrom и т.д
/etc/ Здесь содержатся различные настройки и конфигурации.
/home/ Директория пользователей, где хранятся файлы и настройки пользователей
/lib/ Здесь хранятся различные библиотек используемых для работы исполняемых файлов
/media/ /mnt/ Обычно используется для монтирования внешних носителей, cdrom, flash, и т.д
/opt/ Директория для хранения дополнительных программ
/proc/ Директория для хранения запущенных процессов
/root/ Домашний каталог пользователя root
/sbin/ исполняемые программы используемых для настройки ОС, например firewall.
/tmp/ Директория для хранения временных файлов
/usr/ Директория для хранения утилит пользователей
/var/ Изменяемые файлы, такие как регистрации (log-файлы), временные почтовые файлы

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

ИТ Проффи

Сообщить об опечатке

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