42 Виртуальные файловые системы proc, sys, dev Ва
42 Виртуальные файловые системы /proc, /sys, /dev. Варианты установки ПО¶
42. Виртуальные файловые системы /proc, /sys, /dev. Варианты установки ПО¶
Эти файловые системы являются частью виртуальной файловой системы (VFS) Linux.
Виртуальная файловая система (Virtual File System, VFS) — это слой абстракции в ядре Linux, который предоставляет общий интерфейс для работы с различными типами файловых систем. VFS позволяет операционной системе видеть и взаимодействовать со всеми файлами и каталогами, независимо от того, где они физически расположены или в каком формате они хранятся.
VFS служит посредником между прикладными программами и ядром операционной системы. Он принимает стандартные системные вызовы (такие как open, read, write, close), и перенаправляет их на соответствующую файловую систему (например, EXT4, NFS, ZFS и т.д.), в которой данная операция должна быть выполнена.
Основные компоненты VFS:
Суперблок (Superblock): Суперблок содержит информацию о конкретной файловой системе, такую как размер блока, максимальное количество файлов, свободное место и так далее.
Дескриптор файла (File descriptor): Каждый открытый файл идентифицируется уникальным дескриптором файла, который связан с конкретным процессом.
Иноды (Inode): Иноды содержат метаданные о файлах и каталогах, такие как права доступа, владелец, группа, размер, время создания и модификации и т.д.
Дентри (Dentry): Дентри структура содержит информацию о названии файла и указатель на инод текущего файла и его родительского каталога.
Важно отметить, что VFS предоставляет одинаковый набор операций для работы с любым типом файловой системы. Это значит, что независимо от того, какой тип файловой системы использован, операции вроде чтения, записи, закрытия файла идентичны со стороны пользователя. Это значительно упрощает разработку приложений и работу пользователя, так как у пространства пользователей есть единый интерфейс для доступа к файлам и каталогам на любом устройстве.
/proc - это виртуальная файловая система, которая активируется во время загрузки ядра и обеспечивает информацией о системных ресурсах. Она содержит информацию о всех процессах, запущенных в системе (каждый процесс имеет свой собственный подкаталог, названный в соответствии с его номером PID), а также общую информацию о системе, такую как использование ОЗУ и ЦП, версию ядра и др.
/sys - это файловая система, которая предоставляет информацию об устройствах, драйверах и некоторых других аспектах ядра. Она была создана для объединения разрозненной информации, ранее располагавшейся в /proc, в более структурированный вид.
/dev - это файловая система, представляющая физические и виртуальные (например, /dev/null, /dev/random, /dev/zero) устройства в виде файлов. Доступ к этим файлам обычно означает чтение или запись данных на устройство.
В Linux существует множество способов установки ПО, вот некоторые из них:
- Пакетные менеджеры. Наиболее часто используемым методом установки ПО на Linux является использование пакетного менеджера такого как apt, yum, dnf, zypper, pacman и т.д. Эти системы позволяют пользователям устанавливать, обновлять, и удалять пакеты программного обеспечения.
- Компиляция из исходного кода. С помощью этого метода пользователи могут загрузить исходный код ПО, скомпилировать его и установить собранное ПО.
- Использование скриптов установки. Некоторые программы поставляются со скриптами установки, которые нужно запустить для установки ПО.
- Установка через Docker. Docker позволяет пользователям упаковывать ПО вместе со всеми его зависимостями в изолированный контейнер, который можно легко установить на любой Docker-совместимой системе.
- Скрипты Bash или Shell. Этот метод подойдет в том случае, если у вас есть несложное приложение, зависимости которого устанавливаются и настраиваются с помощью нескольких команд в терминале. Скрипт установки фактически автоматизирует эти команды.