文件系统—虚拟文件系统(一)

为了保证Linux的开放性,设计者必须考虑如何使Linux除了支持Ext2文件系统外,还能支持其它各种不同的文件系统,例如日志文件系统、集群文件系统以及加密文件系统等。因此,就必须把各种不同文件系统的操作和管理纳入到一个统一的框架中,使得用户程序通过同一个文件系界面,即同一组系统调用,能对各种不同的文件系统和文件操作。用户程序不必关心各种不同文件系统的实现细节,而使用系统提供统一、抽象、虚拟的文件系统界面。这种统一的框架就是虚拟文件系统转换,一般简称虚拟文件系统(VFS)。

一、虚拟文件系统引入

Linux最初采用MINIX文件系统,但MINIX是一种教学用操作系统,其文件系统大小限制在64MB,文件名长度也限制在14个Byte。Linux经过一段时间的改进和发展,尤其吸取UNIX文件系统多年改进所积累的经验,最后形成Ext2文件系统。可以说,Ext2文件系统就是Linux文件系统。

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

在Linux内核中,VFS与具体的文件系统关系如图8.4所示。

文件系统—虚拟文件系统(一)_第1张图片

你可能感兴趣的:(操作系统)