第四章 文件系统
4.1 文件
从用户
角度来考察文件
。用户如何使用文件
,文件
有那些特性。
4.1.1 文件命名
文件
一种抽象机制,提供了一种在磁盘上保留信息而且以后方便读取的方法。
有的文件系统区分大小写,有的则不区分
Unix
是前者,MS-DOS
是后者
FAT-16
,FAT-32
,NTFS
。FAT-16(File Allocation Table,文件配置表)
: Windows 95FAT-32
: Windows 98NTFS(New Technology File System,新技术文件系统)
:之后所有Win系列的文件系统
4.1.2 文件结构
文件
可以有很多构造方式,列出常用的三种方式。
字节序列
- 操作系统所见的就是字节,任何含义只在用户程序中解释。
Unix
和Winodws
都是用这种方式。
记录序列
- 读和写都是以
记录
为单位 80
列的穿孔卡片
还是主流的时候。80
个字符 = 一个记录。
现在已经没有这种方式了。
- 读和写都是以
树
- 类似与
map
,key-value
对,并利用平衡树
来维护key
值。
- 以便能快速查找
key
值。
- 以便能快速查找
- 在一些处理商业系统的大型计算机受到欢迎
- 类似与
4.1.3 文件类型
普通文件(regulr file):包含用户的信息
ASCII
文件由多行正文组成
Unix
系统每行以换行符(/n
)结束。Win
系统采用回车符(/r
)和换行符(/n
)。
优势
- 可以显示和打印,可以用文本编辑器编辑。
- 作为其他程序的输入或输出。
二进制
文件
- 具有一定的内部结构,使用该文件的程序才了解这种结构。
目录(directory):管理文件系统结构的系统文件。
4.1.4 文件存取
顺序存取(sequential access)
- 早期操作系统只有这一种方式。
- 比如你要读
adsadasdsaxdas
中第7位,必须从头开始找到第7位。 - 效率极低,但是适合
磁带
的工作方式。现在已被淘汰。
- 比如你要读
- 早期操作系统只有这一种方式。
随机存取文件(random access file)
- 能够以任何次序读取其中字节或记录的文件。
- 两种方式指示从哪里读取文件。
- 第一种::
read
操作中给出开始读文件的位置。 - 第二种 : 维护一个
文件位置
。利用seek
设置。
- 第一种::
4.1.5 文件属性
与文件相关的信息,如创建日期,大小等。这些信息称为文件属性(attribute)
,有些人称之为元数据(metadata)
。
- 前4个属性与文件保护相关。
- 标志位
- 时间字段
- 大小字段
4.1.6 文件操作
creat
delete
open
- 把文件属性和磁盘地址表装入内存。
close
- 关闭文件释放内部表空间。
read
write
append
seek
get attributes
set attributes
rename
4.1.7 使用文件系统调用的示例程序。
完成了copyfile abc xyz
的操作
4.2 目录
目录本身也是文件
。