当前位置: 首页 > news >正文

波奇学Linux:文件系统

磁盘认识

磁盘被访问的基本单元是扇区-512字节。

磁盘可以看成多个同心圆,每个同心圆叫做磁道,多个扇区组成同心圆。

我们可以把磁盘看做由无数个扇区构成的存储介质。

要把数据存到磁盘,先定位扇区,用哪一个磁头,哪一个磁道。

磁盘抽象

磁盘可以抽象成线性结构,基于扇区的数组,任意一个扇区都有抽象地址LBA,相当于数组下标。

磁盘寻址是CHS(磁道,磁头,扇区),通过扇区的抽象地址LBA到扇区的具体物理位置。

磁盘也有寄存器

文件系统

磁盘划分

 bootblock保存与开机相关的文件,剩余的空间可以划分为多个block group结构。

Superblock:文件系统对应信息

DataBlock:存文件内容区域,以块形式呈现,常见的是4kb大小-文件系统的块大小

inodeTable:有多个inode,单个文件的所有属性,主要是128字节,一个文件一个inode,inode天然有唯一的编号,只在自己的分区中使用。

在Linux用inode标识编号

struct inode

{

inode number

文件类型

权限

引用计数

拥有者

所属组

ACM时间

int block[NUM]

}

文件对应在DataBlock数据块编号保存在block数组中

数据blocks是前12个位置是直接索引,对应的下标的数据块是文件本身内容,后面的是间接索引,保存的下标对应的数据块文件内容的对应的直接索引,最后一个是三级索引,保存的下标对应的数据块是二级索引。

blockBitmap表示Datablocks哪些数据块中被使用,比特位位置和块号映射,比特位内容,表示该块有没有被使用。

inodeBitmap:比特位和inode的编号映射起来,比特位内容inode是否有效,inode的有效与否表示文件是否删除。

GroupDescriptorBitmap:描述整个组基本的分类使用情况。

SuperBlock:整个分区的文件系统情况,分区包含多个组。如分区被分为多少个组,每个组的大小。SuperBLock不会在每个组都存在。

Inode

一个文件对应一个inode,inode对应有自己编号,分区内有效。

Inode的作用

新建文件:inodeBitmap申请inode,0置1,在inodeTable填写文件属性,在blockBitmap中寻找空白数据块,输入数据后,修改blockBitmap。

系统是如何知道Inode编号?

文件名是如何和Inode映射起来?

目录也是文件,也有自己的Inode。目录也有数据块存放文件名和inode的映射关系。

同一个目录下文件名不能重复,同名文件导致映射冲突问题。

目录下,没有w权限,无法创建文件,无法把inode和文件名写到目录文件的数据块。

目录下没有r权限,无法查看文件,没有读权限就不能读取到目录文件数据块

目录下,没有x,无法进入这个目录,无法读取目录inode,无法改变环境变量,改变位置关系。

如何知道目录inode?递归回根目录,再往下找。

寻找文件,先递归找到根目录,再找到对应目录,对应文件。

Linux的dentry缓存,保存最常用的路径。

相关文章:

波奇学Linux:文件系统

磁盘认识 磁盘被访问的基本单元是扇区-512字节。 磁盘可以看成多个同心圆,每个同心圆叫做磁道,多个扇区组成同心圆。 我们可以把磁盘看做由无数个扇区构成的存储介质。 要把数据存到磁盘,先定位扇区,用哪一个磁头,…...

项目访问量激增该如何应对

✨✨ 欢迎大家来到喔的嘛呀的博客✨✨ 🎈🎈希望这篇博客对大家能有帮助🎈🎈 目录 引言 一. 优化数据库 1.1 索引优化 1.2 查询优化 1.3 数据库设计优化 1.4 事务优化 1.5 硬件优化 1.6 数据库配置优化 二. 增加服务器资源…...

【Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)】

Linux环境基础开发工具的使用yum、vim、gcc、g、gdb、make/Makefile Linux软件包管理器- yumLinux下安装软件的方式认识yum查找软件包安装软件如何实现本地机器和云服务器之间的文件互传卸载软件 Linux编辑器 - vimvim的基本概念vim下各模式的切换vim命令模式各命令汇总vim底行…...

幻兽帕鲁官方更新了,服务器端怎么更新?

幻兽帕鲁官方客户端更新了,那么它的服务器端版本也是需要更新的,不然版本不一致的话,就不能进入游戏了。 具体的更新方法有两种,一是手动输入命令进行更新。第二种是在面板一键更新。 无论你是在阿里云或者腾讯云购买的一键部署…...

axios-retry 响应异常

最近项目中遇到 axios 异步请求异常中断, 错误码为 “ECONNABORTED” 奇怪的是排查前端代码并没有发现有主动调用 abort 取消请求的 由于为何网络请求失败的原因找不到, 但是重试请求就是成功的, 所以计划使用 axios-retry 在网络错误时重新请求 import axiosRetry from axios…...

Vue项目创建和nodejs使用

Vue项目创建和nodejs使用 一、环境准备1.1.安装 node.js【下载历史版本node-v14.21.3-x64】1.2.安装1.3.检查是否安装成功:1.4.在Node下新建两个文件夹 node_global和node_cache并设置权限1.5.配置npm在安装全局模块时的路径和缓存cache的路径1.6.配置系统变量&…...

【机器学习案例3】从科学论文图片中提取标题、作者和摘要【含源码】

在这个项目中,我的目标是从科学论文图片中提取某些部分(标题、作者和摘要)。预期提取部分是科学论文中常见的部分,例如标题、摘要和作者。输入与最终结果。我的输入是将第一页纸转换成图像。最终结果是一个 txt 文件,其中包含标题、作者和摘要部分,如下图1和图2所示。我将…...

【开源】JAVA+Vue.js实现天然气工程运维系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统角色分类2.2 核心功能2.2.1 流程 12.2.2 流程 22.3 各角色功能2.3.1 系统管理员功能2.3.2 用户服务部功能2.3.3 分公司(施工单位)功能2.3.3.1 技术员角色功能2.3.3.2 材料员角色功能 2.3.4 安…...

什么是智慧隧道,如何建设智慧隧道

一、隧道管理的难点痛点 近年来隧道建设规模不断扩大,作为隧道通车里程最多、规模最大的国家,截至2022年底,我国公路隧道共有24850处、2678.43万延米,其中特长隧道1752处、795.11万延米,长隧道6715处、1172.82万延米。…...

jupyter notebook

输入jupyter notebook 停止运行就用ctrlc 全部注释先全选 ,在按ctrl/...

MongoDB聚合:$listSearchIndexes

$listSearchIndexes返回指定集合现有Atlas Search索引的信息。 **重要&#xff1a;**该命令只能在托管的MongoDB Allas&#xff0c;并且要求群集层级至少为M10。 语法 db.<collection>.aggregate([{$listSearchIndexes:{id: <indexId>,name: <indexName>}…...

Excel练习:日历

Excel练习&#xff1a;日历 ‍ 题目&#xff1a;制作日历 ‍ ​​ 用rows和columns函数计算日期单元格偏移量 一个公式填充所有日期单元格 ​​ ‍...

【C语言】指针练习篇(上),深入理解指针---指针和数组练习题和sizeof,strlen的对比【图文讲解,详细解答】

欢迎来CILMY23的博客喔&#xff0c;本期系列为【C语言】指针练习篇&#xff08;上&#xff09;&#xff0c;深入理解指针---指针数组练习题和sizeof&#xff0c;strlen的对比【图文讲解,详细解答】&#xff0c;图文讲解指针和数组练习题&#xff0c;带大家更深刻理解指针的应用…...

2048游戏C++板来啦!

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 大家好呀&#xff0c;我是PingdiGuo_guo&#xff0c;今天我们来学习如何用C编写一个2048小游戏。 文章目录 1.2048的规则 2.步骤实现 2.1: 初始化游戏界面 2.1.1知识点 2.1.2: 创建游戏界面 2.2: 随机…...

2000-2021年县域指标统计数据库

2000-2021年县域统计数据库 1、时间&#xff1a;2000-2021年 2、来源&#xff1a;县域统计年鉴 3、范围&#xff1a;2500县 5、指标&#xff1a; 地区名称、年份、行政区域代码、所属城市、所属省份、行政区域土地面积平方公里、乡及镇个数个、乡个数个、镇个数个、街道办…...

Hive on Spark配置

前提条件 1、安装好Hive&#xff0c;参考&#xff1a;Hive安装部署-CSDN博客 2、下载好Spark安装包&#xff0c;链接&#xff1a;https://pan.baidu.com/s/1plIBKPUAv79WJxBSbdPODw?pwd6666 3、将Spark安装包通过xftp上传到/opt/software 安装部署Spark 1、解压spark-3.3…...

计算机网络——11EMail

EMail 电子邮件&#xff08;EMail&#xff09; 3个主要组成部分 用户代理邮件服务器简单邮件传输协议&#xff1a;SMTP 用户代理 又名“邮件阅读器”撰写、编辑和阅读邮件输入和输出邮件保存在服务器上 邮件服务器 邮箱中管理和维护发送给用户的邮件输出报文队列保持待发…...

第13讲创建图文投票

创建图文投票实现 图文投票和文字投票基本一样&#xff0c;就是在投票选项里面&#xff0c;多了一个选项图片&#xff1b;、 <view class"option_item" v-for"(item,index) in options" :key"item.id"><view class"option_input&…...

Vulnhub靶机:DC3

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.15&#xff09; 靶机&#xff1a;DC3&#xff08;10.0.2.56&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vulnhub.com/entry/dc-32,312…...

代码随想录算法训练营第三十一天|● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

仅做学习笔记&#xff0c;详细请访问代码随想录 ● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和 ● 理论基础 有同学问了如何验证可不可以用贪心算法呢&#xff1f; 最好用的策略就是举反例&#xff0c;如果想不到反例&#xff0c;那么就试一试贪心吧。 …...

终极Xbox手柄性能检测指南:5个技巧让你的游戏控制器发挥最大潜力

终极Xbox手柄性能检测指南&#xff1a;5个技巧让你的游戏控制器发挥最大潜力 【免费下载链接】XInputTest Xbox 360 Controller (XInput) Polling Rate Checker 项目地址: https://gitcode.com/gh_mirrors/xin/XInputTest 你是否曾经在激烈游戏对战中感觉手柄响应不够灵…...

别再只烧SD卡了!IMX6ULL的BOOT_CFG引脚配置详解(附正点原子核心板电路图)

IMX6ULL启动配置全解析&#xff1a;从BOOT_CFG引脚到多介质启动实战 当你在深夜调试IMX6ULL开发板时&#xff0c;是否遇到过这样的困境——明明按照教程操作&#xff0c;系统却始终无法从EMMC启动&#xff1f;问题的根源往往藏在那些容易被忽略的硬件细节中。今天&#xff0c;我…...

游戏逆向实战:从CALL定位到功能复现,构建自动化辅助框架

1. 游戏逆向基础&#xff1a;理解CALL与基址 游戏逆向工程的核心目标之一就是找到并理解游戏中的关键功能调用&#xff08;CALL&#xff09;。这些CALL就像是游戏的"遥控器按钮"&#xff0c;按下它们就能触发特定功能。比如释放技能、打开背包、自动寻路等操作&…...

从F103RBT6到ZET6:手把手教你搞定不同容量STM32的电源与特殊引脚设计

从F103RBT6到ZET6&#xff1a;STM32电源设计与特殊引脚避坑指南 在嵌入式硬件设计中&#xff0c;STM32F103系列因其出色的性价比和丰富的资源成为工程师的首选。但不同容量型号间的细微差异往往成为项目中的"隐形杀手"。本文将深入剖析中容量RBT6与大容量ZET6在电源架…...

Perplexity物理检索突然失灵?2024Q3模型更新引发的3类知识断层(附中科院物理所认证的降级兼容方案)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity物理知识查询 Perplexity 是一款基于大语言模型的实时知识检索工具&#xff0c;其核心能力在于融合权威学术资源&#xff08;如 arXiv、APS、IOP、NASA ADS 等&#xff09;与动态网页索引&am…...

Label Studio终极指南:高效构建多模态数据标注平台

Label Studio终极指南&#xff1a;高效构建多模态数据标注平台 【免费下载链接】label-studio Label Studio is a multi-type data labeling and annotation tool with standardized output format 项目地址: https://gitcode.com/GitHub_Trending/la/label-studio 在人…...

【限时开放】Perplexity医疗知识图谱API密钥申请通道关闭倒计时——全球仅剩47个三甲机构白名单资格

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity医疗信息搜索 Perplexity 是一款以实时网络检索与引用溯源为核心能力的AI搜索工具&#xff0c;在医疗健康领域展现出独特价值。它不同于传统搜索引擎&#xff0c;能直接解析PubMed、NEJM、CD…...

三极管Ube到底变不变?从静态分析到动态放大,一张图帮你彻底搞懂

三极管Ube到底变不变&#xff1f;从静态分析到动态放大&#xff0c;一张图帮你彻底搞懂 刚接触三极管放大电路时&#xff0c;很多初学者都会被一个看似矛盾的现象困扰&#xff1a;教科书告诉我们三极管的Ube电压恒定为0.7V&#xff0c;但在分析动态放大过程时&#xff0c;又说U…...

自动化 Vue 3 转 React 编译工具 VuReact 连续迭代,全量编译速度提升 30%-40%

近期&#xff0c;自动化 Vue 3 转 React 编译工具 VuReact 完成 v1.8.0、v1.8.1、v1.8.3 连续迭代&#xff0c;围绕性能、稳定性、开发体验深度优化&#xff0c;降低 Vue 项目向 React 迁移门槛。更新聚焦三大方向本轮更新围绕性能、稳定性、开发体验三大方向进行深度优化。尤其…...

淘宝淘金币自动化脚本:5分钟完成每日任务,解放双手的时间管理方案

淘宝淘金币自动化脚本&#xff1a;5分钟完成每日任务&#xff0c;解放双手的时间管理方案 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本&#xff0c;包含蚂蚁森林收取能量&#xff0c;芭芭农场全任务&#xff0c;解放你的双手 项目地址: https://gitcode.com/gh_mirrors…...