操作系统最重要的部件是进程管理和文件系统,一些操作系统有进程管理而没有文件系统(如一些嵌入式系统),一些系统有文件系统而没有进程管理(如 MSDOS)。LINUX最初采用了MINIX的文件系统,但是MINIX文件系统的大小不能超出64M,文件名长度仅限于14个字符。经过对传统 UNIX文件系统的消化吸收和改进,最后形成了EXT2文件系统。EXT2可以说是真正意义上的LINUX文件系统。
除了EXT2,LINUX需要支持各种不同的文件系统,为了实现这个目的,需要将各种不同文件系统的操作和管理纳入一个统一的框架,这就是虚拟文件系统 VFS(Virtual File System,原始名称是Virtual Filesystem Switch),它提供同一组系统调用,对不同的文件系统系统进程操作,如read(),write(),lseek()等,通过这些系统调用对文件进程操作,用户根本无需关心具体的文件属于什么文件系统以及具体的文件系统怎么实现。例如,在LINUX系统操作中,可以将FAT32格式的磁盘或分区挂载(mount)到系统中,然后用户可以按完全相同的方式访问这些文件,就好像它们本身就是EXT2格式的文件一样。这使LINUX非常灵活,能够很好的与其它很多操作系统共存。到目前为止,LINUX支持36种文件系统,包括adfs.affs.autofs.coda.coherent.cramfs.devpts.efs.ext.
ext2.ext3.hfs.hpfs.iso9660.jfs.minix.msdos.ncpfs.nfs.nfs4.ntfs.proc.qnx4.ramfs.reiserfs.romfs.
smbfs.sysv.tmpfs.udf.ufs.umsdos.vfat.xenix.xfs.xiafs(kernel version 2.6.10)。
在LINUX系统中,系统访问可以使用的独立的文件系统,并不是通过设备描述符(例如一个驱动号或者一个驱动名),这些文件系统组成一个单一的树形结构,使所有可用的文件系统形成一个实体。LINUX挂载一个文件系统的时候,把新的文件系统加入这个单一的文件系统树中。所有的文件系统,无论什么类型,都是被挂载在一个目录上,挂载文件系统的文件掩盖该目录原有的内容。该目录被认为是挂载目录或挂载点。当挂载的文件系统被卸载后,该目录原有的文件重新可见。
LINUX文件有三种类型。
1.磁盘文件
它一般以磁盘为存储介质,也有例外,如romfs以EPROM之类的为介质。
2.设备文件
3.特殊文件
如/dev/null,FIFO文件,socket文件,/proc目录下的文件。