мета-данные страницы
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версия | |||
| notes:howlinuxworks:vol4 [2026/05/13 17:04] – radi0dev | notes:howlinuxworks:vol4 [2026/05/13 17:30] (текущий) – radi0dev | ||
|---|---|---|---|
| Строка 555: | Строка 555: | ||
| ^ ФС ^ Точка монтирования ^ Назначение ^ | ^ ФС ^ Точка монтирования ^ Назначение ^ | ||
| - | | **proc** | /proc | Информация о процессах и ядре. Нумерованные каталоги соответствуют PID, / | + | | **proc** | /proc | Информация о процессах и ядре. Нумерованные каталоги соответствуют PID, / |
| | **sysfs** | /sys | Системная информация устройств (см. глава 3) | | | **sysfs** | /sys | Системная информация устройств (см. глава 3) | | ||
| | **tmpfs** | /run и др. | Временное хранилище в памяти и swap. Параметры: | | **tmpfs** | /run и др. | Временное хранилище в памяти и swap. Параметры: | ||
| Строка 577: | Строка 577: | ||
| ^ Шаг ^ Команда ^ Описание ^ | ^ Шаг ^ Команда ^ Описание ^ | ||
| - | | 1 | — | Убедиться, | + | | 1 | - | Убедиться, |
| | 2 | mkswap /dev/xxx | Поместить сигнатуру swap на раздел | | | 2 | mkswap /dev/xxx | Поместить сигнатуру swap на раздел | | ||
| | 3 | swapon /dev/xxx | Активировать область в ядре | | | 3 | swapon /dev/xxx | Активировать область в ядре | | ||
| Строка 609: | Строка 609: | ||
| Классическое правило: | Классическое правило: | ||
| - | * **Многопользовательские системы**: | + | * **Многопользовательские системы**: |
| * **Однопользовательские системы**: | * **Однопользовательские системы**: | ||
| * **Серверы с высокой нагрузкой**: | * **Серверы с высокой нагрузкой**: | ||
| Строка 617: | Строка 617: | ||
| **На компьютере общего назначения** swap необходима. Без неё при исчерпании памяти ядро запускает [[glossary: | **На компьютере общего назначения** swap необходима. Без неё при исчерпании памяти ядро запускает [[glossary: | ||
| - | Подробнее о виртуальной памяти | + | Подробнее о виртуальной памяти |
| + | |||
| + | ===== 4.4 Менеджер логических томов LVM ===== | ||
| + | |||
| + | [[soft: | ||
| + | |||
| + | Прямое управление разделами затруднено при изменении конфигурации после установки. Добавление диска требует переразбиения, | ||
| + | |||
| + | ==== Компоненты LVM ==== | ||
| + | |||
| + | ^ Компонент ^ Описание ^ | ||
| + | | **Physical Volume (PV)** | Физический блочный диск или раздел (/dev/sda1, /dev/sdb и т. д.) | | ||
| + | | **Volume Group (VG)** | Общий пул, созданный из одного или нескольких PV | | ||
| + | | **Logical Volume (LV)** | Виртуальный блочный диск, выделяемый из VG. На LV размещаются ФС или swap | | ||
| + | |||
| + | Логические тома действуют аналогично разделам на физическом диске, но размещение управляет LVM, а не пользователь. | ||
| + | |||
| + | ===== 4.6 Что находится внутри традиционной файловой системы ===== | ||
| + | |||
| + | Традиционная ФС Unix состоит из двух компонентов: | ||
| + | * **Пул блоков данных** - хранилище информации | ||
| + | * **Система БД на основе inode** - управление пулом данных | ||
| + | |||
| + | **inode** - структура данных, | ||
| + | |||
| + | **Каталоги** - тоже inode, содержащие список имен файлов и ссылки на другие inode. | ||
| + | |||
| + | **Пример структуры: | ||
| + | <code bash> | ||
| + | mkdir dir_1 dir_2 | ||
| + | echo a > dir_1/ | ||
| + | echo b > dir_1/ | ||
| + | echo c > dir_1/ | ||
| + | echo d > dir_2/ | ||
| + | ln dir_1/ | ||
| + | </ | ||
| + | |||
| + | **Разрешение пути** (например '' | ||
| + | |||
| + | ^ Шаг ^ Действие ^ | ||
| + | | 1 | Парсинг пути: компоненты '' | ||
| + | | 2 | Переход по корневому inode (2) к данным каталога | | ||
| + | | 3 | Поиск '' | ||
| + | | 4 | Проверка inode 12: это каталог | | ||
| + | | 5 | Переход по inode 12 к его данным каталога | | ||
| + | | 6 | Поиск '' | ||
| + | | 7 | Проверка inode 14: это файл, доступ разрешен | | ||
| + | |||
| + | **Специальные записи каталогов: | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== 4.6.1 Сведения о дескрипторе и количество ссылок ==== | ||
| + | |||
| + | Для просмотра дескриптора используйте '' | ||
| + | |||
| + | **Link count** - общее количество записей каталога, | ||
| + | |||
| + | | Операция | Действие | | ||
| + | | Создание файла | Новая запись каталога + новый дескриптор | | ||
| + | | Жесткая ссылка | Вручную созданная запись на существующий дескриптор ('' | ||
| + | | Удаление файла | Удаление ссылки: | ||
| + | |||
| + | При удалении '' | ||
| + | |||
| + | Для каталогов: | ||
| + | |||
| + | ==== 4.6.2 Распределение блоков ==== | ||
| + | |||
| + | **Block bitmap** (битовая карта) - каждый бит = один блок: | ||
| + | * 0 = свободен | ||
| + | * 1 = используется | ||
| + | |||
| + | Проблемы возникают при рассинхронизации дескрипторов и распределения блоков (некорректное выключение). Программа '' | ||
| + | |||
| + | <code bash> | ||
| + | # Проверяет и восстанавливает | ||
| + | fsck / | ||
| + | </ | ||
| + | |||
| + | Процесс: | ||
| + | |||
| + | ==== 4.6.3 Работа с файловыми системами в пользовательском пространстве ==== | ||
| + | |||
| + | Процессы доступ получают через системные вызовы ядра ('' | ||
| + | |||
| + | Данные доступны в основном для обратной совместимости. Не все ФС имеют inode: | ||
| + | |||
| + | | Файловая система | Жесткие ссылки | Примечание | | ||
| + | | ext4 | Да | Традиционная UNIX ФС | | ||
| + | | VFAT | Нет | '' | ||
| + | | VFS (абстракция) | Условно | Возвращает значения, | ||
| + | |||
| + | Системные вызовы Linux обеспечивают достаточную абстракцию - знать о дескрипторах не обязательно. Поддержка ФС может быть в ядре или пользовательском пространстве (FUSE). | ||