0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文解读文件系统的作用性(一)index块设计

454398 来源:蜗窝科技 作者:驴肉火烧 2020-09-21 14:04 次阅读

距我将全套盗墓笔记成功保存在8MB空间里已经过去了19天58分钟32秒,我渐渐发觉更高、更快、更强的绝不限于奥运精神,也充分体现了人类贪婪的本质,无尽的需求催生出这光怪陆离的大千世界。

就在今天下午,我得到一个通知,要么继续使用连续的存储空间,但是只能有4MB,要么去使用不连续的存储空间,总量可以仍然是8MB,那一刻,我的内心反而是平静的,因为我知道,这就是现实,一个不够优秀的系统是无法满足各种刁钻的需求的,并且我并不想丢掉一半的盗墓笔记,所以我必须使用不连续的存储空间,一个不算坏的消息是,就算是不连续,但是每块最小也有2048字节,并且连续的存储空间是2048字节对齐的,还有什么好说的,撸起袖子加油干。

当时我的脑海中,浮现出了星空的图像,天顶中每颗闪烁的星代表的就是一段文字,我要怎么将它们串在一起呢?我想,首先要解决的是识别问题,即眼前的这颗星属于哪本书?是的,我需要星的索引信息,每条索引信息对应着一段可存储的空间,记录空间在硬盘中的偏移,长度,内容是属于哪本书,对应内容在书内的偏移,这样通过索引信息就可以在硬盘中找到存储着的盗墓笔记的片段了,于是有了如下的设计,

book_name用来存储书名,hd_ofs存储这段存储空间在硬盘中的偏移,file_ofs存储这段存储空间存储的内容在书中的偏移,chunk_len存储这段存储空间的长度,看起来是能工作的,那么这样的设计够不够好呢,答案显然是需要拿出工匠精神再来打磨一下了。

book_name,这里看起来很糟糕,如果书名很长则无法存储完整,如果书名很短则浪费了存储空间,这里真的需要存储一个书名吗?按照我的需求,盗墓笔记全套是8本书,那么第一本书,我这里记录1即可,依次则是2,3,4,...,我只需要数字就可以进行区分,于是新的设计出现了

但是,新的问题又出现了,我能够通过一个个的index对象找到数据块,但是我该如何找到这些index对象呢?由于每个index对象占用12字节,那么将index搓堆存在一个只存储index的数据块内,那么一个块能存170个index,就像下面这样

很好,现在有了一个index块,那么170个index最多只能映射(170 * 2048)字节(340KB)的内容,可我要存储的盗墓笔记不止这么点内容,所以还需要更多的index块

很好,现在有了更多的index块,我能通过index找到想要看的内容,但是index块也是不连续的,我要如何找到index块在哪里呢?其实,我对之前每个数据块填充170个index对象已经感觉难受了,因为170个index对象只使用了2040字节,这样一个数据块就有8字节的浪费,如果这8字节用来存储另一个index块在硬盘中的偏移位置,那么index块之间就能串联在一起,而我要做的就是找到那个入口

经过了两顿烧烤的谈判,我终于赢得了硬盘第1024个数据块的永久使用权,于是第1024数据块就成为了串起整部盗墓笔记的那个入口

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 硬盘
    +关注

    关注

    3

    文章

    1232

    浏览量

    56292
  • 文件系统
    +关注

    关注

    0

    文章

    272

    浏览量

    19671
  • 存储空间
    +关注

    关注

    0

    文章

    47

    浏览量

    10493
收藏 人收藏

    评论

    相关推荐

    鸿蒙轻内核源码分析:虚拟文件系统 VFS

    VFS(Virtual File System)是文件系统的虚拟层,它不是一个实际的文件系统,而是一个异构文件系统之上的软件粘合层,为用户提供统一的类 Unix 文件操作接口。由于不同
    的头像 发表于 02-18 14:50 127次阅读

    服务器数据恢复—ocfs2文件系统被误格式化为Ext4文件系统的数据恢复案例

    由于工作人员的误操作,将Ext4文件系统误装入到存储中Ocfs2文件系统数据卷上,导致原Ocfs2文件系统被格式化为Ext4文件系统。 由于Ext4
    的头像 发表于 12-04 10:49 229次阅读
    服务器数据恢复—ocfs2<b class='flag-5'>文件系统</b>被误格式化为Ext4<b class='flag-5'>文件系统</b>的数据恢复案例

    Linux的文件系统特点

    Linux的文件系统特点 文件系统要有严格的组织形式,使得文件能够以块为单位进行存储。 文件系统中也要有索引区,用来方便查找一个文件分成的多
    的头像 发表于 11-09 14:48 457次阅读
    Linux的<b class='flag-5'>文件系统</b>特点

    FAT32文件系统详细分析 (格式化SD nand/SD卡)

    文章目录 FAT32文件系统详细分析 (续FAT文件系统详解) 前言 格式化SD nand/SD卡 FAT32文件系统分析 3.1 保留区分析 3.1.1 BPB(BIOS Parameter
    发表于 11-03 17:55

    如何把文件系统烧到EMMC并从EMMC加载

    如何下载并从SD卡加载文件系统,提到过可以从EMMC引导系统,本篇将为您介绍如何把文件系统烧到EMMC,并从EMMC加载。
    的头像 发表于 10-30 16:06 1402次阅读
    如何把<b class='flag-5'>文件系统</b>烧到EMMC并从EMMC加载

    FAT32文件系统详细分析 (格式化SD nand/SD卡)

    文章目录 FAT32文件系统详细分析 (续FAT文件系统详解) 前言 格式化SD nand/SD卡 FAT32文件系统分析 3.1 保留区分析 3.1.1 BPB(BIOS Parameter
    发表于 10-18 16:58

    分布式文件系统的设计原理是什么?

    什么是分布式文件系统?分布式文件系统(DFS)是一种计算机文件系统,使用户能够从多个分布式位置存储和访问数据。它是在分布式环境中的不同计算机之间共享信息的一种方式。通过使用分布式文件系统
    的头像 发表于 10-17 17:35 410次阅读

    FAT16文件系统有什么缺点?

    FAT16文件系统有什么缺点
    发表于 10-09 07:27

    谈谈什么是文件系统 文件系统的功能与特点

    文件系统的应用非常广泛,同时种类也是特别的多,并且不同平台也会使用不同性能和特点的文件系统,比如查找效率、数据安全等级等等,如下面windows使用的NTFS:
    发表于 08-30 09:50 1421次阅读
    谈谈什么是<b class='flag-5'>文件系统</b> <b class='flag-5'>文件系统</b>的功能与特点

    适用于Linux的最佳通用文件系统 Linux文件系统的安装

    为您的计算机选择正确的文件系统可能是一个困难的过程。您可能会想知道:为什么文件系统很重要?有没有适用于安装 Linux 的特定文件系统? 事实证明,有两种文件系统在安装 Linux 时
    发表于 08-03 10:22 190次阅读
    适用于Linux的最佳通用<b class='flag-5'>文件系统</b> Linux<b class='flag-5'>文件系统</b>的安装

    FATFS文件系统原版文件下载

    FATFS文件系统原版文件下载
    发表于 06-25 09:02 0次下载

    Linux proc文件系统详解

    上一篇:《文件系统有很多,但这几个最为重要》介绍了procfs(进程文件系统的缩写),包含一个伪文件系统(启动时动态生成的文件系统),用于通过内核访问进程信息。这个
    发表于 06-15 11:42 778次阅读

    Linux平台/proc虚拟文件系统详解

    Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统(即虚拟文件系统),它只存在内存当中,而不占用外
    发表于 06-08 10:49 1076次阅读
    Linux平台/proc虚拟<b class='flag-5'>文件系统</b>详解

    FAT文件系统(2)#操作系统

    文件系统
    学习硬声知识
    发布于 :2023年05月25日 17:02:20

    FAT文件系统(1)#操作系统

    文件系统
    学习硬声知识
    发布于 :2023年05月25日 17:01:49