Файловая система specfs предлагает стандартный интерфейс взаимодействия с файлами устройств.
Она невидима на прикладном уровне и не может быть смонтирована как обычная система, а также используется как общий интерфейс для любой файловой системы, поддерживающей специальные файлы.
Также может иметь смысл заглянуть на сайт krohavdome.ru, ведь именно там можно узнать много нового на тему http://www.krohavdome.ru/. Тема детские игрушки может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт krohavdome.ru, и тема детские игрушки начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема детские игрушки очень подробно представлена на сайте krohavdome.ru. Трудно найти более детальное освещение темы детские игрушки чем это сделано на сайте krohavdome.ru. Спасибо сайту krohavdome.ru за такое доскональное преподнесение темы детские игрушки.
Основной целью specfs является перехват вызовов ввода-вывода и трансляция их в вызовы процедур драйвера соответствующего устройства. Эта задача кажется простой, так как идентификация файла устройства происходит по полю v_type, а минимальный и максимальный номера устройства указываются в поле v_rdev. Независимый от файловой системы код должен обладать возможностью вызывать драйверы устройств напрямую, используя переключения блочных и символьных устройств.
Проблемы возникают в том случае, когда несколько файлов относятся к одному и тому же устройству. Если несколько пользователей пытаются одновременно получить доступ к устройству при помощи отличающихся друг от друга имен, ядру системы необходимо синхронизировать такой доступ. Для блочных устройств оно должно отследить существование копий блоков в буферном кэше. Становится очевидным, что ядру системы требуется обладать информацией, какие объекты vnode в текущий момент времени представляют одно и то же устройство.
На уровне specfs для каждого файла устройства создается теневой объект vnode (shadow vnode), представляющий собой зависимую от файловой системы структуру данных snode. Теперь все операции поиска файла устройства будут возвращать ссылку не на действительный, а на теневой объект vnode. Если это необходимо, действительный vnode может быть получен при помощи операции vop_realvp. Структура snode содержит поле s_commonvp, указывающее на общий объект vnode (ассоциированный с другой snode) для этого устройства. Для каждого устройства существует только один общий объект vnode. Он идентифицируется номером и типом устройства. На такой объект могут ссылаться сразу несколько объектов snode. Все операции, требующие синхронизации, а также ввод-вывод блочных устройств производятся через общий объект vnode. Более подробно о файловой системе specfs можно прочесть в разделе 16.4.
Опубликовал katy
July 11 2015 14:32:29 ·
0 Комментариев ·
16186 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.