首页 > 其他分享 >文件系统简介

文件系统简介

时间:2023-01-25 17:12:49浏览次数:43  
标签:文件 数据 简介 文件系统 索引 inode 目录

inode,间接块索引表,文件控制块FCB

由于硬盘是低速设备,为了避免频繁访问硬盘,等数据积攒到一定大小才一次性访问硬盘,足够大小数据就称为块。采用索引结构的文件系统,文件中的块依然可以分散到不连续的零散空间,保留了磁盘高利用率的优点,文件系统为每一个文件的所有块建立了一个索引表,索引表就是块地址数组,每个数组元素就是块的地址,数组元素下标就是文件块的索引。包含此索引表的索引结构就是inode,用来索引跟踪一个文件的所有块。

文件系统为实现文件管理方案,必然会创造出一些辅助管理的数据结构,只要用于管理、控制文件相关信息的数据结构都称为FCB。

目录项与目录

 (1)每个文件都有自己单独的 inode,inode是文件实体数据块在文件系统上的元信息。

(2)所有文件的inode集中管理,形成inode数组,每个inode 的编号就是在该 inode 数组中的下标。

(3)inode 中的前 12个直接数据块指针和后3个间接块索引表用于指向文件的数据块实体。

(4)文件系统中并不存在具体称为“目录”的数据结构,同样也没有称为“普通文件”的数据结构,统一用同一种 inode 表示。inode 表示的文件是普通文件,还是目录文件,取决于inode 所指向数据块中的实际内容是什么,即数据块中的内容要么是普通文件本身的数据,要么是目录中的目录项。

(5)目录项仅存在于 inode 指向的数据块中,有目录项的数据块就是目录,目录项所属的 inode 指向的所有数据块便是目录。

(6)目录项中记录的是文件名、文件inode 的编号和文件类型,目录项起到的作用有两个,一是粘合文件名及 inode,使文件名和 inode关联绑定,二是标识此inode所指向的数据块中的数据类型(比如是普通文件,还是目录,当然还有更多的类型)。

(7)inode是文件的“实质”,但它并不能直接引用,必须通过文件名找到文件名所在的目录项,然后从该目录项中获得inode 的编号,然后用此编号到inode数组中去找相关的 inode,最终找到文件的数据块。

超级块与文件系统布局

超级块是保存文件系统元信息的元信息的固定地方,它是在为分区创建文件系统时创建的,所有有关文件系统元信息的配置都在超级块中。

文件系统布局如下

 

 

标签:文件,数据,简介,文件系统,索引,inode,目录
From: https://www.cnblogs.com/LCAB/p/17067036.html

相关文章

  • Knative简介
    Knative一个很重要的目标就是制定云原生、跨平台的Serverless编排标准。Knative是通过整合容器构建(或者函数)、工作负载管理(和动态扩缩)以及事件模型来实现Serverless标准的......
  • Flask框架简介、安装及Hello World程序运行
    一、Flask简介Flask诞生于2010年,是用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架。Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用......
  • spring boot——请求与参数校验——重要概念——Lombok初步简介
                 常用注解下面介绍一下常用的几个注解:@Setter注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段......
  • FPGA:硬件描述语言简介
    ⭐本专栏针对FPGA进行入门学习,从逻辑代数等基础知识讲起,结合VerilogHDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。......
  • .NET Core 、 .NET 5、.NET 6和.NET 7 简介及区别
    .NET是一种用于构建多种应用的免费开源开发平台,可以使用多种语言,编辑器和库开发Web应用、WebAPI和微服务、云中的无服务器函数、云原生应用、移动应用、桌面应用、Windows......
  • 【Linux】守护进程后台训练 & screen命令简介
    ✨守护进程如果你通过ssh登录或以ssh为基础的工具软件(比如XShell、PyCharm,VSCode等,可以用这类工具调试,但是最终长时间运行时请以守护进程的方式执行命令)进行远程执行程序......
  • 开发常用注解简介
    Spring系预备理解bean注入,自动装配首先了解一下IOC操作Bean管理,bean管理是指(1)spring创建对象(2)spring注入属性。当我们在将一个类上标注@Service或者@Controller或@Com......
  • 1588_AURIX_TC275_PMU简介
    全部学习汇总:​​GreyZhang/g_TC275:happyhackingforTC275!(github.com)​​PMU是编程存储单元的缩写,但是落实到了具体的硬件模块上其实是一个Flash模块。在TC275中,只......
  • Kettle简介
    一、Kettle基本介绍Kettle(现更名为PentahoDataIntegration-Pentaho)是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装。它允许你管理来......
  • syslinux引导扇区不支持NTFS文件系统
      在使用UltraISO制作ubuntu启动U盘时遇到如下报错 001、问题     以下是解决方法:002、  003、  004、  005、 ......