高级OS(十) - 创建自己的文件系统

一.题目

创建一个文件系统,听起来不可能,实际上很简单,查看实验楼实验23,动手做起来,你的文件系统就出来了,但这个实验在实验楼无法做,需要在虚拟机或者阿里云上做,提交截图,并配文字,说明你对文件系统的认识和理解。
1.什么是文件系统中的块,你创建的文件系统块大小是多少?总共有多少个块?
2.什么是索引节点,一个索引节点占多少字节,你的文件系统总共有多少个索引节点?
希望在回答实验楼中的2个问题的基础上,还能深挖出更有价值的东西。

二.解答

实验

    文件系统主要控制如何存储和检索数据,并且帮助组织存储媒介中的文件。如果没有文件系统,信息将被存储为一个大数据块,而且无法知道一条信息在哪结束,下一条信息在哪开始。文件系统通过为存储数据的文件提供名称,并且在文件系统中的磁盘上维护文件和目录表以及它们的开始和结束位置、总的大小等来帮助管理所有的这些信息。
    在 Linux 中,当创建一个硬盘分区或者逻辑卷之后,接下来通常是通过格式化这个分区或逻辑卷来创建文件系统。这个操作方法假设你已经知道如何创建分区或逻辑卷,并且你希望将它格式化为包含有文件系统,并且挂载它。
安装mtd-utils
在这里插入图片描述
假设为系统添加一块新硬盘且在其上面创建一个叫/dev/sda1的分区,为验证linux内核已经发现分区。
在这里插入图片描述

创建文件系统,选择ext4
在这里插入图片描述
在这里插入图片描述

1.什么是文件系统中的块,你创建的文件系统块大小是多少?总共有多少个块?

文件系统的块是包含文件,二进制文件,dll,元数据等数据的数据段。块用于存储有关文件的信息。一些块包含有关文件系统的元数据,称为超级块。可以使用dumpe2fs工具列出所有块的信息。
我创建的文件系统块的大小是131072 x 4k。
总共有131072块。

2.什么是索引节点,一个索引节点占多少字节,你的文件系统总共有多少个索引节点?

索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。
一个索引节点一般占128字节或256字节,我的文件系统总共有32768个索引节点.

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在NTFS文件系统中,每一个文件或目录都拥有一个MFT记录,MFT记录中记录了文件或目录的基本信息,对于普通文件来说,一般拥有文件序号,文件名,创建时间,文件大小,文件属性,文件数据地址索引等基本文件信息,而一个目录除了拥有基本文件信息,还拥有其目录下的文件索引项信息,文件与其父目录之间通过该文件的MFT记录中的父目录信息和目录中的索引项来建立隶属关系,这两种信息唯一地确定了文件与父目录之间的对应关系,由此可知,要在一个指定目录下生成一个文件,除了要创建目标文件本身的MFT记录,还需在其父目录的MFT记录或者其索引分配中建立目标文件的索引。在NTFS系统中,文件索引是一个比较复杂的内容,文件的索引采用了树型结构,这给NTFS系统带来了查找文件速度快的优点,但却给当索引结点增加或减少时,如何维护树的平衡带来了难题。在NTFS系统中,小目录的索引直接存放在目录本身MFT记录的90H属性中,而大目录的索引则需另外开辟新的索引分配区来存放相关的索引。原程序中只考虑了小目录的情况,即将文件的索引直接存放在90H属性中,并不考虑大目录的索引情况。除此之外,NTFS系统对于每一个文件操作都会写入日志文件中,以便一致性检查,但由于这方面的内容尚未研究清楚,本程序中也未涉及这方面的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值