Linux VFS如何知道要调用哪些底层文件系统函数?

Linux VFS如何知道要调用哪些底层文件系统函数?,linux,linux-kernel,filesystems,vfs,Linux,Linux Kernel,Filesystems,Vfs,当我们在linux终端上启动命令时,这样创建的进程会遍历到VFS层,在那里它决定调用哪个文件系统函数,比如ext4、ext3或任何其他文件系统。所以我的问题是VFS如何区分文件系统?从VFS获取文件系统信息的形式来看,是任务结构中的fs结构告诉了VFS吗 作为FS实现的一部分,您需要实现文件、inode、超级块操作,这些操作将在VFS层注册底层FS操作(例如:ext3_open())。根据提供给open()的文件路径,VFS将调用相应的特定于文件系统的syscall实现 假设您已经挂载了一个文件

当我们在linux终端上启动命令时,这样创建的进程会遍历到VFS层,在那里它决定调用哪个文件系统函数,比如ext4、ext3或任何其他文件系统。所以我的问题是VFS如何区分文件系统?从VFS获取文件系统信息的形式来看,是任务结构中的fs结构告诉了VFS吗

作为FS实现的一部分,您需要实现文件、inode、超级块操作,这些操作将在VFS层注册底层FS操作(例如:ext3_open())。根据提供给open()的文件路径,VFS将调用相应的特定于文件系统的syscall实现

假设您已经挂载了一个文件系统,当您挂载一个文件系统时,您可以在模块初始化期间向VFS层注册特定操作的FS。在此步骤中,两个处理程序获取和杀死。在装载文件系统时调用get_sb()。在卸载文件系统时调用kill_sb()


有关更多信息,请参阅并了解文件操作如何与数据流图一起实现。

在访问文件系统之前,必须先安装文件系统。此装载操作是文件系统信息的来源。