[深入理解文件系统之十] ext2中重要的数据结构

如果把文件系统比作一个大楼的话,它的数据布局方式和内部数据结构就是高楼的基础和框架,因此理解了它的数据布局方式和数据结构就能对数据结构有一个整体的认识。ext2作为一个经典的文件系统,不失作为一个号的入口

1.
ext2文件系统的数据拓扑结构:

2. ext2重要的数据结构如下

3.
ext2 数据结构内部关系

4.
Linux  文件系统中的cache:

inode
cache, Directory cache,buffer cache,

上面这些cache再加上内存里面的 file
table, 以及外面的supper
block构成了主要的meta
data.

Linux文件系统发展到2.4之后的变化包括:

1.数据流向page
cache

2.每一个打开的文件都有一个dcache引用,而且它自身在dcache中有一个条目;

3.类似SVR4
vnodeops的移植

4.
SMP-based 锁机制的实现,以便提高SMP系统性能

2.4x内核中和文件系统访问相关的主要数据结构如下:

时间: 2024-10-11 03:40:58

[深入理解文件系统之十] ext2中重要的数据结构的相关文章

[深入理解文件系统之十一] ext2中data和meta-data的数据一致性

ext2中data和meta-data的数据一致性 ext2 中的e2fsck e2fsck是ext2/ext3/ext4的文件系统数据一致性的检查工具.在ext2中,出现下面的三种情况时,有必要进行一致性检查: a. not cleanly unmounted; b. the maximum mount count has been exceeded; c. maximum time between checks has been exceeded. 考虑到文件系统变动带来的兼容性要求,ext

[深入理解文件系统之十二] ext3文件系统的挂载选项和journal

作为ext2的改进版本,ext3和ext2文件系统相比,最大的改进就是引入了journal功能,这在既提高了文件系统数据和元数据的一致性,又大大缩短了数据一致性检查和恢复的时间. ext3文件系统的mount 选项 只读模式:ro journal选项: journal=update/inum journal_dev=devmum norecovery/noload:不挂载日志分区,可能会挂载上inconsistent file-system. 数据模式:data=journal/ordered/

计算机底层知识拾遗(四)理解文件系统

操作系统的很多核心组件都是相互关联的,比如虚拟内存管理,物理内存管理,文件系统,缓存系统,IO,设备管理等等,都要放在一起来看才能从整体上理解各个模块到底是如何交互和工作的.这个系列的目的也就是从整体上来理解计算机底层硬件和操作系统的一些重要的组件是如何工作的,从而来指导应用层的开发.这篇讲讲文件系统的重要概念,为后面的IO系统做铺垫. 文件系统主要有三类 1. 位于磁盘的文件系统,在物理磁盘上存储文件,比如NTFS, FAT, ext3, ext4 2. 虚拟文件系统,在内核中生成,没有物理的

谁人能理解这三句对话中的心酸啊?!

问一神棍:“我什么时候才能不做程序猿?” 神棍掐指一算,答:”等你躺进棺材的时候.“ 我一把拉住神棍的双手,内牛满面的说:“大哥,谢谢噢,想不到我还能躺在棺材里,谢谢噢.” 这三句纯粹是我个人胡扯,不过说的也是真心话.别看貌似很搞笑,其实内里有很多心酸故事. 程序员?美其名曰软件工程师,其实腻,天朝下的程序员,小部分可称为码农(相对来说有点技术含量的),大部分可称为代码搬运工(每天就是 ctl+c / ctl+v  含金量几乎为0),只有大海捞针数量级的码神存在. 所以,福利待遇,薪金制度比“机

关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)

关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)   作者:王可利(Star·星星) HTML中 相对定位:position:relative; 绝对定位:position:absolut; 1.相对定位(div与div之间的关系)        body 标签其实就是一个大的盒子,在body里面设置 两个盒子div1 和 div2 ,而且两个盒子都给了它一个相对定位:position:relative;,那么div2 就会相对于 div1 排版,排在div1的下面,

ios--->OC中Protocol理解及在代理模式中的使用

OC中Protocol理解及在代理模式中的使用 Protocol基本概念 Protocol翻译过来, 叫做"协议",其作用就是用来声明一些方法: Protocol(协议)的作用 定义一套公用的接口(Public) @required:必须实现的方法,默认在@protocol里的方法都要求实现. @optional:可选实现的方法(可以全部都不实现) 委托代理(Delegate)传值 它本身是一个设计模式,它的意思是委托别人去做某事. 比如:两个类之间的传值,类A调用类B的方法,类B在执

对宏观的力学中连续介质假设的理解,以及对流体力学中平均速度的理解,以及流体与固体在力学上的本质区别

对宏观的力学中连续介质假设的理解:宏观的力学(如流体力学.弹塑性力学等)研究的对象是大量分子的集合,这时候每个集合构成一个个小微元体,整个对象就是由这无数个小微元体连续无间隙地构成.因为我们只需要关注每个集合上对象的性质,如密度.速度.应力.形变等,不需要进入集合内部去探寻分子间的作用力,所以每一个集合都可以看作是连续无间隙的,这样反映出的宏观性质与真实物体的宏观性质是一样的.只不过做数值积分或划分网格时dx.dy.dz等空间尺寸的自变量微分应当远大于该物质的分子平均自由行程,否则集合中的物理性

SLAM+语音机器人DIY系列:(二)ROS入门——8.理解roslaunch在大型项目中的作用

摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人"miiboo"中的大部分程序也采用ROS进行开发,所以本文就重点对ROS基础知识进行详细的讲解,给不熟悉ROS的朋友起到一个抛砖引玉的作用.本章节主要内容: 1.ROS是什么 2.ROS系统整体架构 3.在ubuntu16.04中安装ROS kinetic 4.如何编写ROS的第一个程序hello_world 5.编写简单的消息发布器和订阅器 6.编写简单的s

理解 Oracle 多租户体系中(12c,18c,19c)Grant授权作用域范围

本篇探讨以下几个问题:你可提前猜测下面6个场景语句中,哪几个授权可以成功执行? 1. 在CDB级别中对用户进行授权,不带 container 子句的效果: 2. 在CDB级别中对用户进行授权,带 container=all 子句的效果: 3. 在CDB级别中对用户进行授权,带 container=current 子句的效果: 4. 在PDB级别中对用户进行授权,不带 container 子句的效果: 5. 在PDB级别中对用户进行授权,带 container=all 子句的效果: 6. 在PDB