v63.04鸿蒙内核源码分析(文件系统篇)用图书管理说文件系统百篇博客分析OpenHarmony源码鸿蒙内核源码分析

司马牛忧曰:“人皆有兄弟,我独亡。”子夏曰:“商闻之矣:死生有命,富贵在天。君子敬而无失,与人恭而有礼。四海之内,皆兄弟也。君子何患乎无兄弟也?”《论语》:颜渊篇

百篇博客系列篇.本篇为:

v63.xx鸿蒙内核源码分析(文件系统篇)|用图书管理说文件系统

本篇讲一个大型图书馆的管理方案,来说清楚计算机文件系统是如何管理的.如果读懂了这个方案,就基本了解了文件系统最底层的运行机制.

假如给你一个100*100米,高10米的场地用于建图书馆,放置全世界的图书档案,有以下几个运营要求:

请问如果是你会如何设计这个图书馆并让它即安全又高效的运行.

有个叫小易的小伙子提出了一种解决方案:

将以上信息简化成树形图表示如下:

统计区用于统计整个图书馆和各大区的全局信息,这种信息非常的重要,被使用频率极高,就像问我们国家有多少人口一样,马上就要答出来,而不是让各省逐级汇报下加起来再回复.

这个区和统计区一样,是因为要高效的管理图书区而衍生出来的区.目录区和图书区所分配单元格数量是在图书馆开业那天就定下来了,填满图书区单元格的真正的图书,而谁也不知道会有些什么图书要进进出出,图书大小决定了单元格的使用情况,每本书会占用一张索引页,所以最后一定会出现两种情况:

完全可以把索引表看成是一本书,书的内容是一页一页的索引页,每一页记录一本书的索引信息,1000页就可以记录1000本书的索引信息,这本书也是要装到格子里的.装这本书的单元格叫索引表块.如果按1000万本书计算就会生成1000万张索引页,每个格子1000页,那么1000万/1000=1万,也就是说索引表这本书,需要1万个单元格来存放.索引页也有全局唯一且统一的编号,注意这个编号和单元格的编号是两码事,这是很多人搞不明白文件系统的关键所在,二者编号范围在统计区有保存.

大分区中三个分区(统计区,目录区,图书区)的排列格式是固定的.,所以很容易计算出某个分区下索引区块的开始和结束位置.这里假定索引表块在分区相对位置的第3000个单元格开始.

此时外部人员可凭条形码来取书.流程如下:

如果屌丝小王也想像小张一样,将爱书论程序员的自我修养捐给图书馆,流程又是怎样的呢

很明显需要增加两部分内容:

注意虽然索引页编号是按顺序编的,一个号接一个号的在索引表这本书里.但是图书馆运营久了有些书是会被销毁的,例如:条形码为200的delphi程序设计这本书太老太久没人借站着位置就被销毁了,但擦涂的是第200索引页上的记录,第200页这张纸还是存在的,一直在199-201页之间.擦洗干净了谁管你以前是干什么的,又可用于记录新书的索引信息.那么如何能快速的知道哪些索引页和图书区单元格没有被使用呢答案是:索引页位图块和图书区单元格位图块

可以把索引页位图看成是一本书,书的内容是一页一页的位图页,存放这本书的单元格叫索引页位图块.将位图页画成100*100的如下格子

010101011010110101010101110101010101101011101011010101010110101101011010101010101010110101010101101011010110101010110101101011010110101101010101011001110101101011010110101011010101010110101101011010101010101010110101010101101011010110101010110101101011011110101101010101010101110101101011010110010110101101010101011001110101101011010110101011010101010110101101011010101010101010....每一位代表一个索引页的使用情况,上面说了1000万本图书对应就会有1000万张索引页,而一张位图页能标识100100=1万张索引页的使用情况.总的计算公式就是:1000万索引页/(100100)=1千张位图页/1000=1个索引页位图块也就是说只需要一个格子就能装下1000万的索引占用情况.

同样的道理适用于图书区单元格位图块,它记录的是图书区单元格的使用情况.位图是最简单最高效的记录两种状态是否变更的方法.

有了以上的基础,小王捐书的流程就简单了.

能否用小易的方案记录以下这种信息关系

├──金庸小说全集(条形码:322)│├──射雕英雄传(条形码:1245)│├──神雕侠侣(条形码:23456)│├──鹿鼎记(条形码:34567)其实也是可以的金庸小说全集虽看似一个目录,但他们在索引区没有太多的区别,金庸小说全集目录同样有一张索引页,内容如下:

名称:金庸小说全集/大小:1页 数据块号:1单元格大小:1000页目录条形码:322捆绑数:17权限:(0755/drwxr-xr-x)用户ID:(10/小张)组ID:(2/技术部)Access:2021-08-0322:11:49.021942010-0700Modify:2021-07-2318:53:38.656550199-0700Change:2021-07-2318:53:38.656550199-0700数据块位置:15映射关系小易的方案基本是文件系统的底层实现.理解了这套方案对后续基于源码理解鸿蒙文件系统的实现会变得简单,图书馆系统和计算机文件系统概念映射关系如下

小易方案->ext文件系统画格子画分区过程->格式化(formate)图书馆营业->挂载(mount)大A区->块组(group)统计区->超级块(superblock)分区描述列表->块组描述符(GDT)索引表块->索引表(indextable)索引页->索引节点(inode)条形码->索引编号(inode.id)图书区位图块->数据块位图(Blocksbitmap)索引页位图块->索引位图(inodebitmap)单元格->逻辑块(Blocks)目录区->索引块(inodeBlocks)图书区->数据块(dateBlocks)问题思考一个问题

按功能模块:

鸿蒙研究站(weharmonyos)|每天死磕一点点,原创不易,欢迎转载,请注明出处。若能支持点赞更好,感谢每一份支持。

THE END
1.本地电子图书:可知电子书本地电子图书:可知电子书 数据库名:可知电子书 开通方式:在校园网内可直接使用 本地网站:223.2.160.151 此数据库为馆藏电子图书,共有中文电子图书15755种,仅限校内使用。https://lib.xzhmu.edu.cn/info/1019/1973.htm
2.服务推荐系列(十)—图书馆文献传递服务此平台将湖南省内各高校图书馆的中外文各种文献整合于同一平台上,统一检索;读者可在湖南省文献资源共享与服务平上查询所有信息,对我校图书馆没有收藏的资源,可通过此平台快捷的进行EMAIL 文献传递获取。 途径二:SPIS(纬度)学术搜索 (1)远程访问地址:http://www.spischolar.com/ https://1821xhs.mh.chaoxing.com/engine2/general/37696062/detail?engineInstanceId=2597947&pageId=358371&typeId=5739165
3.怎么使用上海图书馆?押金100),书比较少,面积仅三个教室那么大,因为上图模式比较老旧,主打阅览,外借主要靠区图书馆(https://www.zhihu.com/question/427950816/answer/1549617011
4.我们到图书馆后没有找到需要的书存放位置,的翻译是:什么意思我们到图书馆后没有找到需要的书存放位置,问题补充:匿名 2013-05-23 12:21:38 We need the library not found after the book store location 匿名 2013-05-23 12:23:18 正在翻译,请等待 匿名 2013-05-23 12:24:58 Had not found the book after we the library which needs to deposithttp://www.zaixian-fanyi.com/fan_yi_2920494
5.新起点新气象你好,图书馆“小萌新”,入馆攻略请查收图书馆拥有各类藏书60万余册,并引进了国内先进的书库系统——智能立体书库,使同学们享受到快捷的借阅服务。 图书借阅/预约攻略 立体书库使用指南 预约书柜使用指南 通借通还 足不出校园/医院,享受北大图书馆、医学图书馆和附属医院图书馆图书送https://mp.weixin.qq.com/s?__biz=MjM5NzA5NTAwOQ==&mid=2650122109&idx=1&sn=dab78105741eea6ec16c51956ae05677&chksm=bf4c261965b26bd9728cfe7d869bb21487e1ca9c332e26c777c3e51701ee235c13c9ef3b972d&scene=27
6.请设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,每名作者有唯一的一个排名; (2)对每本图书进行编号,包括书号、ISBN号、书名、出版社、破损情况、存 放位置和定价,其中每一本书有唯一的编号,相同ISBN号的书集中存放,有相同的 存储位置,相同ISBN号的书或因不同印刷批次而定价不同; (3)读者向图书馆申请借阅资格,办理借书证,以后凭借书证从图书馆借阅图书。https://www.educity.cn/souti/309416F7.html
7.图书馆建筑设计规范20240404114946.docx图书馆建筑设计规范.docx,图书馆建筑设计规范 JGJ38-99 第1章 总则 第2章 术语 第3章 选址和总平面布置 3.1 选址 3.2 总平面布置 第4章 建筑设计 4.1 一般规定 4.2 藏书空间 4.3 阅览空间 4.4 书目检索、出纳空间 4.5 公共活动及协助服务空间 4.6 行政办公、业务及技术设备https://max.book118.com/html/2024/0404/5241222002011134.shtm
8.图书馆设计规范20230528.docx图书馆建筑承受综合布线系统时,应按其计算机应用及进展规划进展设计。工程建设标准化协会标准《建筑与建筑群综合布线系统工程设计标准》CECS72:97的有关规定。附录A藏书空间容书量设计估算指标藏书空间每标准书架容书量设计估算指标应符合表A.0.1的规定。公共图书馆图书高等学校图书馆少年儿童图书馆增减度类型藏公共图书https://m.renrendoc.com/paper/268639151.html
9.图书馆借阅管理制度(通用22篇)2、图书馆须建立图书总括登记、个别登记和注销登记三种帐册,做到帐帐相符、帐物相符。 3、图书分在使用国家标准《中国图书馆图书分类法》;期刊分类逐步使用《中国图书馆图书分类法期刊分类表》。图书著录应以国家标准《普通图书著录规划》为依据;期刊著录应以国家标准《连续出版物著录规则》为依据。 https://www.jy135.com/zhidu/1550093.html
10.图书馆怎么样给图书编码爱问知识人图书馆给图书编码可以分成四位:1、图书购买日期。2、该图书的类别编码。3、该图书的存放位置。4、这https://iask.sina.com.cn/b/newqzTV8yZn9C1.html
11.国家图书馆北平图书馆原为国立北平图书馆的所在地,建国后改称北京图书馆,现为中国国家图书馆古籍馆,为国家重点文物保护单位。进门是一片https://www.meipian.cn/4z88589i