Можно скомпилировать события/шаги, которые происходят, когда я пытаюсь выполнить системный вызов read()/write(). Как ядро знает, какую файловую систему выдавать эти команды.
Допустим, что процесс вызывает write(). Затем он вызовет sys_write().
Теперь, возможно, поскольку sys_write() выполняется от имени текущего процесса, он может получить доступ к struct task_struct и, следовательно, может получить доступ к struct files_struct и struct fs_struct, который содержит информацию о файловой системе.
Но после этого я не вижу, как этот fs_struct помогает идентифицировать файловую систему.
Изменить: теперь, когда Алекс описал поток... Я все еще сомневаюсь, как чтение/запись направляются в FS, поскольку VFS этого не делает, тогда это должно происходить где-то в другом месте. Также как базовое блочное устройство, а затем, наконец, подключенный аппаратный протокол PCI/USB.
Простая блок-схема, включающая фактические структуры данных, будет полезна
Пожалуйста, помогите.