Linux虚拟文件系统(VFS)深度解析
1. VFS概述
Linux成功的关键因素之一在于它能够与其他系统和谐共存。借助虚拟文件系统(Virtual Filesystem,VFS)的概念,Linux可以像其他Unix变体一样,支持多种磁盘类型。用户可以透明地挂载包含Windows、其他Unix系统甚至像Amiga这类小众系统使用的文件格式的磁盘或分区。
VFS的核心思想是在内核中存储广泛的信息,以表示多种不同类型的文件系统。对于Linux支持的任何真实文件系统提供的每个操作,内核都有相应的字段或函数来支持。当进行读、写或其他函数调用时,内核会替换为支持本地Linux文件系统、NT文件系统或文件所在的其他文件系统的实际函数。
VFS支持的文件系统主要分为以下三类:
-基于磁盘的文件系统:管理本地磁盘分区中的可用内存空间,例如Linux常用的第二扩展文件系统(Ext2)、第三扩展文件系统(Ext3)、Reiser文件系统(ReiserFS);Unix变体的文件系统,如SYSV文件系统、UFS等;微软的文件系统,如MS - DOS、VFAT、NTFS;ISO9660 CD - ROM文件系统和Universal Disk Format(UDF)DVD文件系统;以及其他专有文件系统,如IBM的OS/2(HPFS)、苹果的Macintosh(HFS)等。
-网络文件系统:便于访问其他联网计算机文件系统中的文件,常见的有NFS、Coda、AFS(Andrew文件系统)、SMB(用于Microsoft Windows和IBM OS/2 LAN Manager共享文件和打印机)和NCP(No