Skip to content

11 Виртуальные файловые системы proc, sys, dev Ус

11 Виртуальные файловые системы /proc, /sys, /dev. Устройства и работа с ext*

Виртуальные файловые системы

В Linux, виртуальные файловые системы /proc/sys, и /dev играют важную роль в взаимодействии с ядром и аппаратным обеспечением. Они представляют собой интерфейсы для доступа к информации о системе и управления ею.

Untitled

На приведенной ниже диаграмме показано, как userspace обращается к различным типам файловых систем, обычно монтируемых в системах Linux. Не показаны такие конструкции как pipesdmesg и POSIX clocks, которые также реализуют структуру file_operations, доступ к которым проходит через слой VFS. VFS — это «слой оболочки» между системными вызовами и реализациями определенных file_operations, таких как ext4 и procfs. Функции file_operations могут взаимодействовать либо с драйверами устройств, либо с устройствами доступа к памяти. tmpfs, devtmpfs и cgroups не используют file_operations, а напрямую обращаются к памяти. Существование VFS обеспечивает возможность переиспользовать код, так как основные методы, связанные с файловыми системами, не должны быть повторно реализованы каждым типом файловой системы. Переиспользование кода – широкоприменяемая практика программных инженеров! Однако, если повторно используемый код содержит серьезные ошибки, от них страдают все реализации, которые наследуют общие методы.

/proc

Это виртуальная файловая система, которая предоставляет доступ к информации о процессах и общей системной информации. Она не занимает места на диске, так как является интерфейсом к структурам данных в памяти ядра. В /proc можно найти каталоги, именованные числами, которые соответствуют идентификаторам процессов (PID). Внутри этих каталогов содержится информация о каждом процессе. Также здесь есть файлы, такие как /proc/cpuinfo/proc/meminfo и /proc/net, которые предоставляют информацию о CPU, памяти и сетевых интерфейсах соответственно.

/sys

Виртуальная файловая система sysfs используется для предоставления информации о устройствах и драйверах, а также для их настройки .Она представляет собой иерархическое представление устройств, которые ядро распознает и управляет, и позволяет пользователю читать и иногда записывать атрибуты устройств для изменения их поведения. Например, /sys/class/net содержит информацию о сетевых интерфейсах.

/dev

Файловая система /dev содержит специальные файлы устройств, которые представляют аппаратные устройства. Существуют два основных типа файлов устройств: символьные (char devices) и блочные (block devices). Символьные устройства передают данные посимвольно, в то время как блочные устройства передают данные блоками .Примеры устройств в /dev включают /dev/sda (первый жесткий диск), /dev/tty (терминалы), /dev/random и /dev/null.

Untitled

Файловые системы ext

Файловые системы серии ext (от ext2 до ext4) являются одними из основных файловых систем, используемых в операционных системах на базе Linux. Они разработаны для хранения, управления и доступа к данным на жестком диске. Давайте рассмотрим каждую из них более подробно, чтобы понять их устройство и особенности работы.

*Ext2 (Second Extended Filesystem)*

Ext2 была представлена в 1993 году как замена для оригинальной файловой системы ext. Она внесла значительные улучшения в производительность и надежность.

Основные характеристики:

  • Нежурналированная файловая система: Ext2 не использует журналирование, что делает ее быстрее в некоторых сценариях, но менее надежной при сбоях питания или системных сбоях.
  • Структура: Файловая система использует блоки для хранения данных и inode для хранения метаданных о файлах. Каждый файл или каталог связан с inode, который хранит информацию о размере файла, правах доступа, времени модификации и местоположении данных на диске.
  • Использование: Ext2 часто используется на флеш-накопителях и в других ситуациях, где журналирование может привести к избыточному износу носителя.

*Ext3 (Third Extended Filesystem)*

Ext3 была представлена в конце 1990-х годов и стала первой файловой системой ext, поддерживающей журналирование.

Основные характеристики:

  • Журналирование: Ext3 добавляет поддержку журналирования, что значительно улучшает надежность и уменьшает время восстановления после сбоев. Журналирование записывает изменения в специальный журнал на диске перед тем, как они будут применены к файловой системе, что позволяет быстро восстановиться после сбоев.
  • Обратная совместимость: Ext3 обратно совместима с Ext2, что позволяет монтировать файловые системы Ext2 как Ext3 без потери данных.
  • Режимы журналирования: Ext3 поддерживает три режима журналирования: журналирование всех метаданных и данных (journal), только метаданных (ordered) и журналирование метаданных с игнорированием данных (writeback).

*Ext4 (Fourth Extended Filesystem)*

Ext4 была представлена в 2008 году как развитие Ext3, предлагая улучшенную производительность, масштабируемость и надежность.

Основные характеристики:

  • Улучшенная масштабируемость и производительность: Ext4 поддерживает большие объемы (до 1 эксабайта) и размеры файлов (до 16 терабайт), а также использует улучшенные алгоритмы распределения блоков.
  • Журналирование с отложенной записью: Ext4 использует механизмы отложенной записи, что улучшает производительность и уменьшает износ SSD.Фрагментация: Ext4 вводит механизмы для борьбы с фрагментацией файлов, улучшая производительность при работе с большими файлами.
  • Поддержка журналирования: Как и Ext3, Ext4 поддерживает различные режимы журналирования, но с улучшенной эффективностью и надежностью.

Работа с файловыми системами Ext* в Linux:

  • Создание: mkfs.ext4 /dev/sdX для форматирования раздела в Ext4.
  • Проверка: fsck.ext4 /dev/sdX проверяет и исправляет ошибки файловой системы.
  • Монтирование: mount /dev/sdX /mnt позволяет монтировать файловую систему для доступа к ее содержимому.
  • Работа с файлами и каталогами осуществляется через стандартные команды Linux, такие как lscpmvrm.

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