ГЛАВА 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 и алгоритмов выделения
        буфера; 
 
    - Системные функции, изменяющие
        структуру файловой системы; 
 
    - Системные функции, позволяющие
        процессу изменять собственное
        представление о структуре
        дерева файловой системы. 
 
 
Предыдущая
глава || Оглавление
|| Следующая глава 
  
 
 |