图片无法显示,请右键点击新窗口打开图片

BiscuitOS 内存管理之分页大专题订阅入口

FAT(File Allocation Table) 文件系统是一种简单而古老的文件系统格式,最初由 Microsoft 开发,广泛用于早期的个人计算机和操作系统,如 MS-DOS 和早期版本的 Windows。FAT 文件系统在 Linux 系统中也得到了支持,用于与 FAT 格式的存储设备进行交互。以下是 FAT 文件系统的一些主要特点和概述:

  • 简单性: FAT 文件系统设计非常简单,易于实现和理解。它使用一种称为文件分配表(File Allocation Table) 的数据结构来跟踪文件和目录的存储位置
  • 兼容性: FAT 文件系统具有很好的跨平台兼容性,可以在多个操作系统中访问和使用。这使得它成为可移动存储介质(如 USB 闪存驱动器和 SD 卡)的常见文件系统格式
  • 文件名格式: FAT 文件系统最初使用的是 8.3 文件名格式,即文件名最多由 8 个字符组成,后面跟着一个点和最多 3 个字符的文件扩展名。这种格式在早期个人计算机上非常常见
  • 文件和目录权限: FAT 文件系统的权限管理相对简单,通常使用简单的读写执行标志来控制文件和目录的访问。它不支持像 Linux 上的更复杂的权限和 ACL(Access Control List) 系统
  • 不支持日志功能: 与一些现代文件系统(如 EXT4)不同,FAT 文件系统不提供原生的日志功能,这意味着在意外断电或系统崩溃时,可能需要较长时间来恢复文件系统,并且有一定的数据损坏风险
  • 不支持链接: FAT 文件系统不支持硬链接或符号链接,这在某些情况下可能限制了文件的组织和管理方式
  • 存储容量限制: 不同版本的FAT文件系统存在一些存储容量和文件大小的限制。例如,FAT12 支持的最大分区大小和文件大小较小,而 FAT32 允许更大的存储容量和文件大小

FAT 文件系统仍然在某些情况下广泛使用,特别是在可移动存储设备上,因为它的兼容性和简单性。然而,在现代操作系统中,如 Windows、Linux 和 macOS,更复杂和功能丰富的文件系统,如 NTFS、EXT4 和 HFS+ 等,通常用于处理更大容量的磁盘和提供更多高级功能. 在 Linux 中使用 FAT 需要打开内核宏 CONFIG_FAT_FS.

图片无法显示,请右键点击新窗口打开图片

FAT 文件系统提供映射文件的 mmap 接口使用了 generic_file_mmap 函数,该函数为文件映射的 VMA 提供的 vm_ops 接口为 generic_file_vm_ops,该数据接口实现了 fault 接口 filemap_fault,那么文件映射 VMA 发生缺页时 filemap_fault 函数会被调用.

图片无法显示,请右键点击新窗口打开图片

图片无法显示,请右键点击新窗口打开图片

BiscuitOS 内存管理之分页大专题订阅入口

图片无法显示,请右键点击新窗口打开图片