2014-10-07 2 views
1

Когда мы запускаем команду на linux terminal. Созданный таким образом процесс переходит к слою VFS, где он решает, какую функцию файловой системы вызывать как ext4, ext3 или любую другую файловую систему. Поэтому мой вопрос: как VFS различает файловые системы? форма, где VFS получает информацию о файловой системе, является ли это fs_struct в task_struct, который сообщает VFS?Как VFS знает, какие функции файловой системы вызывать?

+0

Прежде чем доступ к файловой системе, она должна быть установлена. Эта операция монтирования является источником информации о файловой системе. – sawdust

ответ

3

В рамках реализации FS вам необходимо реализовать операции над файлами, inode, superblock, которые будут регистрировать базовые FS-операции (ex: ext3_open()) с помощью уровня VFS. В зависимости от пути к файлу, предоставленному open(), VFS будет ссылаться на соответствующую реализацию системной задачи для конкретной файловой системы.

Допустим, вы уже установили файловую систему, когда вы монтируете файловую систему, вы регистрируете FS для определенных операций с уровнем VFS во время инициализации модуля. На этом этапе два обработчика get_sb() и kill_sb(). get_sb() вызывается во время установки файловой системы. kill_sb() вызывается во время размонтирования файловой системы.

Для получения дополнительной информации обратитесь к RKFS и рассмотрите, как выполняются операции с файлами вместе с диаграммами потоков данных.

Смежные вопросы