一步一步粗谈linux文件系统(三)----超级块(superblock)【转】

news/2024/7/2 22:34:39

本文转载自:https://blog.csdn.net/fenglifeng1987/article/details/8302921

超级块是来描述整个文件系统信息的,可以说是一个全局的数据结构,可以把它理解成文件系统的心脏

 

比较简单的文件系统中(如ramfssysfs),超级块的初始化大致分三步:

1sget

2fill_super

3simple_set_mnt

 

sget

/**

 *        sget        -        findor create a superblock

 *        @type:        filesystemtype superblock should belong to

 *        @test:        comparisoncallback

 *        @set:        setupcallback

 *        @data:        argumentto each of them

 */

struct super_block*sget(struct file_system_type*type,                //得到一个超级快superblock

int(*test)(struct super_block *,void *),

int(*set)(struct super_block *,void *),

void*data)

这个函数的意思其实很简单明了,就是为超级块alloc一块空间出来,并有主流的初始化操作。

fill_super

这个各个文件系统有着自己的填充函数,but万变不离其中的是,sb->s_opsb->s_root(dentry),还有一个inode。其中inode中又会有各个系统特有的操作,i_fopi_op,i_mapping。这个文件系统第一个inode,dentry,后续的很多操作都是基于这一步开始的。linux万物皆文件,文件皆目录(dentry),目录指节点(inode),其实很多操作皆出自inode,切记切记。

将文件系统中的操作大致赋值定型,个人觉得,如果要深入了解某个文件系统的话,这部分过程得用笔记记下来,然后接下来调用操作的时候,能一目了然。这部分真的很重要的。

simple_set_mnt:

intsimple_set_mnt(struct vfsmount *mnt, struct super_block *sb)

{

mnt->mnt_sb= sb;

mnt->mnt_root= dget(sb->s_root);

return0;

}

这部分很简单,因为最终需要返回的是mnt,而非sb,所以要将sb挂到mnt上。


http://lihuaxi.xjx100.cn/news/272479.html

相关文章

使用Photoshop制作网页模板

用图层组管理网页元素首先是在Photoshop中制作好网页的框架。网页中的元素有很多, 像Banner条、文本框、文字、版权、Logo、广告等。尽量把这些相对独立的元素放在不同的图层中,这样方便以后的再编辑。不过图层一多,就 显得很凌乱&#xff0c…

技巧:利用 Python 实现多任务进程

一、进程介绍 进程:正在执行的程序,由程序、数据和进程控制块组成,是正在执行的程序,程序的一次执行过程,是资源调度的基本单位。 程序:没有执行的代码,是一个静态的。 二、线程和进程之间的…

【Python基础】Python的深浅拷贝讲解

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达前言在很多语言中都存在深浅拷贝两种拷贝数据的方式,Python中也不例外。本文中详细介绍了Python中的深浅拷贝的相关知识,文章的内容包含&#xff1…

选型必看:RabbitMQ 七战 Kafka,差异立现

点击上方“方志朋”,选择“设为星标”回复”666“获取新整理的面试文章作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”。基于某些原因, 许多开发者会把这两种技术当做等价的来看待…

20分钟+1080显卡,能跑多复杂的模型?

点击上方“视学算法”,选择加"星标"或“置顶”重磅干货,第一时间送达贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI20分钟生成复杂的艺术作品,而且还是用英伟达上上代的1080显卡?现在神经网络上手门槛这么亲民了吗&a…

综述:持续感知系统在边缘计算的应用

作者 | 李桂宏、乔飞来源 | 《微纳电子与智能制造》随着边缘计算技术的兴起,各种各样的感知系统给人类带来了便捷高效的生活。以日常使用的手机为例,工程师为其置入了各种各样的传感器,并通过运行其上的机器学习算法,部署了很多便…

WinForm 实现验证码

private void CheckIdentifyingCode() { Random r new Random(); string str ""; for (int i 0; i < 5; i) { int a r.Next(0, 10); str a;//将数字连接到一块 } Bitmap bm new Bitmap(150, 90);//创建位图对象 Graphics g Graphics.FromImage(bm);//在bm中…

今日宇宙最热科技:人工智能可预测死亡时间,马斯克拿下美空军1.3亿合同!...

今日全宇宙最热科技有&#xff1a;SpaceX拿下1.3亿美空军合同&#xff0c;马斯克又双叒叕要搞事情&#xff01;人工智能可以预测死亡时间了&#xff0c;就问你怕不怕&#xff01;英特尔CEO因曾与员工恋爱被调查发现而主动辞职&#xff0c;自由恋爱也是很不容易&#xff01;阿里…