1
當我們在linux終端上啓動一個命令時,創建的進程就會遍歷VFS層,它決定哪個文件系統函數被稱爲ext4,ext3或其他文件系統。所以我的問題是VFS如何區分文件系統?形成VFS獲取文件系統信息的位置,它是task_struct中的fs_struct,告訴VFS?VFS如何知道要調用哪個底層文件系統函數?
當我們在linux終端上啓動一個命令時,創建的進程就會遍歷VFS層,它決定哪個文件系統函數被稱爲ext4,ext3或其他文件系統。所以我的問題是VFS如何區分文件系統?形成VFS獲取文件系統信息的位置,它是task_struct中的fs_struct,告訴VFS?VFS如何知道要調用哪個底層文件系統函數?
作爲FS實現的一部分,您需要實現文件,inode,超級塊操作,這將在VFS層中註冊底層FS操作(例如:ext3_open())。根據提供給open()的文件的路徑,VFS將調用適當的文件系統特定的系統調用實現。
假設你已經掛載了一個文件系統,當你掛載一個文件系統時,在模塊初始化期間,你使用VFS層爲FS註冊特定的操作。在這一步中,兩個處理程序get_sb()和kill_sb()。在安裝文件系統時調用get_sb()。 kill_sb()在卸載文件系統時被調用。
欲瞭解更多信息,請參閱RKFS並查看文件操作如何與數據流圖一起實施。
在可以訪問文件系統之前,必須先掛載它。此掛載操作是文件系統信息的來源。 – sawdust 2014-10-07 07:16:21