Linux下挂接FAT文件系统

  Linux的文件系统外形上如同"反转过来的tree", 最上层是"/", 下面的分支是子目录和文件. 这样我们有个假设, 如果有两个partition, 那么在partition1中要读取partition2中的文件, 要使用mount去挂接, 将partition2挂接在partition1的某个目录里下, 我们知道, 无论partition2是EXT2,FAT还是iso9660文件系统, Linux都可以访问里面的文件, 我们想想, FAT本身没有I节点机制, 为什么任然可以访问里面的文件呢?

  Linux的文件系统其实分为三部分: Virtual File System Switch (即:VFS), cache, 底层文件系统(如EXT2). VFS是Linux对外的接口, cache和底层文件系统属于文件系统的内部范畴. 就拿上面partition2是FAT文件系统来举例, FAT文件系统本身没有I节点这个机制的, Linux是如何去操作的呢? 我们假设VFS去open 和read FAT中的一个文件a, 那么根据VFS的I节点机制, VFS肯定为文件a提前配置了一个I节点, 并且把读操作信息(从那里读,读多少BYTE)和这个I节点都传给FAT, FAT完成读操作和填写I节点信息, 最后返回, 这样, 即使在挂接FAT文件系统的时候, 也能保证了VFS的I节点机制。