总论:
  linux的文件系统设计非常,总的来讲有两大部分,第一部分是树形的组织结构,第二部分是vfs,树形的组织结构组织了文件系统的表象,用户非常方便的使用,而vfs是文件系统的实现机理,它处于内核态,不但实现了树形结构的mount机制,并且还提供了一个统一的接口用来?问设备。
  一、Linux文件系统概述
  1、Linux文件系统组织

  Linux中使用树来组织文件系统。整个文件系统构成了一颗树,这棵树以/为根。整个系统有且仅仅有这一颗文件树。这棵树描写叙述了文件系统的拓扑结构,没有不论什么文件系统的类型信息。
  2、mount机制
  linux使用mount机制扩展文件系统,使不同类型的文件系统能够挂载在系统的文件树的不论什么位置。mount机制使文件树有了类型属性,支持了不同类型的文件系统的挂载。
  如图所看到的。

  能够看到假设不考虑挂载点,整个文件系统是一棵树,假设考虑了挂载点,这棵树原来是嫁接而成的,能够包括各种不同种类的文件系统。正如桥片扩展了总线一样,挂载点扩展了文件树,和扩展总线不同的是,随意文件夹都能够是挂载点,可是不是随意芯片都是能够作为桥的。(网桥/交换机扩展以太网也是一样的道理,和mount机制更加相似一些,由于你仅仅须要插入一个多port网卡能够作为一个网桥了。)
  3、mount机制的优点
  mount能够屏蔽文件系统的类型,全部类型的文件系统共享一棵树,可是实现却能够不同样。用户进程能够使用同样的系统调用接口?问全部的文件系统,而不必在意?问的文件是什么类型的。mount机制使一棵文件树得以多样化,然而又能够向用户屏蔽这样的多样化。这样的多样化是通过vfs实现的。
  4、单棵树组织+mount扩展
  Linux的文件系统和磁盘并不绑定,文件系统是一棵树,是一个虚拟的概念,没有介质,没有容量,没有读写规则,唯独在挂载(mount)发生的时候,也是详细的文件系统挂载的时候,某个挂载点才和介质建立联系,然而此时对于文件系统来讲仍然没有容量的概念,容量不过挂载于此文件夹的磁盘设备的属性,假设磁盘空间满了,仍然能够通过在此磁盘的一个文件夹上mount一个新的文件系统来解决,而新的文件系统在一块新的磁盘上。
  5、和Windows文件系统的对照
  Windows显式的分离了各种文件系统,尽管Windows在操作接口上也吸取了Unix中“一切皆文件”的思想。在接口级别,windows也使用同样的API来?问各类文件,比方ReadFile,WriteFile等,然而在操作级别,windows却没有实现一致性,在操作级别,windows的文件系统主要指以磁盘为介质的文件系统,因此windows没有必要用一棵树包括全部的文件,而是区分成了各个盘符,然而这样的方式有个弊端,那是不易扩展,由于单个盘符限制了容量,磁盘直接和文件系统绑定。因此,Windows不以单棵树树来组织文件系统,windows非常难用mount来扩展文件系统。