0x17 文件系统实现

一、文件系统

文件系统

文件系统是操作系统中负责管理和存储文件信息的模块。它提供了在存储设备上组织文件的方法和数据结构。

  • 系统角度
    ①对存储设备的空间进行组织和分配
    ②负责文件检索、读写等操作
    ③目标:存取速度和存储空间效率
  • 用户角度
    ①提供按名存取的文件访问机制
    ②提供了文件的组织管理
    ③目标:方便的文件存取机制

文件系统的层次架构

如下图,逻辑文件系统、文件组织模块、基本文件系统构成了文件系统。
在这里插入图片描述
I/O控制

  • 设备驱动程序(Device Drivers)
  • 中断

设备驱动程序

  • 控制I/O设备运行
  • 向硬件控制器发送专门控制命令
  • 操作系统通过设备驱动程序控制设备
基本文件系统

物理块读写
向设备驱动程序发送控制命令
例如:read drive 1,cylinder 72,track 2,sector 10,into memory location 1060

文件组织模块
  • 管理文件、逻辑块和物理块
  • 把文件的逻辑地址转换为物理地址
  • 管理空闲空间
  • 为文件分配物理块
逻辑文件系统
  • 管理文件系统中的元数据
    除了文件数据外的所有结构数据
  • 文件按名存取
  • 文件目录组织管理
  • 把文件名转换为文件ID,文件句柄
  • 管理FCB
  • 存储保护

文件系统实现

物理块(簇):一个或多个(2n)扇区组成,基本文件读写单位。

(物理)分区:磁盘分割成若干个独立的空间,每个空间称为分区
两大类分区:主分区和扩展分区;
主分区:能够安装操作系统的启动分区;
扩展分区:不能直接使用,必须分成若干逻辑分区。

卷(逻辑磁盘):磁盘上的逻辑分区,建立在物理分区上。
一般每个卷可以建立一个文件系统。

一个硬盘至少有一个主分区,最多4个,扩展分区可以没有,最多1个。

两种文件系统:
磁盘文件系统、内存文件系统。

磁盘文件系统

  1. 引导控制块
    包含了系统引导操作系统的各种信息,只有安装操作系统的分区才有。
    在Unix文件系统,UFS:引导块;
    在Windows文件系统,NTFS:分区引导扇区。

  2. 分区控制块
    包含分区信息,例如总的块数、空闲块数、块大小等信息;
    UFS:超级块;
    NTFS:主控文件表。

  3. 目录和FCB

  4. 用户文件
    在这里插入图片描述
    MBR(主引导记录)存储在硬盘的0柱面、0磁头、1扇区,存储主引导程序等信息,在计算机启动时运行。
    分区表存储了硬盘的分区信息,在这个例子中,有4个分区,在UFS中,主分区的结构如图所示,在Windows的文件系统FAT中,主分区的文件系统结构如图所示。

内存文件系统

由于从磁盘检索和读取文件很耗时,需要在内存建立一个管理使用中的文件的文件系统,通过缓冲技术来提高文件访问的性能,这就是内存文件系统。

包括:

  • 分区表:所有安装分区信息
  • 目录缓冲结构:保存最近访问的目录信
  • 系统打开文件表
  • 进程打开文件表

文件操作需要用到内存文件系统;
目的:通过缓冲技术提高文件系统性能。

虚拟文件系统

目的:为了支持多个文件系统,引入虚拟文件系统(VFS),把多个文件系统整合成一个目录结构,为用户屏蔽了各个文件系统的差异。

  • 提供了一种面向对象的方法来实现文件系统;
  • 为不同类型的文件系统提供了接入VFS的接口;
  • 为用户提供了统一的系统调用接口(API)。

文件系统接口(File system interface)

  • 统一的应用程序访问文件的接口
  • 如&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值