分类 : 15个相关结果 29次浏览

概述 Ext2文件系统将磁盘划分为大小相等的逻辑块进行管理,其默认大小是4KB(不做特殊说明,本文后续内容都采用该默认值)。文件系统逻辑块的大小在格式化的时候可以指定的。文件系统将磁盘划分为逻辑块就好像一个大厦划分为若干个房间,或者超市规划 …

读数据流程关于如何从用户态到Ext2文件系统公共部分(VFS)的流程本文不再详细介绍,这一部分与写流程基本一致,具体可以参考文末的相关文章介绍。如图是从用户态到Ext2文件系统的函数调用图,从图上可以看到对于Ext2文件系统在读数据流程中调 …

本文主要介绍一下OCFS2文件系统写数据的流程,以及数据在磁盘的布局情况。在OCFS2文件系统中,文件数据的管理分为2种模式,对于非常小的文件,可以直接放在inode节点所在的区域,也就是inode内部;而对于inode无法容纳的数据则通过 …

整体架构 OCFS2文件系统整体比较复杂,涉及的内核模块多达七八个。各个内核模块的名称及调用关系如图1所示。为了便于理解,我们对这个软件模块关系进行简化。简化后如图2所示。关于各个模块的详细分析我们放在后面,这样更利于理解。 简化后的软件栈 …

前文已述,Ext4文件系统将磁盘空间划分为若干组,以这一组为单位管理磁盘空间,这个组叫做块组。那么为什么要划分为块组呢?其主要原因是方便对磁盘的管理,由于磁盘被划分为若干组,因此上层访问数据时碰撞的概率就会大大减小,从而提升文件系统的整体性 …

在Linux操作系统的文件系统中,超级块相当于文件系统的地图。在超级块中保存着文件系统的属性信息、磁盘布局和资源使用情况等信息。文件系统通过超级块了解磁盘的布局,查找已用和可用资源等。超级块又相当于入口,文件系统的操作通常从超级块开始。 对 …

内核中的开发与用户态差异并不大,本文编写一个我们最常见到的冒泡排序算法,以说明该问题。 开发环境 为了避免将自己的操作系统搞挂,本文在虚拟机中进行开发,这样我们可以随便折腾。本文所用的环境信息如下。 操作系统:Ubuntu 16.04 Se …