В последней главе
рассматривались внутренние
структуры данных для файловой
системы и алгоритмы работы с ними. В
этой главе речь пойдет о системных
функциях для работы с файловой
системой с использованием понятий,
введенных в предыдущей главе.
Рассматриваются системные функции,
обеспечивающие обращение к
существующим файлам, такие как open,
read, write, lseek и close, затем функции
создания новых файлов, а именно, creat
и mknod, и, наконец, функции для работы
с индексом или для передвижения по
файловой системе: chdir, chroot, chown, stat и
fstat. Исследуются более сложные
системные функции: pipe и dup имеют
важное значение для реализации
каналов в shell'е; mount и umount расширяют
видимое для пользователя дерево
файловых систем; link и unlink изменяют
иерархическую структуру файловой
системы. Затем дается
представление об абстракциях,
связанных с файловой системой, в
отношении поддержки различных
файловых систем, подчиняющихся
стандартным интерфейсам. В
последнем разделе главы речь
пойдет о сопровождении файловой
системы. Глава знакомит с тремя
структурами данных ядра: таблицей
файлов, в которой каждая запись
связана с одним из открытых в
системе файлов, таблицей
пользовательских дескрипторов
файлов, в которой каждая запись
связана с файловым дескриптором,
известным процессу, и таблицей
монтирования, в которой содержится
информация по каждой активной
файловой системе. Рисунок 5.1. Функции для
работы с файловой системой и их
связь с другими алгоритмами На Рисунке 5.1 показана
взаимосвязь между системными
функциями и алгоритмами,
описанными ранее. Системные
функции классифицируются на
несколько категорий, хотя
некоторые из функций присутствуют
более, чем в одной категории: Предыдущая
глава || Оглавление
|| Следующая глава
ГЛАВА 5. СИСТЕМНЫЕ
ОПЕРАЦИИ ДЛЯ РАБОТЫ С ФАЙЛОВОЙ
СИСТЕМОЙ
Возвращают
дескрипторы файла
Используют
алгоритм 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