ScholarGate
助手

文件系统

文件系统是操作系统的一个组件,它将持久数据组织成存储设备上的命名文件和目录,管理数据的布局、定位、保护和一致性。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

文件系统是操作系统用于在存储设备上存储、组织、命名、检索和保护持久数据的方法和数据结构,它向应用程序呈现文件和目录,同时管理设备上的布局和一致性。

Scope

本主题涵盖文件抽象和接口、目录结构、分配方法(连续、链接、索引)和空闲空间管理、元数据结构(如索引节点)、日志和崩溃一致性,以及缓冲区缓存。它阐述了操作系统如何将原始存储转换为可靠的命名空间。它不包括物理存储设备本身(辅助存储设备)和操作系统的内存管理(内存管理)。

Core questions

  • 文件是如何命名、组织成目录并被访问的?
  • 文件的数据如何在存储设备上分配和定位?
  • 文件系统保留了哪些元数据,以及如何管理空闲空间?
  • 文件系统如何在崩溃后保持一致性?

Key concepts

  • 文件抽象和接口
  • 目录和命名空间
  • 索引节点和元数据
  • 分配方法(连续、链接、索引)
  • 空闲空间管理
  • 日志和崩溃一致性
  • 缓冲区缓存
  • 访问控制和权限

Key theories

崩溃一致性
由于崩溃可能会中断多步骤更新,文件系统使用日志(在应用更改之前记录预期的更改)或写时复制等技术,以确保在发生故障后文件系统可以恢复到一致状态。

Mechanisms

文件系统将每个文件的逻辑字节流映射到设备上的块,并在索引节点和目录等元数据结构中记录映射和属性。分配方法决定了块如何分配和跟踪,空闲空间结构记录了可用块。缓冲区缓存将最近使用的块保存在内存中,日志或写时复制确保中断的更新使文件系统处于可恢复、一致的状态。

Clinical relevance

文件系统是几乎所有持久数据存储和检索的方式,因此它们的性能和可靠性对数据库、应用程序和用户都至关重要。围绕元数据、缓存和崩溃一致性的设计选择决定了故障后的持久性和恢复能力,而ext4、NTFS和ZFS等广泛使用的文件系统体现了这些权衡的数十年经验。

History

具有目录和索引节点模型的层次文件系统由UNIX在1970年左右建立。Berkeley快速文件系统改进了布局和性能,1990年代的日志和日志结构设计解决了崩溃一致性和写入性能问题。ZFS和Btrfs等写时复制文件系统后来集成了校验和和快照,以实现更强的完整性。

Debates

日志与写时复制在一致性方面的比较
日志在应用更改之前记录预期的更改,而写时复制将新数据写入新位置并原子地切换指针;两者都提供了崩溃一致性,但具有不同的性能、空间和完整性权衡,并且都用于现代系统。

Key figures

  • Ken Thompson
  • Dennis Ritchie
  • Marshall Kirk McKusick
  • Abraham Silberschatz

Related topics

Seminal works

  • silberschatz2018
  • tanenbaum2014os

Frequently asked questions

什么是索引节点(inode)?
索引节点是描述文件的元数据结构:它的大小、所有权和权限、时间戳以及指向存储其数据的存储块的指针。目录将人类可读的名称映射到索引节点,从而将文件的名称与其在设备上的表示分离。
日志如何防止崩溃?
在修改文件系统结构之前,日志文件系统会在日志中记录预期的更改。如果崩溃中断了更新,系统在重启时会重放或丢弃记录的更改,从而恢复一致状态,而不是让文件系统损坏。

Methods for this concept

Related concepts