Дисковая подсистема Linux

Блочное устройство

Основное понятие дисковой подсистемы в Unix и Linux — Блочные устройства.

Блочное устройство (block device) — вид файла устройств в UNIX/Linux-системах, обеспечивающий интерфейс к устройству, реальному или виртуальному, в виде файла в файловой системе. С блочным устройством обеспечивается обмен данными блоками данных. Как правило, это устройства произвольного доступа, то есть можно указать, из какого именно места должен быть прочитан или записан блок данных. Данные при чтении или записи на блочное устройство буферизуются.

Если говорить проще, то блочное устройство обеспечивает интерфейс к устройству.

Пример:

# ls -la /dev/sd*
Дисковая подсистема Linux

Блочное устройство обеспечивает обмен блоками данных.

Блок (chunk) — это единица данных фиксированного размера. Размер блока определяется ядром, чаще всего совпадает с размером страницы аппаратной архитектуры. Для 32-архитектуры x86 составляет 4096 байт.

#  fdisk -l /dev/sda 
Дисковая подсистема Linux

Существующие подходы к организации /dev

  1. Статическая организация — специальные файлы для всех возможных устройств вне зависимости от того, загружен драйвер соответствующего устройства или нет.
  2. Динамическая организация — специальные файлы в /dev создаются по мере инициализации устройств и загрузки драйверов, и удаляются при выгрузке соответствующего драйвера или удалении устройства.

Процесс работы со статическим /dev особых проблем не вызывает – системный администратор при необходимости просто создает отсутствующие файлы командой mknod.

DevFS

Ядро монтирует к каталогу /dev специальную файловую систему, называемую devfs:

  • Целиком находится в оперативной памяти
  • Драйвер devfs динамически создает специальный файл
  • Динамически же удаляет его

Udev

В отличие от devsfd, который требовал поддержки со стороны ядра, udev
такой поддержки не требует.

● Постоянно закрепленные за устройствами имена, которые не зависят от
того, какое положение они занимают в дереве устройств.
● Уведомление внешних по отношению к ядру программ, если устройство
было заменено
● Гибкие правила именования устройств.

Devtmpfs

На текущий момент используется devtmpfs + udev

После монтирования корневой файловой системы, этот экземпляр tmpfs перемонтируется ядром в каталог /dev

devtmpfs отвечает за заполнение каталога /dev

udev за права доступа, необходимые симлинки и запуск скриптов
пользователя

Оцените статью
( Пока оценок нет )