计算机与操作系统:文件系统
文件命名
文件是一种抽象机制,它提供了一种在磁盘上保存信息并方便以后读写的方法,这种方法可以使用户不必了解存储信息的方法,位置和实际磁盘工作方式等有关细节。
文件的具体命名规则在各个系统中是不同的,不过所有的现代操作系统都允许1至8
个字母组成的字符串作为合法的文件名。通常文件名中也允许有数字和一些其它特殊字符,许多文件系统支持长达255个字符的文件名(windows 95/98使用的文件系统是FAT-16,windows 98对FAT-16进行了一些扩展,从而成为FAT-32。虽然FAT已经过时,但是大部分windows系统仍支持该文件系统。较新版本的操作系统已经拥有更先进的本地文件系统(NTFS))。
许多操作系统都支持使用圆点(.)将文件名分为两部分,其中圆点后的部分称为文件扩展名。扩展名可以表示文件的一些类型信息等。在linux中,文件扩展名只是一种约定,操作系统不会强制约束它。但是在windows系统中,文件扩展名被赋予了含义,用户可以在操作系统中注册扩展名,并为该扩展名指定处理程序,当用户双击该扩展名文件时,对应的处理程序就会启动并处理该文件。
文件结构及文件类型
文件可以有多种构造方式,下图为三种典型的构造方式。
很多系统系统都支持多种文件类型,如普通文件,块特殊文件,字符特殊文件,目录等。普通文件是包含用户信息的文件,目录是管理文件系统结构的系统文件。普通文件一般分为ASCII文件和二进制文件。ASCII文件的优势就是可以显示和打印,还可以用任何文本编辑器进行编辑,相反打印出来的二进制文件是无法理解的。通常二进制文件有一定的内部结构,使用该文件的程序才了解这种结构。
现代操作系统支持两种文件访问方式:顺序访问,随机访问(read操作时给出开始读文件的位置或用seek操作设置当前位置,然后从当前位置开始读文件)。
文件都有文件名和数据,另外操作系统还会保存一些其它与文件相关的信息。这些附加信息称为文件属性或元数据。
使用文件的目的是存储信息并方便以后的检索,对于存储和检索,文件系统提供了几个常用的系统调用:Create,Open,Close,Write,Read,Seek,Get Attribute,Set Attribute,Rename等。
目录
文件系统通常提供目录和文件夹用于记录文件的位置。目录系统最简单的形式就是在一个目录下面包含所有文件,这也是目录系统早期的表现形式,但随着多用户模式和用户文件的增多,单目录结构俨然是无法满足需求的,层次目录系统应运而生。
管理目录的常用系统调用:Create,Delete,Opendir,Closedir,Readdir,Rename,Link,Unlink等。
文件系统的实现
文件系统布局