ГЛАВА 5. СИСТЕМНЫЕ ОПЕРАЦИИ ДЛЯ РАБОТЫ С ФАЙЛОВОЙ СИСТЕМОЙ
В последней главе
рассматривались внутренние
структуры данных для файловой
системы и алгоритмы работы с ними. В
этой главе речь пойдет о системных
функциях для работы с файловой
системой с использованием понятий,
введенных в предыдущей главе.
Рассматриваются системные функции,
обеспечивающие обращение к
существующим файлам, такие как open,
read, write, lseek и close, затем функции
создания новых файлов, а именно, creat
и mknod, и, наконец, функции для работы
с индексом или для передвижения по
файловой системе: chdir, chroot, chown, stat и
fstat. Исследуются более сложные
системные функции: pipe и dup имеют
важное значение для реализации
каналов в shell'е; mount и umount расширяют
видимое для пользователя дерево
файловых систем; link и unlink изменяют
иерархическую структуру файловой
системы. Затем дается
представление об абстракциях,
связанных с файловой системой, в
отношении поддержки различных
файловых систем, подчиняющихся
стандартным интерфейсам. В
последнем разделе главы речь
пойдет о сопровождении файловой
системы. Глава знакомит с тремя
структурами данных ядра: таблицей
файлов, в которой каждая запись
связана с одним из открытых в
системе файлов, таблицей
пользовательских дескрипторов
файлов, в которой каждая запись
связана с файловым дескриптором,
известным процессу, и таблицей
монтирования, в которой содержится
информация по каждой активной
файловой системе.
Функции для работы с
файловой системой
Возвращают
дескрипторы файла |
Используют
алгоритм namei |
Назначают
индексы |
Работают с
атрибутами файла |
Ввод-
вывод из файла |
Работают со
структурой файловых систем |
Управление
деревьями |
open |
open |
stat |
|
|
|
|
|
creat |
creat |
link |
creat |
chown |
read |
|
|
dup |
chdir |
unlink |
mknod |
chmod |
write |
mount |
chdir |
pipe |
chroot |
mknod |
link |
stat |
lseek |
umount |
chown |
close |
chown |
mount |
unlink |
|
|
|
|
|
chmod |
umount |
|
|
|
|
|
Алгоритмы
работы с файловой системой на
нижнем уровне |
namei |
ialloc ifree |
alloc free bmap |
|
iget iput
bmap |
|
Алгоритмы
работы с буферами |
|
getblk brelse bread breada bwrite
|
|
Рисунок 5.1. Функции для
работы с файловой системой и их
связь с другими алгоритмами
На Рисунке 5.1 показана
взаимосвязь между системными
функциями и алгоритмами,
описанными ранее. Системные
функции классифицируются на
несколько категорий, хотя
некоторые из функций присутствуют
более, чем в одной категории:
- Системные функции,
возвращающие дескрипторы
файлов для использования
другими системными функциями;
- Системные функции,
использующие алгоритм namei для
анализа имени пути поиска;
- Системные функции, назначающие
и освобождающие индекс с
использованием алгоритмов ialloc
и ifree;
- Системные функции,
устанавливающие или
изменяющие атрибуты файла;
- Системные функции, позволяющие
процессу производить
ввод-вывод данных с
использованием алгоритмов alloc,
free и алгоритмов выделения
буфера;
- Системные функции, изменяющие
структуру файловой системы;
- Системные функции, позволяющие
процессу изменять собственное
представление о структуре
дерева файловой системы.
Предыдущая
глава || Оглавление
|| Следующая глава
|