清华操作系统课程(向勇、陈渝)笔记——第十二章(一)(基本概念:文件系统和文件,文件描述符,目录,文件别名,文件系统种类)

本文主要介绍了操作系统中的文件系统,包括文件系统的基本概念、文件描述符、目录结构、文件别名以及不同类型的文件系统。文件系统用于管理磁盘空间,提供文件命名、定位、保护和可靠性。文件描述符是操作系统内核中用于管理打开文件的结构,包含文件指针、打开计数等信息。目录用于组织文件,而文件别名如硬链接和软链接提供了多种访问同文件的方式。此外,文章还探讨了各种类型的文件系统,如磁盘文件系统、数据库文件系统和网络/分布式文件系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本概念

1. 文件系统和文件

1. 1 文件系统

一种用于持久性存储(掉电不会丢失数据,例如硬盘)的系统抽象。

1. 2 文件

文件系统中一个单元的相关数据在操作系统中的抽象。

1. 3 文件系统的功能

  1. (在磁盘角度)分配文件磁盘空间:
  • 管理文件块(哪一块属于哪一个文件)
  • 管理空闲空间(哪一块是空心啊的)
  • 分配算法
  1. (在用户角度)管理文件集合:
  • 定位文件及其内容
  • 命名:通过名字找到文件的接口
  • 文件系统类型
  1. 提供的便利及特征
  • 保护:分层来保护数据安全
  • 可靠性/持久性:保持文件的持久即使发生崩溃、媒体错误、攻击等。

1. 4 文件属性

名称、类型、位置、大小、保护、创建者、创建时间、最近修改时间

1. 5 文件头

  • 在存储元数据中保存了每个文件的信息
  • 保存文件的属性
  • 跟踪哪一块存储块属于逻辑上文件结构的哪个偏移

2. 文件描述符

操作系统内核中,为每个进程维护一打开文件表,一个打开文件描述符石这个表的索引,每一个项保存了该文件的信息。

需要元数据信息来管理打开文件:

  • 文件指针:指向最近的一次读写位置,每个打开了这个文件的进程都指向这个指针
  • 文件打开计数:记录文件打开的次数(允许不同的进程同时打开一个文件)。当最后一个进程关闭了文件时,允许将其从打开文件表中移除。
  • 文件磁盘位置:打开文件一般用于读或者写,需要知道文件在磁盘中的位置。
  • 访问权限:每个程序访问模式信息

2. 1 不同视角下

  • 用户视图:持久的数据结构
  • 系统访问接口:字节的集合
  • 操作系统内部视角:块的集合(块是逻辑转换单元,而山区是物理转换单元)

注意:在文件系统中的所有操作都是在整个块空间上进行的(即使每次只访问1字节的数据,也会缓存整个buffer的数据)

例如,当用户需要给他2-12字节空间时:操作系统会获取字节所在的块然后返回块内对应部分。

2. 2 用户怎么访问文件

在系统层面需要知道用户的访问模式

  • 顺序访问:按字节依次读取
  • 随机访问:从中间读取
  • 基于内容访问:通过特征

2. 3 文件内部结构

  • 无结构:单词、bit的结构
  • 简单记录结构:列、固定长度、可变长度
  • 复杂结构:格式化的文档(word、PDF)、可执行文件

2. 4 多用户系统中的文件共享

  • 访问控制

    谁能获得哪些文件的哪些访问权限

    访问模式:读、写、执行、删除、列举等

  • 文件访问控制列表ACL

    <文件实体,权限>

  • Unix模式

    <用户|组|其他人,读|写|可执行>

    用户ID识别用户/创建者,表明每个用户所允许的权限及保护模式

    组ID允许用户组成组,并指定了组访问权限

  • 指定多用户/客户如何同时访问共享文件

  • Unix文件系统语义

    对打开文件的写入内容立即对其他打开同一文件的其他用户可见。

    共享文件指针允许多用户同时读取和写入文件

  • 会话语义

    写入内容只有当文件关闭时可见

3. 目录

  • 文件以目录的方式组织起来

  • 目录是一类特殊的文件:每个目录都包含了一张表<name, pointer to file header>

  • 典型操作:搜索文件、创建文件、删除文件、枚举目录、重命名文件、在文件系统中遍历一个路径

  • 操作系统应该只允许内核模式修改目录

  • 名字解析:逻辑名字转换成物理资源的过程(遍历文件目录知道找到目标文件)

  • 当前工作目录:每个进程都会指向一个文件目录用于解析文件名

    允许用户指定相对路径来代替绝对路径

  • 挂载

    • 一个文件系统需要先挂载才能被访问
    • 一个未挂载的文件系统被挂载在挂载点上(挂载点类似于目录)

4. 文件别名

两个或多个文件名关联同一个文件。

  • 硬链接:多个文件项指向一个文件

  • 软链接:以“快捷方式”指向其他文件。该文件中的内容是真实文件的逻辑路径名。

  • 若删除一个有别名的文件这个别名将成为一个悬空指针

  • 如何保证没有循环:

    • 只允许到文件的链接,不允许到子目录的链接。
    • 每增加一个新的链接都用循环检测算法确定是否合理

5. 文件系统种类

  • 磁盘文件系统
    • 文件存储在数据存储设备上,如磁盘。
    • 例如:FAT、NTFS等
  • 数据库文件系统
    • 文件根据其特征是可被寻址的
    • 例如:WinFS
  • 日志文件系统
    • 记录文件系统的修改/事件
    • 例如:journaling file system
  • 网络/分布式文件系统
    • 例如NFS、SMB
    • 文件可以通过网络被共享:文件位于远程服务器,客户端远程挂载服务器文件系统,标准系统文件访问被转换成远程访问
    • 分布式文件系统的问题:客户端和客户端上的用户辨别起来很困难。
  • 特殊/虚拟文件系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值