Linux文件系统(一)-群居和一

来源:互联网 发布:软件代理销售合同 编辑:程序博客网 时间:2024/04/29 20:29

儒家和谐的思想不仅主导着我们的日常生活和社会关系,而且在Unix/Linux文件系统的设计中充分体现。先秦儒家以西周末年太史史伯提出的和实生物,同则不继。《国语·郑语》中,则对和谐思想做了进一步的完善和发展,把作为处理人的身心关系、人际关系、群己关系、人与自然关系的根本法则,所谓和也者,天下之达道也既是人伦关系的价值取向,又是万事万物生成发展的机制。

 儒家所说的和谐,并不是毫无差异的苟同,而是包含差异或对立的多种不同因素协调、互补、融合、共存、相济相成所形成的对立统一,是一种多样性基础上的统一。

   为了保证Linux的开放性,设计人员必须考虑如何使Linux能支持各种不同的文件系统,例如日志型文件系统,集群文件系统以及加密文件系统等等。为此,就必须将各种不同文件系统的操作和管理纳入到一个统一的框架中,使得用户程序可以通过同一个文件系统界面,也就是同一组系统调用,能够对各种不同的文件系统以及文件进行操作。这样,用户程序就可以不关心各种不同文件系统的实现细节,而使用系统提供的统一、抽象、虚拟的文件系统界面。这种统一的框架就是所谓的虚拟文件系统转换(Virtual Filesystem Switch),一般简称虚拟文件系统(VFS)


   虚拟文件系统所提供的抽象界面主要由一组标准的、抽象的操作构成,例如read()、write()、lseek等,这些函数以系统调用的形式供用户程序调用。这样,用户程序调用这些系统调用时,根本无需关心所操作的文件属于哪个文件系统,这个文件系统是怎样设计和实现的,如下图一:



图 1. Linux 文件系统组件的体系结构




  

用户空间包含一些应用程序(例如,文件系统的使用者)和 GNU C 库(glibc),它们为文件系统调用(打开、读取、写和关闭等)提供用户接口。系统调用接口的作用就像是交换器,它在用户空间和内核空间之间搭起一座桥梁。


   VFS下面挂着个性差异的具体文件系统(Individual file system),比如 ext2、JFS 等等,尽管这些文件系统内脏有所差异,但从中导出的是一组通用接口,供 VFS 使用。缓冲区缓存(cache)会缓存文件系统和相关块设备之间的请求。例如,对底层设备驱动程序的读写请求会通过缓冲区缓存来传递。这就允许在其中缓存请求,减少访问物理设备的次数,加快访问速度。缓冲区缓存是以LRU的形式进行管理的。注意,可以使用sync命令将缓冲区缓存中的请求发送到存储介质(迫使所有未写的数据发送到设备驱动程序,进而发送到存储设备)。

原创粉丝点击