加入收藏 | 设为首页 | 会员中心 | 我要投稿 大同站长网 (https://www.0352zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

你管这破玩意叫文件系统?

发布时间:2021-04-01 11:47:16 所属栏目:传媒 来源:互联网
导读:意:块位图是管理可用的块,每一位代表一个块的使用与否。inode 位图管理的是一条一条的 inode,并不是 inode 所占用的块,比如上图中有 8 条 inode,则 inode 位图中就有 8 位是管理他们的使用与否。 4 现在,我们的文件很小,一个块就能容下。但如果需要两

意:块位图是管理可用的块,每一位代表一个块的使用与否。inode 位图管理的是一条一条的 inode,并不是 inode 所占用的块,比如上图中有 8 条 inode,则 inode 位图中就有 8 位是管理他们的使用与否。

4

现在,我们的文件很小,一个块就能容下。但如果需要两个块、三个块、四个块呢?很简单,我们只需要采用连续存储法,而 inode 则只记录文件的第一个块,以及后面还需要多少块,即可。这种办法的缺点就是:容易留下大这样瞬间就有 263 个块(多了 256 -1 个块)可用了,这种索引叫一级间接索引。如果还嫌不够,就再弄一个块做一级间接索引,或者做二级间接索引(二级间接索引则可以多出 256 * 256 - 1 个块)。我们的文件系统,暂且先只弄一个一级间接索引。硬盘一共才 1024 个块,一个文件 263 个块够大了。再大了不允许,就这么任性,爱用不用。好了,现在我们已经可以保存很大的文件了,并且可以通过文件名和文件大小,将它们准确读取出来啦!

5

但我们得精益求精,我们再想想看这个文件系统有什么毛病。比如,inode 数量不够时,我们是怎么得知的呢?是不是需要在 inode 位图中找,找不到了才知道不够用了?同样,对于块数量不够时,也是如此。要是有个全局的地方,来记录这一切,就好了,也方便随时调整,比如这样们继续精益求精。现在,块位图、inode 位图、inode 表,都是是固定地占据这块 1、块 2、块 3 这三个位置。假如之后 inode 的数量很多,使得 inode 表或者 inode 位图需要占据多个块,怎么办?或者,块的数量增多(硬盘本身大了,或者每个块变小了),块位图需要占据多个块,怎么办?程序是死的,你不告诉它哪个块表示什么,它可不会自己猜。很简单,与超级块记录信息一样,这些信息也选择一个块来记录,就不怕了。那我们就选择紧跟在超级块后面的 1 号块来记录这些信息吧,并把它称之为块描述符。样先通过 赘婿 这个目录文件,找到所在的数据块。再根据这个数据块里的一个个带有inode 信息的结构体,找到这个目录下的所有文件。完美!

7

不过这样的话,你想想看,如果想要查看一下赘婿这个目录下的所有文件(比如 ll 命令),将文件名和文件类型都展示出来,怎么办呢?就需要把一个个结构体指向的 inode 从 inode 表中取出,再把文件名和文件类型取出,这很是浪费时间。而让用户看到一个目录下的所有文件,又是一个极其常见的操作。所以,不如把文件名和文件类型这种常见的信息,放在数据块中的结构体里吧。

(编辑:大同站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读