浅谈EXT2文件系统----inode bitmap

news2024/10/8 19:43:21

Inode bitmap 是文件系统中的一种位图结构,用于管理 inode 的分配状态。它的主要功能是记录文件系统中哪些 inode 是空闲的,哪些已经被分配。

主要特点:

  1. 位图结构:Inode bitmap 是一个位数组,每一位对应一个 inode。该位的值表示相应的 inode 是否已经被使用。

    • 位为 0:表示该 inode 是空闲的,未分配。
    • 位为 1:表示该 inode 已被分配,用于存储文件或目录的元数据。
  2. 快速查找:通过 inode bitmap,文件系统可以快速找到空闲的 inode 以便为新文件或目录分配。此外,文件系统在回收 inode 时也可以通过该位图快速标记 inode 为可用。

  3. 管理 inode 空间:Inode bitmap 的大小取决于文件系统中 inode 的数量。位图的每一位对应一个 inode,因此它可以有效地管理 inode 的使用和释放。

  4. 与 Inode table 的关系:Inode bitmap 仅记录 inode 是否被使用,而不存储 inode 的详细信息。inode 的实际信息(如文件属性、权限、数据块指针等)存储在 Inode table 中。

总体来说,Inode bitmap 是一个帮助文件系统高效管理 inode 分配和回收的结构。

实例:

通过以下实验观察bitmap是如何变化的,每次创建一个全新的文件后,立刻观察对应inode bitmap变化

[root@node09 disk]# touch z
[root@node09 disk]# sync            #立刻将内存中的内容写入到磁盘上
[root@node09 disk]# touch zz
[root@node09 disk]# sync 
[root@node09 disk]# touch zzz
[root@node09 disk]# sync 
[root@node09 disk]# touch zzzz
[root@node09 disk]# sync 
[root@node09 disk]# touch zzzzz
[root@node09 disk]# touch zzzzzz
[root@node09 disk]# touch zzzzzzz
[root@node09 disk]# touch zzzzzzzz
[root@node09 disk]# sync 
[root@node09 disk]# touch q
[root@node09 disk]# sync 
[root@node09 disk]# touch qq
[root@node09 disk]# sync 

[root@node09 ~]# hexdump -s 8315k -n 1k ./disk.img -C
0081ec00  01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
0081ec10  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
0081ecf0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
0081f000

[root@node09 ~]# hexdump -s 8315k -n 1k ./disk.img -C
0081ec00  03 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
0081ec10  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
0081ecf0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
0081f000
[root@node09 ~]# hexdump -s 8315k -n 1k ./disk.img -C
0081ec00  07 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
0081ec10  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
0081ecf0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
0081f000

...

[root@node09 ~]# hexdump -s 8315k -n 1k ./disk.img -C
0081ec00  ff 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
0081ec10  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
0081ecf0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
0081f000
[root@node09 ~]# hexdump -s 8315k -n 1k ./disk.img -C
0081ec00  ff 01 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
0081ec10  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
0081ecf0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
0081f000
[root@node09 ~]# hexdump -s 8315k -n 1k ./disk.img -C
0081ec00  ff 03 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
0081ec10  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
0081ecf0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
0081f000

bitmap中的第一个字节(8bit) ,全为空

00000000

创建8个全新的文件分别为z、zz、zzz、zzzz、zzzzz、zzzzzz、zzzzzzz、zzzzzzzz后,bitmap中的第一个字节中的全0,由低位到高位逐个替换为1,对应的二进制变化分别为00000001、00000011、00000111、00001111、00011111、00111111、01111111、11111111;对应的10进制变化为1、3、7、15、31、63、127、255;对应的16进制即01、03、07、0f、1f、3f、7f、ff

11111111

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2197091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高效研究:Zotero的7个插件让你事半功倍

还在为海量文献管理头疼吗?还在为找不到合适的插件犯愁吗?别急,今天我就要带你解锁Zotero的终极武器 - 那些让你爱不释手的必备插件! 作为一个从小白到文献管理达人的过来人,我可以负责任地说:没有这些插件,你的Zotero只能发挥一半功力!安装了这些插件,你的效率绝对能飙升! …

字典树(单词查找树、Trie树)

题目 代码 #include <bits/stdc.h> using namespace std; const int N 1e510; int f[N][26], idx, cnt[N]; void insert(char str[]) {int p 0;for(int i 0; str[i]; i){int u str[i] - a;if(!f[p][u]) f[p][u] idx;p f[p][u];}cnt[p]; } int query(char str[]) …

相亲交友系统的商业模式探讨

在撰写关于相亲交友系统的商业模式探讨时&#xff0c;附带示例代码可能不太合适&#xff0c;因为软文通常是面向非技术读者&#xff0c;讲述商业模式、用户体验等方面的内容。不过&#xff0c;为了满足您的需求&#xff0c;我可以尝试结合一些简单的伪代码&#xff08;模拟代码…

CSS 3D转换

在 CSS 中&#xff0c;除了可以对页面中的元素进行 2D 转换外&#xff0c;您也可以对象元素进行 3D转换&#xff08;将页面看作是一个三维空间来对页面中的元素进行移动、旋转、缩放和倾斜等操作&#xff09;。与 2D 转换相同&#xff0c;3D 转换同样不会影响周围的元素&#x…

Cursor编辑器:10秒生成完美Git提交信息!

Cursor编辑器&#xff1a;10秒生成完美Git提交信息&#xff01; 亲爱的开发者们&#xff0c;是否还在为编写规范的Git提交信息而头疼&#xff1f;今天&#xff0c;就让我们一起揭开Cursor编辑器的神秘面纱&#xff0c;探索如何一键生成专业的Git Commit Message&#xff0c;让…

Android 电源管理各个版本的变动和限制

由于Android设备的电池容量有限&#xff0c;而用户在使用过程中会进行各种高耗电操作&#xff0c;如网络连接、屏幕亮度调节、后台程序运行等&#xff0c;因此需要通过各种省电措施来优化电池使用‌&#xff0c;延长电池续航时间&#xff0c;提高用户体验&#xff0c;并减少因电…

数据结构-八大排序之堆排序

堆排序 1.1 基础知识 原理&#xff1a; 1. 利用完全二叉树构建大顶堆 2. 堆顶元素和堆底元素进行交换&#xff0c;除堆底元素之外其余元素继续构建大顶堆 3. 重复2&#xff0c;直到所有元素都不参与构建 整个数组排序完成 完全二叉树&#xff1a; 数据从上到下&#x…

八大排序--05堆排序

假设数组 arr[] {5,7,4,2,0,3,1,6},请通过插入排序的方式&#xff0c;实现从小到大排列&#xff1a; 方法&#xff1a;①利用完全二叉树构建大顶堆&#xff1b; ②对顶元素和堆底元素进行交换&#xff0c;除堆底元素之外其余元素继续构造大顶堆&#xff1b; ③重复步骤②&…

2k1000LA iso 镜像的制作

问题: 已经有了buildroot ,内核也调试好了,但是没有loongnix 镜像。 首先是网上下载镜像,看看能不能用 首先是现在 网上的 iso 镜像进行烧写测试。 安装 7z 解压软件 进行U盘的烧写。 进行系统安装测试: <

视频剪辑软件推荐电脑版:这5款剪辑软件不容错过!

在视频剪辑领域&#xff0c;选择合适的软件至关重要。不同的软件各有千秋&#xff0c;有的简单易用&#xff0c;适合新手快速上手&#xff1b;有的功能强大&#xff0c;适合专业团队进行深度编辑。以下是一些电脑版视频剪辑软件的推荐&#xff0c;涵盖了从新手到专业级别的不同…

【RAG】HiQA:一种用于多文档问答的层次化上下文增强RAG

前言 文档领域的RAG&#xff0c;之前的工作如ChatPDF等很多的RAG框架&#xff0c;文档数量一旦增加&#xff0c;将导致响应准确性下降&#xff0c;如下图&#xff1b;现有RAG方法在处理具有相似内容&#xff08;在面对大量难以区分的文档时&#xff09;和结构的文档时表现不佳…

人才画像系统是什么?有哪些功能和作用?

人才画像系统是一种先进的人力资源管理工具&#xff0c;它运用大数据和人工智能技术对员工的多方面特征进行深度分析。系统通过汇聚个人的教育背景、工作经验、技能掌握、性格特质及行为数据等信息&#xff0c;结合数据挖掘和机器学习算法&#xff0c;构建出每位员工的数字化“…

openEuler 22.03 (LTS-SP3)上安装mysql8单机版

一、目标 在openEuler 22.03 (LTS-SP3) 上安装 mysql 8.0.23 单机版 二、安装 1、下载二进制包 MySQL :: Download MySQL Community Server (Archived Versions) 下载页面 下载链接 https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.23-linux-glibc2.12-x86…

新生培训 day1 C语言基础 顺序 分支 循环 数组 字符串 函数

比赛地址 b牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ C语言数据类型 字符 整型数 int 2e9 long long 9e18 浮点数 代码示例 /** Author: Dduo * Date: 2024-10-8* Description: 新生培训day1 */ #include <stdio.h>int main() {// 定义变量in…

【2024.10.8练习】宝石组合

题目描述 题目分析 由于是求最值&#xff0c;原本考虑贪心&#xff0c;但由于算式过于复杂&#xff0c;首先考虑对算式化简。 进行质因数分解&#xff1a; 因此: 不妨设对于每个&#xff0c;&#xff0c;则上式可化简为&#xff1a; 即 用Vene图也可以求出同样结果。 可是以…

DepthB2R靶机打靶记录

一、靶机介绍 下载地址&#xff1a;https://download.vulnhub.com/depth/DepthB2R.ova 二、信息收集 根据靶机主页显示&#xff0c;确认靶机ip为192.168.242.132 端口扫描 nmap -p- -A 192.168.242.132 发现只开放了8080端口 用dirsearch扫个目录 apt-get update apt-get …

胤娲科技:机械臂「叛逃」记——自由游走,再悄然合体

夜深人静&#xff0c;你正沉浸在梦乡的前奏&#xff0c;突然意识到房间的灯还亮着。此刻的你&#xff0c;是否幻想过有一只无形的手&#xff0c;轻盈地飘过&#xff0c;帮你熄灭那盏碍眼的灯&#xff1f; 又或者&#xff0c;你正窝在沙发上&#xff0c;享受电视剧的紧张刺激&am…

RKMEDIA画面质量调节-QP调节

QP是在视频采集编码过程中的量化参数&#xff0c;其值与画面质量成反比&#xff0c;即QP值越大画面质量越小&#xff0c;其具体调整方法如下&#xff1a; typedef struct rkVENC_RC_PARAM_S {RK_U32 u32ThrdI[RC_TEXTURE_THR_SIZE]; // [0, 255]RK_U32 u32ThrdP[RC_TEXTURE_TH…

一致性哈希算法解析

1. 哈希算法 想象我们的网络世界是一个巨大的环形摩天轮&#xff0c;上面有无数的座位&#xff0c;每个座位都代表了一个存储空间。现在&#xff0c;我们需要将三万张照片安排到这个摩天轮的三台机器上。这些机器我们可以想象成三个大车厢&#xff0c;每个车厢可以装载一部分照…

GIS专业的就业前景

地理信息系统&#xff08;GIS&#xff09;作为一门跨学科的领域&#xff0c;随着技术的发展和应用领域的拓宽&#xff0c;其就业前景日益广阔。GIS专业毕业生可以在多个行业中找到合适的职位&#xff0c;并且随着经验的积累&#xff0c;薪资和职业发展空间都相当可观。 1. 就业…