陈莉君

陈莉君的博客

她的个人主页  她的博客

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

陈莉君  2010年01月21日 星期四 21:28 | 2309次浏览 | 8条评论

 儒家和谐的思想不仅主导着我们的日常生活和社会关系,而且在 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 命令将缓冲区缓存中的请求发送到存储介质(迫使所有未写的数据发送到设备驱动程序,进而发送到存储设备)。

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !
Will Song

回复 Will Song  2010年01月28日 星期四 18:18

学习下,多谢分享.

0条回复

alexpeng

回复 alexpeng  2010年01月22日 星期五 13:23

启动时, 默认存在几种文件系统,是因为那都是系统必不可少的, 其它的文件系统可以之后再挂载。至于为什么那几种文件系统是默认的,需要看这几个文件系统各自的演化历史。 上面的图里各个部分并不是一开始就是这样的,是在应对不同问题时逐渐出现然后慢慢进化的。 不使用VFS当然可以, 但也失去了“统一,抽象”的好处, 也就没继承了前人的经验(教训)。

0条回复

许德练(阿练)

回复 许德练(阿练)  2010年01月22日 星期五 09:58

使用VFS会有什么缺点吗?没有仔细学过vfs,不过我想带来好处的同时是不是会在某些方面带来降低。
相当多的用户和场合而言,其Linux可能只需要一种文件系统,而不需要同时支持不同的,所以是不是有时可以不经过vfs这个中间层?

1条回复

  • 陈莉君

    回复 陈莉君  2010年01月22日 星期五 10:09

    这种反向思维激起一种探究的欲望,如何把这种想法变为现实,或者是否值得变为现实,的确需要深思并动手实践。但是,Linux一启动,就默认存在几种文件系统了。我们刚刚做了一种实验,即使想把proc下的所有目录隐藏一下,整个系统就启动不了了。

    0条回复

许德练(阿练)

回复 许德练(阿练)  2010年01月22日 星期五 09:48

陈老师参悟国学精华,与计算机工程合而为一,这境界太高了!

0条回复

王锋

回复 王锋  2010年01月22日 星期五 09:24

没想到陈阿姨如此的厉害,以后多关注

0条回复

谭孟泷

回复 谭孟泷  2010年01月21日 星期四 23:17

呵呵,支持陈老师!

0条回复

潘多

回复 潘多  2010年01月21日 星期四 22:52

接触linux的时间也不算少了,这方面还真是空白的

0条回复

暂时没有评论

Zeuux © 2024

京ICP备05028076号