高级OS(十) - 创建自己的文件系统
一.题目
创建一个文件系统,听起来不可能,实际上很简单,查看实验楼实验23,动手做起来,你的文件系统就出来了,但这个实验在实验楼无法做,需要在虚拟机或者阿里云上做,提交截图,并配文字,说明你对文件系统的认识和理解。
1.什么是文件系统中的块,你创建的文件系统块大小是多少?总共有多少个块?
2.什么是索引节点,一个索引节点占多少字节,你的文件系统总共有多少个索引节点?
希望在回答实验楼中的2个问题的基础上,还能深挖出更有价值的东西。
二.解答
实验
文件系统主要控制如何存储和检索数据,并且帮助组织存储媒介中的文件。如果没有文件系统,信息将被存储为一个大数据块,而且无法知道一条信息在哪结束,下一条信息在哪开始。文件系统通过为存储数据的文件提供名称,并且在文件系统中的磁盘上维护文件和目录表以及它们的开始和结束位置、总的大小等来帮助管理所有的这些信息。
在 Linux 中,当创建一个硬盘分区或者逻辑卷之后,接下来通常是通过格式化这个分区或逻辑卷来创建文件系统。这个操作方法假设你已经知道如何创建分区或逻辑卷,并且你希望将它格式化为包含有文件系统,并且挂载它。
安装mtd-utils
假设为系统添加一块新硬盘且在其上面创建一个叫/dev/sda1的分区,为验证linux内核已经发现分区。
创建文件系统,选择ext4
1.什么是文件系统中的块,你创建的文件系统块大小是多少?总共有多少个块?
文件系统的块是包含文件,二进制文件,dll,元数据等数据的数据段。块用于存储有关文件的信息。一些块包含有关文件系统的元数据,称为超级块。可以使用dumpe2fs工具列出所有块的信息。
我创建的文件系统块的大小是131072 x 4k。
总共有131072块。
2.什么是索引节点,一个索引节点占多少字节,你的文件系统总共有多少个索引节点?
索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。
一个索引节点一般占128字节或256字节,我的文件系统总共有32768个索引节点.