美文网首页
文件系统

文件系统

作者: 骑猪满天飞 | 来源:发表于2021-03-16 11:15 被阅读0次

文件组织结构

硬盘的读写单位是扇区,为了避免频繁访问硬盘,操作系统会等到数据积累到一定大小,才进行硬盘读写操作。这个一定大小的数据称为

是文件系统的基本单位,因此文件会被拆分成多个块来存储(至少1个),文件的组织结构,就是如何将这些块组织在一起。

链式存储

FAT文件系统采用链式结构来组织块,在每块的最后存储下一个块的地址。

list.png
  • 优点

    文件可以不连续存储,提升了磁盘的利用率

  • 缺点

    当访问文件中的某个块时,必须从头开始遍历块节点。增加了访问频率。

inode 索引结构

UINX操作系统中使用另一种文件组织形式---inode 索引结构。此文件系统为每个文件都建立了一个索引表,保存文件中每个块地址。

inode.png

因此,在UINX文件系统中, 一个文件必须对应一个inode,磁盘中有多少文件,就要有多少inode。

为避免文件太大时,inode中索引项过多,索引表过大,UNIX将一部分放在索引表中,将其它放在另一个索引表中。

具体实现:

  1. 老索引表中共15个索引项,前12个索引项为文件的前12个块地址。

  2. 当文件大于12个块时,建立新的块索引表(一级间接索引表),此表可包含256个块地址,使用一个物理块来储存,该物理块地址存储在老索引表第13项。此时文件大小可达 (12 + 256)块。

  3. 当文件大于258时,建立二级块索引表(256项),此表中每项为一级索引表地址。文件大小可达(12 + 256 + 256 * 256),二级索引表地址,放入老索引表14项。

  4. 当文件大于(12 + 256 + 256 * 256)时,建立三级索引表。三级索引表地址,放入老索引表15项。

inode2.png

inode中也包含了文件的相关信息,如权限、创建时间等。为方便管理,分区中所有文件的inode通过一个大表格来维护--inode_table。

目录简介

在Linux中,目录和文件都用inode来表示,因此目录也是文件。普通文件inode指向的数据块为文件自己的数据。而目录文件inode指向的数据块为一个目录结构,目录结构中的每一项为目录项

目录项中包含文件名、inode编号和文件类型等。如:

directory.png

操作系统通过inode对文件进行操作,不关心文件名。而用户需要通过文件名,来进行文件操作。目录项将文件名与inode编号进行了绑定。

Linux中根目录‘/’是所有目录的父目录,当根目录数据库地址固定以后,所有文件都可以从根目录开始往下查询。

inode与目录项关系:

inode-directory.png

超级块

超级快用来保存整个文件系统的元信息,如inode数组地址,inode数组长度,数据块数量、根目录地址等。

超级块的位置是固定的,存储在个分区的第二个扇区,通常占用一个扇区的大小。

参考

《操作系统真相还原》

相关文章

  • 第8章 管理文件系统(不是很懂的一章)

    8.1 探索Linux文件系统 8.1.1 基本的Linux文件系统 ext文件系统扩展文件系统(extended...

  • 文件系统

    第12章:文件系统 文件系统概念文件系统和文件文件描述符目录文件别名文件系统种类 虚拟文件系统 文件缓存和打开文件...

  • 文件系统管理

    目录: 文件系统 创建文件系统 mkfs mke2fs 修改ext格式的参数 查看文件系统信息 修复文件系统 1、...

  • Linux运维之道(14)——Linux文件系统管理

    @(Linux)[文件系统管理] 1. 文件系统 1.1 各个操作系统上的文件系统 Linux文件系统 ext2 ...

  • Linux命令学习手册-fsck

    fsck [-aANPrRsTV][-t <文件系统类型>][文件系统...] 功能 检查文件系统并尝试修复错误。...

  • Docker镜像加载原理

    1.1 UnionFS(联合文件系统)UnionFS(联合文件系统): Union文件系统(UnionFS)是一种...

  • Android - 文件系统与Android11 分区存储

    *认识Android文件系统 *了解分区存储 *分区存储的适配 一、Android文件系统 Android文件系统...

  • Overlay文件系统

    Overlay文件系统 一个Overlay文件系统包含两个文件: 一个upper文件系统 一个lower文件系统l...

  • 6_Node 文件系统

    [toc] NodeJS 文件系统[fs 模块] 1.NodeJS 文件系统 NodeJS 文件系统被封装在fs模...

  • 4)镜像(1)-起源

    1. UnionFS(联合文件系统) UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分...

网友评论

      本文标题:文件系统

      本文链接:https://www.haomeiwen.com/subject/bmorcltx.html