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

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个段:
      1. 文件头:通常包括魔数(magic number,表明这个文件是一个可执行文件),然后是文件中各段的长度、执行的起始地址和一些标志位
      2. 正文
      3. 数据
      4. 重定位位
      5. 符号位:用于调试

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

4.1.4 文件存取

  • 顺序存取
  • 随机存取文件(random access file)
    1. 每次read操作前都给出开始读文件的位置
    2. 用seek操作设置当前位置,在seek操作后,从这个当前位置顺序地开始读文件。(Unix和Windows)

4.1.5 文件属性

文件属性(attribute)和元数据(metadata)
这里写图片描述

4.1.6 文件操作

  1. create
  2. delete
  3. open
  4. close
  5. read
  6. write
  7. append
  8. seek
  9. get attributes
  10. set attributes
  11. rename

4.2 目录

4.2.1 一级目录系统

4.2.2 层次目录系统

4.2.3 路径名

  • 绝对路径名(absolute path name)
  • 当前工作目录
    每个进程都有自己的工作目录,改变之后不会互相影响,但是库过程例外所以尽可能不要改变库过程的工作路径。及时改变了也要改回原有的工作目录。
  • ./..
    当前路径和父路径

4.2.4 目录操作

  1. create
  2. delete
  3. opendir
  4. closedir
  5. readdir
  6. rename
  7. link
    这里说明下。连接技术允许在多个目录中出现同一个文件。这个系统调用指定一个存在的文件和一个路径名,并建立从该文件道路所指名字的连接。这样可以在多个目录中出现同一个文件。这种类型的链接为该文件的i节点(i-node)计数器的计数。有时称为硬链接(hard link)。使用两个文件名指向同一个内部数据结构(i-node)
    与硬链接相对于的符号连接。所建立的文件名指向了命名另一个文件的小文件。当使用这个文件名的时候使用该新名字启动进程。符号连接的优点在于可以跨越磁盘的界限,甚至可以命名在远程计算机上的文件。不过符号连接的实现不如硬链接那样有效率
  8. unlink
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值