虽然 Linux 的标准文件系统是 ext2 ,且还有增加了日志功能的 ext3/ext4 ,事实上,Linux 还有支持很多文件系统格式的, 尤其是最近这几年推出了好几种速度很快的日志式文件系统,包括 SGI 的 XFS 文件系统, 可以适用更小型文件的 Reiserfs 文件系统,以及 Windows 的 FAT 文件系统等等, 都能够被 Linux 所支持喔!常见的支持文件系统有:
- 传统文件系统:ext2 / minix / MS-DOS / FAT (用 vfat 模块) / iso9660 (光盘)等等;
- 日志式文件系统: ext3 /ext4 / ReiserFS / Windows' NTFS / IBM's JFS / SGI's XFS / ZFS
- 网络文件系统: NFS / SMBFS
想要知道你的 Linux 支持的文件系统有哪些,可以察看下面这个目录:
[root@study ~]# ls -l /lib/modules/$(uname -r)/kernel/fs
系统目前已载入到内存中支持的文件系统则有:
[root@study ~]# cat /proc/filesystems
- Linux VFS (Virtual Filesystem Switch)
了解了我们使用的文件系统之后,再来则是要提到,那么 Linux 的核心又是如何管理这些认识的文件系统呢? 其实,整个 Linux 的系统都是通过一个名为 Virtual Filesystem Switch 的核心功能去读取 filesystem 的。 也就是说,整个 Linux 认识的 filesystem 其实都是 VFS 在进行管理,我们使用者并不需要知道每个 partition 上头的 filesystem 是什么~ VFS 会主动的帮我们做好读取的动作呢~
假设你的 / 使用的是 /dev/hda1 ,用 ext3 ,而 /home 使用 /dev/hda2 ,用 reiserfs , 那么你取用 /home/dmtsai/.bashrc 时,有特别指定要用的什么文件系统的模块来读取吗? 应该是没有吧!这个就是 VFS 的功能啦!通过这个 VFS 的功能来管理所有的 filesystem, 省去我们需要自行设置读取文件系统的定义啊~方便很多!整个 VFS 可以约略用下图来说明:
图7.1.6、VFS 文件系统的示意图
老实说,文件系统真的不好懂! 如果你想要对文件系统有更深入的了解,文末的相关链接[5]务必要参考参考才好喔!