您的位置:首页 > 其它

读书笔记-现代操作系统-4文件系统-4.1文件4.2目录

2016-07-12 22:18 459 查看

4. 文件系统

长期储存大量信息的三个基本要求:

1. 能够储存大量信息。

2. 使用信息的进程终止时,信息仍旧存在。

3. 必须能够使多个进程并发存取有关信息。

文件的概念:

文件是进程创建的信息逻辑单元。每个文件可以看成是一种地址空间。储存在文件中的信息必须是持久的。

总体上看,操作系统中处理文件的部分称为文件系统(file system)

4.1 文件

4.1.1 文件命名

文件是一种抽象机制,它提供了一种在磁盘上保存信息而且方便以后读取的方法。这种方法可以使用后不必了解储存信息的方法、位置和实际磁盘工作方式等有关细节。

命名规则:

不同系统有不同命名规则,不过所有的现代操作系统都允许用1至8个字母组成的字符串作为合法的文件名。

通常也支持数字和一些特殊字符。

许多文件系统支持长达255个字符的文件名。

不区分大小写——MS-DOS

区分大小写——UNIX

这里需要说明一下:Windows 95 是 MS-DOS的文件系统,即FAT-16。Windows98 改进了一下是FAT-32。但是Windows的 NT 2000 xp vista是基于NT操作系统的NTFS有很多不同的性质。虽然也支持FAT类的文件系统。这本书里有很多Unix和MS-系统的介绍。以后基本都省略不会记录。以Linux记录为主

文件拓展名

在某些系统中拓展名只是一种约定。操作系统并不强制采用他们。对于可以处理多种类型的文件,这样的约定是有用的。

4.1.2 文件结构

无结构的字节序列

操作系统不关心文件内容,见到的就是字节。含义在于用户程序解释。Unix和Windows都是这样的。

具有固定长度记录的序列

每个记录都有自己的内部结构。这是延续打孔时代大型计算机的风格

由一棵记录树构成

记录的固定位置上有一个键,按键进行排序。在一些商业系统上有效。

4.1.3 文件类型

通常至少有普通文件和目录,有些还有一些字符特殊文件(character special file)和块特殊文件(block special file)

普通文件

包含有用户信息。

目录

管理文件系统结构的系统文件。

字符特殊文件

和输入输出有关。用于串行IO设备

块特殊文件

用于磁盘类设备。

普通文件

一般分为ASCII文件和二进制文件。

ASCII文件

由多行正文组成。每行用回车或换行或回车换行组成。

ASCII文件可以打印,还可以用任何文本编辑器进行编辑。

还可用作输入输出,如shell管道

二进制文件

二进制文件具有特殊的内部结构,只有使用该文件的程序才能理解。通常由5个段:

文件头:通常包括魔数(magic number,表明这个文件是一个可执行文件),然后是文件中各段的长度、执行的起始地址和一些标志位

正文

数据

重定位位

符号位:用于调试

所有操作系统必须能够识别他们自己的可执行文件类型。这是为了用户非法执行或改变文件。

4.1.4 文件存取

顺序存取

随机存取文件(random access file)

每次read操作前都给出开始读文件的位置

用seek操作设置当前位置,在seek操作后,从这个当前位置顺序地开始读文件。(Unix和Windows)

4.1.5 文件属性

文件属性(attribute)和元数据(metadata)



4.1.6 文件操作

create

delete

open

close

read

write

append

seek

get attributes

set attributes

rename

4.2 目录

4.2.1 一级目录系统

4.2.2 层次目录系统

4.2.3 路径名

绝对路径名(absolute path name)

当前工作目录

每个进程都有自己的工作目录,改变之后不会互相影响,但是库过程例外所以尽可能不要改变库过程的工作路径。及时改变了也要改回原有的工作目录。

./..

当前路径和父路径

4.2.4 目录操作

create

delete

opendir

closedir

readdir

rename

link

这里说明下。连接技术允许在多个目录中出现同一个文件。这个系统调用指定一个存在的文件和一个路径名,并建立从该文件道路所指名字的连接。这样可以在多个目录中出现同一个文件。这种类型的链接为该文件的i节点(i-node)计数器的计数。有时称为硬链接(hard link)。使用两个文件名指向同一个内部数据结构(i-node)

与硬链接相对于的符号连接。所建立的文件名指向了命名另一个文件的小文件。当使用这个文件名的时候使用该新名字启动进程。符号连接的优点在于可以跨越磁盘的界限,甚至可以命名在远程计算机上的文件。不过符号连接的实现不如硬链接那样有效率

unlink
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息