Linux 操作系统将独立的文件系统组合成了一个层次化的树形结构,并且由一个单独的实体代表这一文件系统。Linux 中最普遍使用的文件系统是 Ext2,它也是 Linux 土生土长的文件系统。但 Linux 也能够支持 FAT、VFAT、FAT32、MINIX 等不同类型的文件系统,从而可以方便地和其它操作系统交换数据。由于 Linux 支持许多不同的文件系统,并且将它们组织成了一个统一的虚拟文件系统(VFS)。
虚拟文件系统(Virtual File System, 简称VFS), 是Linux内核中的一个软件层,用于给用户空间的程序提供文件系统接口;同时,它也提供了内核中的一个 抽象功能,允许不同的文件系统共存。系统中所有的文件系统不但依赖 VFS 共存,而且也依靠VFS协同工作。
为了能够支持各种实际文件系统,VFS 定义了所有文件系统都支持的基本的、概念上的接口和数据结构;同时实际文件系统也提供 VFS 所期望的抽象接口和数据结构,将自身的诸如文件、目录等概念在形式 上与VFS的定义保持一致。换句话说,一个实际的文件系统想要被Linux支持,就必须提供一个符合VFS标准的接口,才能与 VFS 协同工作。实际文件系统在统一的接口和数据结构下隐藏了具体的实现细节,所以在VFS 层和内核的其他部分看来,所有文件系统都是相同的。
总结出影响应用程序性能表现的因素有:
CPU的频率及利用率。CPU的频率决定了处理速度,利用率可以表现程序的多数时间是花费在CPU上还是IO上
进程切换次数。这一点记录了程序运行中发生了多少次进程切换,频繁的进程切换应该被避免。
Cache命中率。缓存的命中率高低也是程序执行性能很重要的一点。
磁盘读取速度。该项决定了系统读盘的速度。
应用程序的自我优化。如果一个应用程序像test.c一样使用了次数非常大的循环,那么性能表现是会十分糟糕的,因此程序自身的编写优化也是很重要的一个因素。