首页 > 技术文章 > 文件系统

duniqb 2019-06-06 20:37 原文

 

文件分类

在操作系统看来都是比特流的二进制,以人能否看懂区分为:

  • 二进制文件
  • 文本文件

open 指令

  • 需要文件路径和权限信息

文件怎么存储

  • 连续分配
    • 常见于光盘
  • File-Allocation Table:FAT
    • 适用于小文件
    • 文件分配表
    • 类链表结构,存储文件
    • 可靠性差,FAT 表一般存 2 份
    • 为了速度,FAT 会缓存在内存中
  • Indexed Allocation:inode
    • 索引表,自身也需要开销
    • 每个文件至少需要一个 inode,小文件越多,inode 越多
    • 使用分级索引:Multilevel index
    • 使用组合方式:Combined scheme

inode 中的硬链接、软连接

磁盘分为三个区域:目录区,inode区,数据区

  • 硬链接

当两个目录指向的 inode 是同一个时,硬链接实现,有一个计数器,记录指向该 inode 的记录数,为 0 时,回收 inode 和数据。

  • 软链接

文件系统结构

文件系统实现

删除文件时只删除目录

  • Log Structured File Systems:日志文件系统
    • NTFS,Ext3/4,ZFS,Reiserfs
    • 将所有操作记录到 log 区,并不立即执行,定时地执行操作,所以意外断电时,不会影响数据区
    • 写到 log 区时,因为是顺序的区域,性能很高,是同步写
    • 写到数据区时,较慢,是异步写

FAT32 比 FAT16 更大的进步在于支持长文件名

目录实现

分配方式

空闲管理

推荐阅读