Читаем Разработка ядра Linux полностью

Структуры для VFS — это самая "любимая" вещь, и в этой подсистеме существуют не только рассмотренные структуры, но и еще некоторые. Каждая зарегистрированная файловая система представлена структурой file_system_type. Объекты этого типа описывают файловую систему и ее свойства. Более того, каждая точка монтирования представлена в виде структуры vfsmount. Эта структура содержит информацию о точке монтирования, такую как ее положение и флаги, с которыми выполнена операция монтирования.

И наконец, каждый процесс имеет три структуры, которые описывают файловую систему и файлы, связанные с процессом. Это структуры file_struct, fs_struct и namespace.

Далее в этой главе будут рассматриваться эти объекты и их роль в функционировании уровня VFS.

<p>Объект superblock</p>

Объект суперблок должен быть реализован для каждой файловой системы. Он используется для хранения информации, которая описывает определенную файловую систему. Этот объект обычно соответствует суперблоку (superblock) или управляющему блоку (control block) файловой системы, который хранится в специальном секторе диска (отсюда и имя объекта). Файловые системы, которые не располагаются на дисках (например, файловые системы в виртуальной памяти, как sysfs), генерируют информацию суперблока "на лету" и хранят в памяти.

Объект суперблок представляется с помощью структуры struct super_block, которая определена в файле . Она выглядит следующим образом (комментарии описывают назначение каждого поля).

struct super_block {

 struct list_head         s_list;           /* список всех суперблоков */

 dev_t                    s_dev;            /* идентификатор */

 unsigned long            s_blocksize;      /* размер блока в байтах */

 unsigned long            s_old_blocksize;  /* старый размер блока

                                               в байтах */

 unsigned char            s_blocksize_bits; /* размер блока в битах */

 unsigned char            s_dirt;           /* флаг того,

                                               что суперблок изменен */

 unsigned long long       s_maxbytes; /* максимальный размер файла */

 struct file_system_type  *s_type;          /* тип файловой системы */

 struct super_operations  *s_op;            /* операции суперблока */

 struct dquot_operations  *dq_op;           /* операции с квотами */

 struct quotactl_ops      *s_qcop; /* операции управления квотами */

 struct export_operations *s_export_op;     /* операции экспортирования */

 unsigned long            s_flags;          /* флаги монтирования */

 unsigned long            s_magic; /* магический номер файловой системы */

 struct dentry            *s_root; /* каталог, точка монтирования */

 struct rw_semaphore      s_umount;         /* семафор размонтирования */

 struct semaphore         s_lock;           /* семафор суперблока */

 int                      s_count; /* счетчик ссылок на суперблок */

 int                      s_syncing;        /* флаг синхронизации

                                               файловой системы */

 int                      s_need_sync_fs; /* флаг того, что файловая

                                       система еще не синхронизирована */

 atomic_t                 s_active;         /* счетчик активных ссылок */

 void                     *s_security;      /* модуль безопасности */

 struct list_head         s_dirty; /* список измененных индексов */

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных