《现代操作系统》读书笔记—文件系统篇
文件是进程创建的信息逻辑单元.一个磁盘一般含有几千甚至几百万个文件,每个文件是独立于其他文件的.文件不仅仅被用来对磁盘建模,以替代对随机存储器(RAM)建模.事实上,每个文件都是一种地址空间.
文件是受操作系统管理的,有关文件的构造、命名、存取、使用、保护、实现和管理方法都是操作系统设计的主要内容。从总体上看,操作系统处理文件的部分称为文件系统。
文件
文件命名
文件具体的命名规则在各个系统中是不同的,不过所有的现代操作系统都允许用1至8个字母组成的字符串作为合法文件名。通常文件名中也允许有数字和一些特殊字符。许多文件系统支持长达255个字符的文件名。
有的文件系统区分文件名大小写,有的不区分。UNIX是前一类,MS-DOS是后一类。
许多操作系统支持文件名用圆点隔开分为两部分,如文件名,prog.c.文件拓展名通常表示文件的一些信息.
在某些系统中(如UNIX),文件拓展名只是一种约定,操作系统不强迫采纳它.名为file.txt的文件也许是文本,这个文件名是给用户看的,而不是传递什么信息给计算机.
但是另一方面,C编译器可能要求它编译的文件以.c结尾,否则它会拒绝编译.
文件结构
文件有多种构造方式
- 字节序列
- 记录序列
- 树
所有UNIX,MS-DOS,Windows都采用字节序列的方式.
文件类型
UNIX和Windows都有普通文件和目录,UNIX还有字符特殊文件和块特殊文件.
普通文件一般分为ASCII文件和二进制文件.ASCII文件由多行正文组成.二进制文件通常有一定的内部结构,使用该文件的程序才了解这种结构.
文件存取
早期的操作系统只有一种文件存取方式:顺序存取.进程在这些系统中可从头顺序读取文件的全部字节或记录,但不能跳过某一些内容,也不能不按顺序读取.可以返回起点,需要时可以返回起点读多次.
当使用磁盘存储文件时,我们可以不按顺序地读取文件中的字节或记录,或者按照关键字而不是位置来存取记录.这种能够以任何次序读取其中字节或记录的文件称作随机存取文件.
文件属性
文件都有文件名和数据.另外,所有的操作系统还会保存其他与文件相关的信息,如文件创建的日期和时间、文件大小等.这些附加信息称为文件属性,有人称之为元数据.
一些常见的属性如下
属性 | 含义 |
---|---|
保护 | 谁可以存取文件,以什么方式存取文件 |
口令 | 存取文件需要的口令 |
创建者 | 创建文件者的ID |
所有者 | 当前所有者 |
只读标识 | 0表示读/写,1表示只读 |
隐藏标识 | 0表示正常,1表示隐藏 |